Ruby

Google, Ad Manager API ile etkileşime geçmek 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ık öğesini mevcut bir projeye ekleyin. Google, istemci kitaplığını RubyGems'de google-ads-ad_manager olarak yayınlar.

Gemfile:

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

Doğrudan yükleme:

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 KSA (gcloud KSA) üzerinden ayarlanan kullanıcı kimlik bilgileri.
  3. Google Cloud'da çalışırken Google Cloud kaynağına bağlı hizmet hesabı.

ADC kimlik bilgilerinizi oluşturmak ve yapılandırmak için Kimlik doğrulama bölümüne bakın.

İlk isteğinizi gönderin

Her REST hizmetinin, ilgili REST yöntemlerine ait yöntemleri içeren bir Ruby sınıfı vardır. Aşağıdaki örnekte bir Network okunmaktadır.

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 kaynaklara dair örnekler için googleapis/google-cloud-ruby GitHub deposuna bakın.

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

Ruby istemci kitaplığı, HTTP isteklerini ve yanıtlarını günlüğe kaydetmek için standart loggerkitaplığı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 kullanıyorsanız değeri, istemci kitaplığı mücevher 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, istemci nesnesi oluştururken logger yapılandırmasını değiştirerek Ruby kodunuzda günlük kaydını 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 örnekte, details hatasından request_id çıkarılı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 dikkat eder.