Mapowania JSON

Korzystając z interfejsu API REST Search Ads 360 Reporting API, pracujesz z reprezentacjami w formacie JSON tych samych zasobów i typów, które zostały określone w plikach deskryptora.proto interfejsu Search Ads 360 Reporting API. Schemat kodowania JSON jest zgodny ze schematem kodowania kanonicznego omówionego w sekcji Mapowanie JSON artykułu Language Guide dotyczącego buforów protokołów.

Ogólnie wszystkie wiadomości najwyższego poziomu do i z usług są pojedynczymi obiektami JSON. Odpowiedzi search to obiekty JSON zawierające tablicę results ze zbiorem wyników zapytania.

Identyfikatory są przekształcane z snake_case (w buforach protokołów) na lowerCamelCase w formacie JSON. Istotnym zastrzeżeniem jest to, że do wysyłania zapytań w języku zapytań Search Ads 360 używany jest język search lub searchStream. Sam język zapytań wykorzystuje wielkość liter „snake” (wąż węża) niezależnie od używanego interfejsu. Jednak wyniki zapytania w REST są zwracane jako normalne obiekty JSON, a ich identyfikatory są zapisywane w LowCamelCase.

Na przykład zapytanie mające na celu pobranie listy aktywnych słów kluczowych na koncie używa wielkości liter „snake” (wielkie litery) w samym zapytaniu (ad_group_criterion, a nie 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'"
}

Jednak odpowiedź jest reprezentacją obiektów w formacie JSON (opakowanym w tablicę JSON, ponieważ to żądanie używa searchStream) i używa zamiast niej identyfikatora CamlCase adGroupCriterion:

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