Cuando se usan las APIs, recuperar referencias a clases .proto requiere que tengas un conocimiento intrínseco de la API o que consultes con frecuencia la documentación de referencia de .proto para conocer la ruta de acceso exacta del espacio de nombres.
ProtoLookupUtil
Los métodos de utilidad de búsqueda en GoogleAdsClient (respaldados por Factories y ServiceLookup, que reemplazan la clase heredada ProtoLookupUtil) te permiten buscar y crear instancias de servicios, operaciones, enumeraciones y recursos sin tener que hacer un seguimiento de los números de versión de la API y los espacios de nombres de los módulos. De forma predeterminada, estos métodos usan la versión de API más alta compatible con la gem instalada (V25 en la versión más reciente, en la que las versiones secundarias de la API, como la v25.1, usan su módulo de versión principal V25), o bien puedes especificar un prefijo de versión explícito (como v25) en la llamada de búsqueda.
Sin la utilidad de búsqueda, puedes crear una instancia de un recurso de campaña directamente desde su espacio de nombres con versiones:
campaign =
Google::Ads::GoogleAds::V25::Resources::Campaign.new
Con los métodos de búsqueda de clientes, puedes crear una instancia del recurso directamente desde el cliente:
campaign = client.resource.campaign
Cuando se recupera un recurso, un servicio o una operación, se devuelve una instancia de esa entidad:
# Instantiate an operation
operation = client.operation.campaign
Búsqueda de servicios
Usa el método client.service para recuperar clientes de servicios, incluso si no usas esta utilidad para otras entidades. client.service configura automáticamente tus credenciales de autenticación y la configuración de transporte en el cliente de servicio devuelto:
campaign_service = client.service.campaign
Búsqueda de enumeración
En el caso de los campos de enumeración en los mensajes de protobuf, asigna un símbolo de Ruby directamente en lugar de buscar el módulo de enumeración:
campaign.status = :PAUSED
Para inspeccionar o iterar todos los símbolos válidos de una enumeración en el tiempo de ejecución, usa client.enum, que devuelve el Google::Protobuf::EnumDescriptor para esa enumeración:
status_enum = client.enum.campaign_status
status_enum.each { |status| p status }