שינוי של שירות המשאב

הדרך הכי ישירה ליצור, לעדכן או להסיר ישויות מסוג משאב יחיד ב-Google Ads API היא באמצעות השירות הייעודי של המשאב.

נקודות קצה של שינוי

לכל משאב שניתן לשינוי יש שירות תואם וסוג פעולה. כדי לשנות משאב באמצעות השירות הייעודי שלו, מאכלסים את אחד השדות הבאים בפעולה ושולחים אותה לנקודת הקצה של השירות לשינוי:

  • יצירה (create): אובייקט משאב חדש שרוצים ליצור.
  • עדכון (update): אובייקט המשאב שעבר שינוי, עם update_mask שמציין את השדות ששונו.
  • ‫Remove (הסרה) (remove): מחרוזת resource_name של משאב היעד להסרה.

לדוגמה, כדי ליצור Campaign חדש, מבצעים את השלבים הבאים:

  1. יוצרים אובייקט Campaign עם המאפיינים שבחרתם.
  2. מקצים אותו לשדה create של CampaignOperation.
  3. שולחים את הפעולה ב-MutateCampaignsRequest אל CampaignService.MutateCampaigns.

אותו דפוס חל על כל השירותים הספציפיים למשאבים ב-Google Ads API:

המטען הייעודי (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").