Утилита поиска

При использовании API для получения ссылок на классы протокола требуется либо хорошее понимание API, либо частое обращение к справочной документации по протоколу для поиска точного пути к пространству имен.

ProtoLookupUtil

Вспомогательные методы поиска в GoogleAdsClient (на основе фабрик и ServiceLookup, которые заменили устаревший класс ProtoLookupUtil) позволяют искать и создавать экземпляры сервисов, операций, перечислений и ресурсов, не отслеживая номера версий API и пространства имен модулей. По умолчанию эти методы используют самую новую версию API, поддерживаемую установленным пакетом gem (V25 в последнем выпуске, где в неосновных выпусках API, например v25.1, используется модуль основной версии V25). Вы также можете указать явный префикс версии (например, v25) в вызове поиска.

Без утилиты поиска вы можете создать экземпляр ресурса кампании непосредственно из пространства имен с указанием версии:

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

При использовании методов поиска клиентов вы можете создать экземпляр ресурса непосредственно из клиента:

campaign = client.resource.campaign

При получении ресурса, сервиса или операции возвращается экземпляр этого объекта:

# Instantiate an operation
operation = client.operation.campaign

Поиск сервиса

Используйте метод client.service для получения клиентов сервисов, даже если вы не используете эту утилиту для других объектов. client.service автоматически настраивает учетные данные для аутентификации и параметры транспорта в возвращенном клиенте сервиса:

campaign_service = client.service.campaign

Поиск перечисления

Для полей перечисления в сообщениях protobuf назначайте символ Ruby напрямую, а не через модуль перечисления:

campaign.status = :PAUSED

Чтобы проверить или перебрать все допустимые символы для перечисления во время выполнения, используйте client.enum, который возвращает Google::Protobuf::EnumDescriptor для этого перечисления:

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