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

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

ProtoLookupUtil

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

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

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

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

campaign = client.resource.campaign

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

# Instantiate an operation
operation = client.operation.campaign

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

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

campaign_service = client.service.campaign

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

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

campaign.status = :PAUSED

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

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