מיפויי JSON

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

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

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

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

POST /v16/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) ומזהה במקום זאת את CamleCase adGroupCriterion:

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