Ruby

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 は次の場所で認証情報を順番に検索します。

  1. GOOGLE_APPLICATION_CREDENTIALS 環境変数。
  2. Google Cloud CLI(gcloud CLI)で設定されたユーザー認証情報。
  3. 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 環境変数の両方を尊重します。