Utilitário de pesquisa

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

ProtoLookupUtil

Os métodos de utilitário de pesquisa no GoogleAdsClient (com suporte de fábricas e ServiceLookup, substituindo a classe legada ProtoLookupUtil) 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 do módulo. Por padrão, esses métodos usam a versão mais recente da API com suporte da gem instalada (V26 na versão mais recente, em que versões secundárias da API, como a v25.1, usam o módulo da versão principal V25), ou você pode especificar um prefixo de versão explícito (como v26) na chamada de pesquisa.

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

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

Com os métodos de pesquisa do 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ço

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

campaign_service = client.service.campaign

Pesquisa de enumeração

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

campaign.status = :PAUSED

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

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