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 }