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
טיפוסים בני מנייה (enum)
כדי להגדיר שדות enum באופן סטטי, משתמשים בתחביר של סמלים (לדוגמה, campaign.status = :PAUSED). כדי למנות את כל הערכים התקפים של enum, משתמשים במפעל 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 בכל קריאה לפונקציית factory (לדוגמה, v25; גרסאות משניות של API כמו v25.1 משתמשות בשיטה של גרסה ראשית v25):
client.resource.v25.[entity]
client.operation.v25.[operation]
client.service.v25.[service]
client.enum.v25.[enum]