מיפויי JSON

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

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

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

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

POST /v26/customers/CUSTOMER_ID/googleAds:searchStream HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_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) ומשתמשת במזהה camelCase adGroupCriterion במקום:

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