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