Google は、Ad Manager API を操作するための Ruby クライアント ライブラリを提供しています。RubyGems でクライアント ライブラリを使用することをおすすめします。
まず、お好みの IDE で新しいプロジェクトを作成するか、既存のプロジェクトに依存関係を追加します。Google は、クライアント ライブラリを google-ads-ad_manager
として RubyGems に公開しています。
Gemfile:
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 サービスには、対応する REST メソッドのメソッドを含む対応する Ruby クラスがあります。次の例では、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
環境変数の両方を尊重します。