کارخانه ها

factories یک رابط سطح بالا برای ایجاد عملیات و منابع با کتابخانه مشتری فراهم می کند.

روش‌های Factories به‌طور خودکار برای همه منابع، فهرست‌ها، عملیات‌ها و انواع خدمات ارائه‌شده توسط Google Ads API ایجاد می‌شوند.

عملیات

این کتابخانه برای ایجاد آسان عملیات برای کار با Google Ads API، روش‌های راحت client.operation.create_resource.<resource_type> ، client.operation.update_resource.<resource_type> و client.operation.remove_resource.<resource_type> را فراهم می‌کند.

در اینجا یک مثال برای ایجاد یک منبع آورده شده است:

campaign_budget_operation = client.operation.create_resource.campaign_budget do |cb|
  cb.name = client.wrapper.string(
    "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}",
  )

  cb.delivery_method = :STANDARD
  cb.amount_micros = client.wrapper.int64(500000)
end

return_budget = client.service.campaign_budget.mutate_campaign_budgets(
  customer_id,
  [campaign_budget_operation]
)

توجه داشته باشید که شی ای که به بلوک cb داده می شود نمونه جدیدی از CampaignBudget است که می توانید آن را تغییر دهید و عملیات ایجاد مناسب برای CampaignBudgetService برگردانده می شود.

به طور مشابه، ما روش‌های راحت را برای به‌روزرسانی ارائه می‌کنیم:

# if you only have a resource name
update_operation = client.operation.update_resource.campaign(campaign_resource_name) do |camp|
  camp.status = :PAUSED
end

campaign_service.mutate_campaigns(customer_id, [update_operation])

# if you have a full resource proto
update_operation = client.operation.update_resource.campaign(campaign) do
  campaign.name = client.wrapper.string(
    "A different interplanetary Cruise #{(Time.new.to_f * 1000).to_i}",
  )
end

campaign_service.mutate_campaigns(customer_id, [update_operation])

این تماس‌ها یک عملیات به‌روزرسانی خوب را با یک ماسک فیلد از پیش پرشده برای به‌روزرسانی منبع در Google Ads API بازمی‌گردانند.

در اینجا مثالی از حذف یک منبع با استفاده از مسیر منبع آورده شده است:

remove_operation = client.operation.remove_resource.campaign(campaign_resource_name)
campaign_service.mutate_campaigns(customer_id, [remove_operation])

اگر ترجیح می‌دهید خودتان با عملیات کار کنید، می‌توانید عملیات خام را دریافت کنید و سپس فیلدها را به صورت دستی پر کنید.

operation = client.operation.campaign

منابع

این کتابخانه client.resource.<resource_type> را به عنوان یک راه مناسب برای مقداردهی اولیه اشیاء منبع ارائه می کند:

campaign.network_settings = client.resource.network_settings do |ns|
  ns.target_google_search = client.wrapper.bool(true)
  ns.target_search_network = client.wrapper.bool(true)
  ns.target_content_network = client.wrapper.bool(false)
  ns.target_partner_search_network = client.wrapper.bool(false)
end

یک نمونه جدید از نوع منبع درخواستی به بلوک ارسال شده برای تنظیم فیلدها داده می شود.

خدمات

کتابخانه client.service.<service_name> به عنوان یک راه راحت برای دریافت اشیاء سرویس ارائه می دهد:

campaign_service = client.service.campaign

Enums

توصیه می کنیم از نحو نماد برای تنظیم ایستا فیلدهای enum استفاده کنید (به عنوان مثال، campaign.status = :PAUSED ). با این حال، اگر می‌خواهید تمام مقادیر معتبر یک enum را برشمارید، روش‌هایی را نیز برای آن ارائه می‌کنیم:

client.enum.ad_type.each { |x| p x }
    :SHOPPING_PRODUCT_AD
    :GMAIL_AD
    :UNKNOWN
    :UNSPECIFIED
    :CALL_ONLY_AD
    :VIDEO_AD
    :IMAGE_AD
    :EXPANDED_DYNAMIC_SEARCH_AD
    :RESPONSIVE_DISPLAY_AD
    :TEXT_AD
    :LEGACY_RESPONSIVE_DISPLAY_AD
    :LEGACY_APP_INSTALL_AD
    :APP_AD
    :SHOPPING_SMART_AD
    :EXPANDED_TEXT_AD
    :HOTEL_AD
    :RESPONSIVE_SEARCH_AD

تنظیم صریح نسخه‌های Google Ads API

همچنین می توانید به صراحت یک نسخه را تنظیم کنید:

client.resource.v16.[entity]
client.operation.v16.[operation]
client.service.v16.[service]
client.enum.v16.[enum]