توفر 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 بشكلٍ صريح
يمكنك أيضًا ضبط إصدار رئيسي من واجهة برمجة التطبيقات بشكل صريح في أي طلب من طلبات المصنع (على سبيل المثال، v25؛ تستخدم إصدارات واجهة برمجة التطبيقات الثانوية، مثل الإصدار 25.1، طريقة الإصدار الرئيسي v25):
client.resource.v25.[entity]
client.operation.v25.[operation]
client.service.v25.[service]
client.enum.v25.[enum]