Ruby

Google, Ad Manager API ile etkileşim kurmak için bir Ruby istemci kitaplığı sağlar. İstemci kitaplığını RubyGems ile kullanmanızı öneririz.

Başlamak için tercih ettiğiniz IDE'de yeni bir proje oluşturun veya bağımlılığı mevcut bir projeye ekleyin. Google, istemci kitaplığını google-ads-ad_manager olarak RubyGems'e yayınlar.

Gemfile

gem 'google-ads-ad_manager', '~> 5.3.0'

Komut satırı

gem install google-ads-ad_manager

Kimlik bilgilerini yapılandırma

Ruby istemci kitaplığı, kimlik doğrulamak için OAuth2 ve Uygulama Varsayılan Kimlik Bilgileri'ni (ADC) kullanır.

ADC, kimlik bilgilerini aşağıdaki konumlarda sırayla arar:

  1. GOOGLE_APPLICATION_CREDENTIALS ortam değişkeni.
  2. Google Cloud CLI (gcloud CLI) aracılığıyla ayarlanan kullanıcı kimlik bilgileri.
  3. Google Cloud'da çalışırken Google Cloud kaynağına eklenen hizmet hesabı.

ADC kimlik bilgilerinizi oluşturma ve yapılandırma hakkında bilgi edinmek için Kimlik doğrulama başlıklı makaleyi inceleyin.

İlk isteğinizi gönderme

Her REST hizmetinin, her bir karşılık gelen REST yöntemi için yöntemler içeren karşılık gelen bir Ruby sınıfı vardır. Aşağıdaki örnekte bir Network okunuyor.

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

Diğer yöntem ve kaynak örnekleri için GitHub deposuna googleapis/google-cloud-ruby bakın.

HTTP isteklerini ve yanıtlarını günlüğe kaydetme

Ruby istemci kitaplığı, HTTP isteklerini ve yanıtlarını kaydetmek için standart logger kitaplığını kullanır. Günlüğe kaydetme özelliği varsayılan olarak devre dışıdır.

Günlük kaydını etkinleştirmek için GOOGLE_SDK_RUBY_LOGGING_GEMS ortam değişkenini google-ads-ad_manager değerine ayarlayın. Birden fazla Google API'si kullanıyorsanız değeri, istemci kitaplığı gem adlarının virgülle ayrılmış bir listesi olarak ayarlayabilirsiniz. Varsayılan günlük kaydı davranışı, günlükleri standart hata akışına yazar.

Alternatif olarak, bir istemci nesnesi oluştururken logger yapılandırmasını değiştirerek Ruby kodunuzda günlüğe kaydetmeyi etkinleştirebilirsiniz.

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

Hataları işleme

Tüm Ad Manager API hataları, Ruby istemci kitaplığındaki ::Google::Cloud::Error sınıfının alt sınıflarıdır.

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 hataları, sorun giderme konusunda yardım almak için destek ekibine iletebileceğiniz benzersiz bir request_id de içerir. Aşağıdaki örnek, details hatasından request_id değerini çıkarır.

rescue ::Google::Cloud::Error => e
  request_info = e.details.find { |detail| detail.is_a?(Google::Rpc::RequestInfo)}
  puts request_info.request_id

Kaynak adları oluşturma

İstemci kitaplığı, kimliklerden kaynak adları oluşturmak için yardımcı sınıflar sağlar.

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 ayarlarını yapılandırma

Ruby istemci kitaplığı hem HTTP_PROXY hem de HTTPS_PROXY ortam değişkenlerine uyar.