Asignaciones JSON

Cuando usas la interfaz REST de la API de Google Ads, trabajas con representaciones JSON de los mismos recursos y tipos definidos en los archivos .proto descriptor de la API de Google Ads. El esquema de codificación JSON sigue el esquema de codificación canónico descrito en la sección sobre la asignación de JSON de la Guía de idioma de los búferes de protocolo.

En general, todos los mensajes de nivel superior desde los servicios y hacia ellos son objetos JSON individuales. La mayoría de las solicitudes de mutación contienen un array operations que contiene muchas operaciones create, update o delete. Del mismo modo, las respuestas de search son objetos JSON que contienen un array results con el conjunto de resultados de tu consulta.

Los identificadores se transforman de snake_case (en búferes de protocolo) a lowerCamelCase en JSON. Una advertencia notable sobre esta regla es cuando se usan search o searchStream para enviar consultas del lenguaje de consulta de Google Ads. El lenguaje de consulta en sí usa snake case, independientemente de la interfaz que uses. Sin embargo, los resultados de una consulta en REST se muestran como objetos JSON normales y tienen sus identificadores en lowCamelCase.

Por ejemplo, una consulta para recuperar una lista de palabras clave activas en una cuenta usa un caso de serpiente dentro de la consulta en sí (ad_group_criterion, no 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'"
}

Sin embargo, la respuesta es una representación de JSON de los objetos (unidos en un array JSON, ya que esta solicitud usa searchStream) y, en su lugar, usa el identificador de camelCase adGroupCriterion:

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