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 را بهطور صریح در هر فراخوانی کارخانه تنظیم کنید (برای مثال، v26؛ نسخههای فرعی API مانند v25.1 از روش نسخه اصلی v25 استفاده میکنند):
client.resource.v26.[entity]
client.operation.v26.[operation]
client.service.v26.[service]
client.enum.v26.[enum]