Para recuperar referencias a clases de proto cuando usas la API, debes tener una comprensión intrínseca de la API o buscar con frecuencia la documentación de referencia de proto para 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 ProtoLookupUtil heredada) 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 ni de los espacios de nombres de los módulos. De forma predeterminada, estos métodos usan la versión de la API más alta que admite la gema instalada (V26 en la versión más reciente, en la que las versiones secundarias de la API, como v25.1, usan su módulo de versión principal V25). También puedes especificar un prefijo de versión explícito (como v26) en la llamada de búsqueda.
Sin la utilidad de búsqueda, creas una instancia de un recurso de campaña directamente desde su espacio de nombres con versión:
campaign =
Google::Ads::GoogleAds::V26::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 servicio, 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
Para 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 entorno 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 }