JSON Eşlemeleri

Google Ads API'nin REST arayüzünü kullanırken Google Ads API'nin .proto tanımlayıcı dosyalarında tanımlanan aynı kaynakların ve türlerin JSON gösterimleriyle çalışırsınız. JSON kodlama şeması, protokol arabelleklerinin Dil Kılavuzu'nun JSON eşleme bölümünde açıklanan standart kodlama şemasını izler.

Genel olarak, hizmetler ile gönderilen ve alınan tüm üst düzey mesajlar tek JSON nesnesi şeklindedir. Çoğu mutasyon isteği, içinde birçok create, update veya delete işlemi içeren bir operations dizisi içerir. Benzer şekilde, search yanıtları, sorgunuzun sonuç kümesini içeren bir results dizisi içeren JSON nesneleridir.

Tanımlayıcılar, JSON'da snake_case (protokol arabelleklerinde) yerine lowerCamelCase olarak dönüştürülür. Bu kuralın dikkate değer bir istisnası, Google Ads Sorgu Dili sorguları göndermek için search veya searchStream kullanırken ortaya çıkar. Sorgu dilinde, hangi arayüzü kullandığınızdan bağımsız olarak alt çizgili yazım kullanılır. Ancak REST'teki bir sorgunun sonuçları normal JSON nesneleri olarak döndürülür ve tanımlayıcıları küçük harfli CamelCase olarak yazılır.

Örneğin, bir hesaptaki etkin anahtar kelimelerin listesini almak için kullanılan sorgu, sorgunun içinde küçük harf kullanır (adGroupCriterion değil, ad_group_criterion):

POST /v19/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'"
}

Ancak yanıt, nesnelerin JSON gösterimidir (bu istek searchStream kullandığından JSON dizisine sarmalanmıştır) ve bunun yerine adGroupCriterion büyük/küçük harf duyarlı tanımlayıcısını kullanır:

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