تعيينات JSON

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

بوجه عام، جميع الرسائل من المستوى الأعلى المُرسَلة إلى الخدمات والمُرسَلة منها هي كائنات JSON فردية. search الاستجابات هي كائنات JSON تحتوي على مصفوفة results تتضمّن مجموعة نتائج طلب البحث.

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

على سبيل المثال، يستخدم طلب بحث لجلب قائمة بالكلمات الرئيسية النشطة في حساب طريقة الكتابة بأسلوب Snake داخل طلب البحث نفسه (ad_group_criterion وليس adGroupCriterion):

POST /v0/customers/CUSTOMER_ID/searchAds360:searchStream HTTP/1.1
Host: searchads360.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"
          }
        }
      },
      ...
    ]
  }
]