Mapowania JSON

Jeśli używasz interfejsu REST API Google Ads, pracujesz z prezentacjami JSON tych samych zasobów i typów zdefiniowanych w plikach .proto deskryptora interfejsu Google Ads API. Schemat kodowania JSON jest zgodny ze schematem kodowania kanonicznego opisanym w sekcji Mapowanie mapowania w Przewodniku po językach buforów protokołu.

Ogólnie wszystkie wiadomości najwyższego poziomu do i z usług są pojedynczymi obiektami JSON. Większość żądań mutacji zawiera tablicę operations, która zawiera wiele operacji create, update lub delete. Podobnie odpowiedzi search to obiekty JSON zawierające tablicę results z zestawem wyników zapytania.

Identyfikatory są przekształcane z snake_case (w buforach protokołów) na lowerCamelCase w formacie JSON. Jedną z ważnych kwestii związanych z tą regułą jest używanie zapytań search lub searchStream do wysyłania zapytań języka zapytań Google Ads. Sam język zapytania korzysta z węża, niezależnie od używanego interfejsu. Wyniki zapytania w formacie REST są jednak zwracane jako zwykłe obiekty JSON, których identyfikatory znajdują się w dolnej części CAACase.

Na przykład zapytanie służące do pobierania listy aktywnych słów kluczowych na koncie używa wąż zapytania w samym zapytaniu (ad_group_criterion, a nie 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'"
}

Odpowiedź jest jednak reprezentacją obiektów w formacie JSON (umieszczoną w tablicy JSON, ponieważ to żądanie używa searchStream) i zamiast tego używa identyfikatora ComelCase adGroupCriterion:

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