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:
GOOGLE_APPLICATION_CREDENTIALS
ortam değişkeni.- Google Cloud KSA (gcloud KSA) üzerinden ayarlanan kullanıcı kimlik bilgileri.
- 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 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 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.