کارخانه‌ها

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

روش‌های کارخانه‌ای به‌طور خودکار برای همه منابع، شمارش‌ها، عملیات، و انواع سرویس ارائه‌شده توسط Google Ads API تولید می‌شوند. مثال‌های این صفحه فرض می‌کنند که نمونه GoogleAdsClient و هدف customer_id را مقداردهی اولیه کرده‌اید:

require 'google/ads/google_ads'

client = Google::Ads::GoogleAds::GoogleAdsClient.new
customer_id = '1234567890'

عملیات

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

مثال زیر منبع بودجه پویش را ایجاد می‌کند:

campaign_budget_operation =
  client.operation.create_resource.campaign_budget do |budget|
    budget.name = "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}"
    budget.delivery_method = :STANDARD
    budget.amount_micros = 500_000
  end

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

توجه داشته باشید که شیء واگذارشده به بلوک (budget) نمونه جدیدی از CampaignBudget است که می‌توانید آن را تغییر دهید و عملکرد ایجاد مناسب برای CampaignBudgetService برگردانده می‌شود.

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

campaign_service = client.service.campaign

# 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: customer_id,
  operations: [update_operation]
)

# If you have a full resource proto:
update_operation = client.operation.update_resource.campaign(campaign) do |camp|
  camp.name = "A different Cruise #{(Time.new.to_f * 1000).to_i}"
end

campaign_service.mutate_campaigns(
  customer_id: customer_id,
  operations: [update_operation]
)

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

مثال زیر منبعی را بااستفاده از مسیر منبع برمی‌دارد:

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

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

operation = client.operation.campaign

منابع

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

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

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

خدمات

کتابخانه client.service.<service_name> را برای بازیابی کردن اشیای کارخواه سرویس ارائه می‌دهد:

campaign_service = client.service.campaign

شمارشی‌ها

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

client.enum.ad_type.each { |ad_type| p ad_type }
# Output:
# :UNSPECIFIED
# :UNKNOWN
# :TEXT_AD
# :EXPANDED_TEXT_AD
# :EXPANDED_DYNAMIC_SEARCH_AD
# :HOTEL_AD
# :SHOPPING_SMART_AD
# :SHOPPING_PRODUCT_AD
# :VIDEO_AD
# :IMAGE_AD
# :RESPONSIVE_SEARCH_AD
# :LEGACY_RESPONSIVE_DISPLAY_AD
# :APP_AD
# :LEGACY_APP_INSTALL_AD
# :RESPONSIVE_DISPLAY_AD
# :LOCAL_AD
# :HTML5_UPLOAD_AD
# :DYNAMIC_HTML5_AD
# :APP_ENGAGEMENT_AD
# :SHOPPING_COMPARISON_LISTING_AD
# :VIDEO_BUMPER_AD
# :VIDEO_NON_SKIPPABLE_IN_STREAM_AD
# :VIDEO_TRUEVIEW_IN_STREAM_AD
# :VIDEO_RESPONSIVE_AD
# :SMART_CAMPAIGN_AD
# :CALL_AD
# :APP_PRE_REGISTRATION_AD
# :IN_FEED_VIDEO_AD
# :DEMAND_GEN_MULTI_ASSET_AD
# :DEMAND_GEN_CAROUSEL_AD
# :TRAVEL_AD
# :DEMAND_GEN_VIDEO_RESPONSIVE_AD
# :DEMAND_GEN_PRODUCT_AD
# :YOUTUBE_AUDIO_AD

نسخه‌های Google Ads API را به‌طور صریح تنظیم کنید

همچنین می‌توانید نسخه اصلی API را به‌طور صریح در هر فراخوانی کارخانه‌ای تنظیم کنید (برای مثال، v25؛ نسخه‌های فرعی API مثل v25.1 از روش نسخه اصلی v25 استفاده می‌کنند):

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