گوگل یک کتابخانه کلاینت Ruby برای تعامل با Ad Manager API ارائه میدهد. ما استفاده از کتابخانه کلاینت را به همراه RubyGems توصیه میکنیم.
برای شروع، یک پروژه جدید در IDE مورد نظر خود ایجاد کنید یا وابستگی را به یک پروژه موجود اضافه کنید. گوگل کتابخانه کلاینت را با نام google-ads-ad_manager در RubyGems منتشر میکند.
جمفایل
gem 'google-ads-ad_manager', '~> 5.3.0'
خط فرمان
gem install google-ads-ad_manager
پیکربندی اعتبارنامهها
کتابخانه کلاینت روبی از OAuth2 و Application Default Credentials (ADC) برای احراز هویت استفاده میکند.
ADC به ترتیب در مکانهای زیر به دنبال اعتبارنامهها میگردد:
- متغیر محیطی
GOOGLE_APPLICATION_CREDENTIALS. - اعتبارنامههای کاربر از طریق رابط خط فرمان گوگل کلود (gcloud CLI) تنظیم شدهاند.
- هنگام اجرا روی 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
برای مثالهایی از روشها و منابع دیگر، به مخزن گیتهاب googleapis/google-cloud-ruby مراجعه کنید.
ثبت درخواستها و پاسخهای HTTP
کتابخانه کلاینت روبی از کتابخانه استاندارد logger برای ثبت درخواستها و پاسخهای HTTP استفاده میکند. ثبت وقایع به طور پیشفرض غیرفعال است.
برای فعال کردن ثبت وقایع (logging)، متغیر محیطی GOOGLE_SDK_RUBY_LOGGING_GEMS را روی مقدار google-ads-ad_manager تنظیم کنید. اگر از بیش از یک 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) زیرمجموعههایی از ::Google::Cloud::Error در کتابخانه کلاینت Ruby هستند.
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 منحصر به فرد هستند که میتوانید برای کمک به عیبیابی، آن را به پشتیبانی ارائه دهید. مثال زیر request_id را از details خطا استخراج میکند.
rescue ::Google::Cloud::Error => e
request_info = e.details.find { |detail| detail.is_a?(Google::Rpc::RequestInfo)}
puts request_info.request_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)
تنظیمات پروکسی را پیکربندی کنید
کتابخانه کلاینت روبی از هر دو متغیر محیطی HTTP_PROXY و HTTPS_PROXY پشتیبانی میکند.