Mapeamentos JSON

Ao usar a interface REST da Google Ads API, você trabalha com representações JSON dos mesmos recursos e tipos definidos nos arquivos .proto descriptor da Google Ads API. O esquema de codificação JSON segue o esquema canônico descrito na seção Mapeamento do JSON do Guia de linguagem dos buffers de protocolo.

Em geral, todas as mensagens de nível superior de e para serviços são objetos JSON únicos. A maioria das solicitações de modificação contém uma matriz operations que contém muitas operações create, update ou delete. Da mesma forma, as respostas search são objetos JSON que contêm uma matriz results com o conjunto de resultados da sua consulta.

Os identificadores são transformados de snake_case (em buffers de protocolo) para lowerCamelCase em JSON. Uma ressalva notável dessa regra é o uso de search ou searchStream para enviar consultas da linguagem de consulta do Google Ads. A própria linguagem de consulta usa o uso do snake case, independentemente da interface que você está usando. No entanto, os resultados de uma consulta em REST são retornados como objetos JSON normais e têm seus identificadores em lowCamelCase.

Por exemplo, uma consulta para buscar uma lista de palavras-chave ativas em uma conta usa caso de cobra dentro da própria consulta (ad_group_criterion, não 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'"
}

No entanto, a resposta é uma representação JSON dos objetos (encapsulados em uma matriz JSON, já que essa solicitação usa searchStream) e usa o identificador camelCase adGroupCriterion:

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