הדרך הכי ישירה ליצור, לעדכן או להסיר ישויות מסוג משאב יחיד ב-Google Ads API היא באמצעות השירות הייעודי של המשאב.
נקודות קצה של שינוי
לכל משאב שניתן לשינוי יש שירות תואם וסוג פעולה. כדי לשנות משאב באמצעות השירות הייעודי שלו, מאכלסים את אחד השדות הבאים בפעולה ושולחים אותה לנקודת הקצה של השירות לשינוי:
- יצירה (
create): אובייקט משאב חדש שרוצים ליצור. - עדכון (
update): אובייקט המשאב שעבר שינוי, עםupdate_maskשמציין את השדות ששונו. - Remove (הסרה) (
remove): מחרוזתresource_nameשל משאב היעד להסרה.
לדוגמה, כדי ליצור Campaign חדש, מבצעים את השלבים הבאים:
- יוצרים אובייקט
Campaignעם המאפיינים שבחרתם. - מקצים אותו לשדה
createשלCampaignOperation. - שולחים את הפעולה ב-
MutateCampaignsRequestאלCampaignService.MutateCampaigns.
אותו דפוס חל על כל השירותים הספציפיים למשאבים ב-Google Ads API:
-
AdGroup: העברתAdGroupOperationאלAdGroupService.MutateAdGroups. -
CampaignCriterion: העברתCampaignCriterionOperationאלCampaignCriterionService.MutateCampaignCriteria.
המטען הייעודי (payload) הבא של JSON ב-REST ממחיש בקשה אל CampaignService.MutateCampaigns:
{
"customerId": "CUSTOMER_ID",
"operations": [
{
"create": {
"name": "Interplanetary Cruise #1",
"advertisingChannelType": "SEARCH",
"status": "PAUSED",
"manualCpc": {},
"campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/BUDGET_ID",
"containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
}
}
],
"partialFailure": false,
"validateOnly": false
}
פעולות מרובות ומגבלות
השדה operations של בקשה לשינוי נתונים חוזר על עצמו, ולכן בקשה אחת יכולה להכיל כמה פעולות (עד 10,000 פעולות לכל בקשה) עבור סוג המשאב הזה. כברירת מחדל, כל הפעולות בבקשה מבוצעות באופן אטומי, אלא אם מגדירים את partial_failure ל-true.
עם זאת, לשירותי משאבים נפרדים יש שתי מגבלות חשובות:
- סוג משאב יחיד: בקשה לשירות משאבים יכולה לשנות רק משאבים שמנוהלים על ידי השירות הספציפי הזה.
- ללא מזהי משאבים זמניים או הפניות צולבות: פעולות בקריאת שינוי ספציפית למשאב מעובדות באופן עצמאי. אי אפשר להקצות מזהים שליליים זמניים (כמו
customers/CUSTOMER_ID/campaigns/-1) או להפנות לישויות שנוצרו לאחרונה מפעולות אחרות באותה בקשה.
אם אתם צריכים לשנות כמה סוגים של משאבים בבקשה אחת או להפנות לשמות זמניים של משאבים בפעולות תלויות, השתמשו במקום זאת ב-GoogleAdsService.Mutate.
הבדלים שספציפיים לגרסה
כשמשנים משאבים, חשוב לזכור את ההבדלים הבאים בין הגרסאות הנתמכות של Google Ads API:
- שירותים של יעדים שקשורים למחזור החיים של הלקוחות: בגרסה 25 ואילך, כל היעדים שקשורים למחזור החיים של הלקוחות – כולל צירוף לקוחות חדשים (
new_customer_acquisition_goal_settings), שימור לקוחות (retention_goal_settings) ושימור נאמנות (loyalty_retention_goal_settings) – עוברים שינוי באמצעותGoalService.MutateGoalsו-CampaignGoalConfigService.MutateCampaignGoalConfigsבאמצעות שדהoperationsחוזר רגיל. התכונה הזו מחליפה את התכונותCustomerLifecycleGoalService.ConfigureCustomerLifecycleGoalsו-CampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals(שמשמשות לצירוף לקוחות חדשים בגרסה 24 ובגרסאות קודמות, ומקבלות שדה יחידoperation). - שדות התאריך והשעה של הקמפיין: כשיוצרים או מעדכנים
Campaign, בגרסה 23 ואילך נעשה שימוש בשדותstart_date_timeו-end_date_time(yyyy-MM-dd HH:mm:ss), במקום בשדותstart_dateו-end_dateשכוללים רק תאריך ושימשו בגרסה 22. - שינוי של אימות תוכן סינתטי: למרות ש-
Asset.synthetic_content_infoו-Ad.synthetic_content_infoמופיעים בסכימה לגרסה v22 ואילך, השדותsynthetic_content_info.advertiser_attestation.statusו-synthetic_content_info.advertiser_attestation.sourceניתנים לשינוי רק בגרסה v23 ואילך (system_attestationתמידOUTPUT_ONLY). ניסיון לשנות שדות משנה שלadvertiser_attestationבגרסה v22 מחזיר שגיאה של שדה שלא ניתן לשינוי ("The field attempted to be mutated is immutable"או"Field cannot be set").