מיפויי JSON

כשמשתמשים בממשק REST של Google Ads API, עובדים עם ייצוגי JSON של אותם משאבים וסוגים שמוגדרים בקובצי .proto descriptor של Google Ads API. סכימת הקידוד של JSON מבוססת על סכימת הקידוד הקנונית שמתוארת בקטע מיפוי JSON במדריך השפה של Protocol Buffers.

באופן כללי, כל ההודעות ברמה העליונה אל השירותים וממנה הן אובייקטים יחידים של JSON. רוב בקשות השינוי מכילות מערך operations שמכיל בעצמו הרבה פעולות create, update או delete. באופן דומה, תגובות search הן אובייקטים של JSON שמכילים מערך search עם קבוצת התוצאות של השאילתה.results

המזהים עוברים המרה מ-snake_case (במאגרי פרוטוקולים) ל-lowerCamelCase ב-JSON. יוצא דופן בולט לכלל הזה הוא כשמשתמשים ב-search או ב-searchStream כדי לשלוח שאילתות של שפת השאילתות של Google Ads. שפת השאילתה עצמה משתמשת בקו תחתון בין המילים, ללא קשר לממשק שבו משתמשים. עם זאת, התוצאות של שאילתה ב-REST מוחזרות כאובייקטים רגילים של JSON, והמזהים שלהן הם בפורמט lowerCamelCase.

לדוגמה, שאילתה לאחזור רשימה של מילות מפתח פעילות בחשבון משתמשת ב-snake case בתוך השאילתה עצמה (ad_group_criterion, לא adGroupCriterion):

POST /v21/customers/CUSTOMER_ID/googleAds:searchStream HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
  "query": "SELECT ad_group_criterion.keyword.text
            FROM ad_group_criterion
            WHERE ad_group_criterion.type = 'KEYWORD'
            AND ad_group_criterion.status = 'ENABLED'"
}

עם זאת, התגובה היא ייצוג JSON של האובייקטים (עטוף במערך JSON כי הבקשה הזו משתמשת ב-searchStream), והיא משתמשת במזהה adGroupCriterion בפורמט camelCase במקום זאת:

[
  {
    "results": [
      {
        "adGroupCriterion": {
          "resourceName": "customers/1842689525/adGroupCriteria/55771861891~10003060",
          "keyword": {
            "text": "pay per click"
          }
        }
      },
      ...
    ]
  }
]