שינוי

רוב המשאבים משתנים (נוצרים, מעודכנים או הוסרו) באמצעות method Mutate. השיטה Mutate מופעלת כ-HTTP POST לכתובת URL ספציפית למשאב, שתואמת לדפוס שם המשאב, ללא מזהה המשאב הסוגר. המזהים של המשאבים לשינוי נשלחים במקום זאת בגוף הבקשה של JSON. כך אפשר לשלוח קריאה אחת ל-API שמכילה מספר פעולות במשאבים שונים.

לדוגמה, שם המשאב של קמפיין מופיע בפורמט הבא:

customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID

כדי לחלץ את כתובת ה-URL שמשמשת לעריכת שינויים בקמפיינים, משמיטים את מזהה המשאב שמופיע בסוף ומצרפים :mutate:

https://googleads.googleapis.com/v16/customers/CUSTOMER_ID/campaigns:mutate

הודעת Mutate מכילה אובייקט JSON ברמה העליונה עם מערך operations שיכול להכיל אובייקטים רבים של operation. כל פעולה יכולה להיות אחת מהאפשרויות הבאות: create, update או remove. אלה פעולות השינוי היחידות האפשריות.

POST /v16/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    ...
  ]
}

רוב השירותים תומכים באלפי פעולות בקריאה אחת ל-API. במאמר מגבלות מערכת מתוארות המגבלות על גדלים של בקשות.

פעולות בתוך בקשת API אחת מבוצעות כקבוצה אחת של פעולות כברירת מחדל, כלומר כולן מצליחות יחד או שכל האצווה נכשלת אם פעולה אחת נכשלת. בשירותים מסוימים יש תמיכה במאפיין partialFailure כדי לשנות את ההתנהגות הזו. מידע מפורט יותר על סמנטיקה של פעולות שינוי זמין במאמר Mutating Resources.

יצירה

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

POST /v16/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    {
    "create": {
        "name": "An example campaign",
        "status": "PAUSED",
        "campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/CAMPAIGN_BUDGET_ID",
        "advertisingChannelType": "SEARCH",
        "networkSettings": {
          "targetGoogleSearch": true,
          "targetSearchNetwork": true,
          "targetContentNetwork": true,
          "targetPartnerSearchNetwork": false
        },
        "target_spend": {}
      }
    }
  ]
}

עדכון

פעולות עדכון מבצעות עדכונים מועטים למשאב קיים. צריך לציין רק את השדות שרוצים לשנות.

כדי לציין את השדות שרוצים לעדכן, צריך להגדיר את המאפיין updateMask כרשימה של שמות שדות שמופרדים בפסיקים. האפשרות הזו שימושית במיוחד אם כבר יש לכם ייצוג JSON מלא של אובייקט (למשל, כמוחזר על ידי קריאה קודמת ל-API), אבל אתם רוצים לשנות רק שדות מסוימים. במקום לקצץ את אובייקט ה-JSON, אפשר פשוט לרשום את שמות השדות שיש לשנות ב-updateMask ולשלוח את אובייקט ה-JSON כולו.

הדוגמה הבאה משנה את name ו-status של קמפיין קיים עם resourceName.

POST /v16/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    {
      "updateMask": "name,status",
      "update": {
        "resourceName": "customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID",
        "name": "My renamed campaign",
        "status": "PAUSED",
      }
    }
  ]
}

הסרה

הסרת פעולות מוחקת אובייקט בפועל, וכך תגדיר את הסטטוס שלו ב-Google Ads ל-REMOVED. צריך להסיר רק את השדה resourceName.

POST /v16/customers/CUSTOMER_ID/campaigns:mutate HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "operations": [
    {
      "remove": "customers/CUSTOMER_ID/campaigns/CAMPAIGN_ID"
    }
  ]
}