تعيينات JSON

عند استخدام واجهة REST الخاصة بـ Google Ads API، ستتعامل مع تمثيلات JSON للموارد والأنواع نفسها المحدّدة في ملفات وصف.proto الخاصة بـ Google Ads API. يتّبع مخطّط ترميز JSON مخطّط الترميز الأساسي الموضّح في قسم ربط JSON في دليل اللغة الخاص بمخازن البروتوكول المؤقتة.

بشكل عام، جميع الرسائل ذات المستوى الأعلى من وإلى الخدمات هي عناصر JSON فردية. تحتوي معظم طلبات التعديل على مصفوفة operations تتضمّن بدورها العديد من عمليات create أو update أو delete. وبالمثل، فإنّ ردود search هي عناصر JSON تحتوي على مصفوفة results تتضمّن مجموعة نتائج طلب البحث.

يتم تحويل المعرّفات من snake_case (في Protocol Buffers) إلى lowerCamelCase في JSON. أحد التحذيرات الجديرة بالذكر بشأن هذه القاعدة هو عند استخدام search أو searchStream لإرسال طلبات بحث لغة طلبات البحث في "إعلانات Google". تستخدم لغة طلب البحث نفسها تنسيق snake case، بغض النظر عن الواجهة التي تستخدمها. ومع ذلك، يتم عرض نتائج طلب البحث في REST كعناصر JSON عادية وتكون معرّفاتها بتنسيق lowerCamelCase.

على سبيل المثال، يستخدم طلب البحث لجلب قائمة بالكلمات الرئيسية النشطة في حساب ما تنسيق snake case داخل طلب البحث نفسه (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"
          }
        }
      },
      ...
    ]
  }
]