Ruby

Google 提供 Ruby 用戶端程式庫,可用於與 Ad Manager API 互動。建議您搭配使用用戶端程式庫和 RubyGems。

如要開始使用,請在所選 IDE 中建立新專案,或將依附元件新增至現有專案。Google 會將用戶端程式庫發布至 RubyGems,名稱為 google-ads-ad_manager

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 服務都有對應的 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}"

Ad Manager 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)

指定 Proxy 設定

Ruby 用戶端程式庫會遵循 HTTP_PROXYHTTPS_PROXY 環境變數。