Mapeamentos JSON

Ao usar a interface REST da API Google Ads, você trabalha com representações JSON dos mesmos recursos e tipos definidos nos arquivos descritores.proto da API Google Ads. O esquema de codificação JSON segue o esquema canônico descrito na seção Mapeamento 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 mutação contém uma matriz operations que, por sua vez, 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 exceção importante a essa regra é quando você usa search ou searchStream para enviar consultas da linguagem de consulta do Google Ads. A linguagem de consulta usa snake case, independente 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 lowerCamelCase.

Por exemplo, uma consulta para buscar uma lista de palavras-chave ativas em uma conta usa snake case dentro da própria consulta (ad_group_criterion, não adGroupCriterion):

POST /v21/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 (encapsulada em uma matriz JSON, já que esta solicitação usa searchStream) e usa o identificador camelCase adGroupCriterion:

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