تعيينات JSON

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

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

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

على سبيل المثال، يستخدم طلب البحث لجلب قائمة بالكلمات الرئيسية النشطة في الحساب حالة ثعبان داخل طلب البحث نفسه (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) ويستخدم معرّف CamlCase adGroupCriterion بدلاً من ذلك:

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