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 ищет учетные данные по порядку в следующих местах:
- Переменная среды
GOOGLE_APPLICATION_CREDENTIALS
. - Учетные данные пользователя, настроенные через Google Cloud CLI (gcloud CLI).
- При работе в 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
.