Ruby

Google предоставляет клиентскую библиотеку Ruby для взаимодействия с API Менеджера рекламы. Мы рекомендуем использовать клиентскую библиотеку с RubyGems.

Для начала создайте новый проект в выбранной вами IDE или добавьте зависимость к существующему проекту. Google публикует клиентскую библиотеку для RubyGems как google-ads-ad_manager .

Джемфайл:

gem 'google-ads-ad_manager', '~> 0.1.0'

Установите напрямую:

gem install google-ads-ad_manager

Настройка учетных данных

Клиентская библиотека Ruby использует OAuth2 и учетные данные приложения по умолчанию (ADC) для аутентификации.

ADC ищет учетные данные по порядку в следующих местах:

  1. Переменная среды GOOGLE_APPLICATION_CREDENTIALS .
  2. Учетные данные пользователя, настроенные через Google Cloud CLI (gcloud CLI).
  3. При работе в Google Cloud учетная запись службы привязывается к ресурсу Google Cloud.

Для создания и настройки учетных данных ADC см. раздел Аутентификация .

Сделайте свой первый запрос

У каждой службы REST есть соответствующий класс Ruby с методами для каждого соответствующего метода REST. В следующем примере читается Network .

require "google/ads/ad_manager/v1"

def get_network
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Ads::AdManager::V1::NetworkService::Rest::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Ads::AdManager::V1::GetNetworkRequest.new(name: => 'networks/NETWORK_CODE)'

  # Call the get_network method.
  result = client.get_network request

  # The returned object is of type Google::Ads::AdManager::V1::Network.
  p result
end

Примеры других методов и ресурсов см. в репозитории GitHub googleapis/google-cloud-ruby .

Регистрировать HTTP-запросы и ответы

Библиотека клиентской библиотеки Ruby использует стандартную библиотеку logger для регистрации HTTP-запросов и ответов. По умолчанию ведение журнала отключено.

Чтобы включить ведение журнала, установите для переменной среды GOOGLE_SDK_RUBY_LOGGING_GEMS значение google-ads-ad_manager . Если вы используете более одного API Google, вы можете установить в качестве значения список имен драгоценных камней клиентской библиотеки, разделенных запятыми. При ведении журнала по умолчанию журналы записываются в стандартный поток ошибок.

Альтернативно вы можете включить ведение журнала в своем коде Ruby, изменив конфигурацию logger при создании клиентского объекта.

require "google/ads/ad_manager/v1"
require "logger"

client = ::Google::Ads::AdManager::V1::NetworkService::Rest::Client.new do |config|
  config.logger = Logger.new "my-app.log"
end

Обработка ошибок

Все ошибки API Менеджера рекламы являются подклассами ::Google::Cloud::Error в клиентской библиотеке Ruby.

result = client.get_network request
rescue ::Google::Cloud::Error => e
  puts "An error of type #{e.class} occurred with HTTP status #{e.status_code}"

Ошибки API Менеджера рекламы также включают уникальный request_id , который вы можете предоставить службе поддержки для устранения неполадок. В следующем примере request_id извлекается из details об ошибке.

rescue ::Google::Cloud::Error => e
  request_info = e.details.find { |detail| detail.is_a?(Google::Rpc::RequestInfo)}
  puts request_info.request_id

Создание имен ресурсов

Клиентская библиотека предоставляет вспомогательные классы для создания имен ресурсов на основе идентификаторов.

require "google/ads/ad_manager/v1"

#  Constructs a String in the format:
#  "networks/{networkCode}/orders/{orderId}"
order_name = Google::Ads::AdManager::V1::OrderService::Paths::order_path(:network_code => 123, :order => 456)

Настройте параметры прокси

Клиентская библиотека Ruby учитывает переменные среды HTTP_PROXY и HTTPS_PROXY .