Asignaciones JSON

Cuando usas la interfaz REST de la API de Search Ads 360 Reporting, trabajas con representaciones JSON de los mismos recursos y tipos definidos en los archivos descriptores.proto de la API de Search Ads 360 Reporting. El esquema de codificación JSON sigue el esquema de codificación canónico descrito en la sección Asignación JSON de la Guía de lenguaje de búferes de protocolo.

En general, todos los mensajes de nivel superior hacia y desde los servicios son objetos JSON únicos. Las respuestas de search son objetos JSON que contienen un array de 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 salvedad importante respecto de esta regla es cuando se usan search o searchStream para enviar consultas en el lenguaje de consulta de Search Ads 360. El lenguaje de consulta en sí usa snake case, independientemente de la interfaz que estés usando. Sin embargo, los resultados de una consulta en REST se muestran como objetos JSON normales y tienen sus identificadores en lowerCamelCase.

Por ejemplo, una consulta para recuperar una lista de palabras clave activas en una cuenta utiliza Snake case dentro de la consulta (ad_group_criterion, no 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'"
}

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

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