تعيينات JSON

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

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

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

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

POST /v17/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) ويستخدم معرّف CamlCase adGroupCriterion بدلاً من ذلك:

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