Utilitário de pesquisa

Para buscar referências a classes proto ao usar a API, é necessário ter um entendimento intrínseco da API ou consultar com frequência a documentação de referência do proto para o caminho exato do namespace.

ProtoLookupUtil

Os métodos utilitários de pesquisa em GoogleAdsClient (com suporte de Factories e ServiceLookup, substituindo a classe ProtoLookupUtil legada) permitem pesquisar e criar instâncias de serviços, operações, enumerações e recursos sem precisar acompanhar os números de versão da API e os namespaces de módulos. Por padrão, esses métodos usam a versão mais alta da API compatível com a gema instalada (V25 na versão mais recente, em que versões secundárias da API, como v25.1, usam o módulo da versão principal V25). Também é possível especificar um prefixo de versão explícito (como v25) na chamada de pesquisa.

Sem o utilitário de pesquisa, você instancia um recurso de campanha diretamente do namespace com versão:

campaign =
  Google::Ads::GoogleAds::V25::Resources::Campaign.new

Com os métodos de pesquisa de cliente, é possível instanciar o recurso diretamente do cliente:

campaign = client.resource.campaign

Ao buscar um recurso, serviço ou operação, uma instância dessa entidade é retornada:

# Instantiate an operation
operation = client.operation.campaign

Pesquisa de serviços

Use o método client.service para buscar clientes de serviço, mesmo que você não use essa utilidade para outras entidades. O client.service configura automaticamente suas credenciais de autenticação e configurações de transporte no cliente de serviço retornado:

campaign_service = client.service.campaign

Pesquisa de enumeração

Para campos de enumeração em mensagens protobuf, atribua um símbolo Ruby diretamente em vez de procurar o módulo de enumeração:

campaign.status = :PAUSED

Para inspecionar ou iterar todos os símbolos válidos de uma enumeração no tempo de execução, use client.enum, que retorna o Google::Protobuf::EnumDescriptor dessa enumeração:

status_enum = client.enum.campaign_status
status_enum.each { |status| p status }