מיפויי JSON

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

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

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

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

POST /v19/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"
          }
        }
      },
      ...
    ]
  }
]