Google は、Ad Manager API と連携するための Ruby クライアント ライブラリを提供しています。RubyGems でクライアント ライブラリを使用することをおすすめします。
まず、お好みの IDE で新しいプロジェクトを作成するか、既存のプロジェクトに依存関係を追加します。Google は、クライアント ライブラリを RubyGems に google-ads-ad_manager として公開しています。
Gemfile
gem 'google-ads-ad_manager', '~> 5.3.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 に設定します。複数の Google API を使用する場合は、値をクライアント ライブラリ gem 名のカンマ区切りリストに設定できます。デフォルトのロギング動作では、ログが標準エラー ストリームに書き込まれます。
または、クライアント オブジェクトの構築時に logger 構成を変更して、Ruby コードでロギングを有効にすることもできます。
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
エラーを処理する
Ad Manager API のすべてのエラーは、Ruby クライアント ライブラリの ::Google::Cloud::Error のサブクラスです。
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 も含まれています。次の例では、エラー details から request_id を抽出します。
rescue ::Google::Cloud::Error => e
request_info = e.details.find { |detail| detail.is_a?(Google::Rpc::RequestInfo)}
puts request_info.request_id
リソース名を構築する
クライアント ライブラリには、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 の両方の環境変数を尊重します。