نقشه برداری JSON

هنگام استفاده از رابط REST Google Ads API، با بازنمایی JSON از همان منابع و انواع تعریف شده در فایل‌های توصیف‌گر .proto Google Ads API کار می‌کنید. طرح رمزگذاری JSON از طرح رمزگذاری متعارف شرح داده شده در بخش نقشه برداری JSON از راهنمای زبان بافرهای پروتکل پیروی می کند.

به طور کلی، تمام پیام‌های سطح بالا به و از سرویس‌ها ، اشیاء تک JSON هستند. اکثر درخواست‌های جهش‌یافته حاوی یک آرایه operations هستند که خود شامل بسیاری از عملیات create ، update یا delete است. به طور مشابه، پاسخ های search ، اشیاء JSON هستند که حاوی آرایه results با مجموعه نتایج جستجوی شما هستند.

شناسه ها از snake_case (در بافرهای پروتکل) به lowCamelCase در JSON تبدیل می شوند. یکی از اخطارهای قابل توجه در مورد این قانون زمانی است که از search یا searchStream برای ارسال جستجوهای زبان جستجوی Google Ads استفاده می کنید. خود زبان پرس و جو از snake case استفاده می کند، صرف نظر از اینکه از کدام رابط استفاده می کنید. با این حال، نتایج یک پرس و جو در REST به عنوان اشیاء JSON معمولی برگردانده می شوند و شناسه های خود را در lowCamelCase دارند.

به عنوان مثال، یک پرس و جو برای واکشی لیستی از کلمات کلیدی فعال در یک حساب، از حروف snake در داخل خود درخواست استفاده می کند ( 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 استفاده می کند) و به جای آن از شناسه camelCase adGroupCriterion استفاده می کند:

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