Mappages JSON

Lorsque vous utilisez l'interface REST de l'API Google Ads, vous travaillez avec des représentations JSON des mêmes ressources et types définis dans les fichiers de descripteur .proto de l'API Google Ads. Le schéma d'encodage JSON suit le schéma d'encodage canonique décrit dans la section Mappage JSON du Protocol Buffers Guide du langage.

En général, tous les messages de premier niveau vers et depuis les services sont des objets JSON uniques. La plupart des requêtes de mutation contiennent un tableau operations qui contient lui-même de nombreuses opérations create, update ou delete. De même, les réponses search sont des objets JSON contenant un tableau results avec l'ensemble de résultats de votre requête.

Les identifiants sont transformés de snake_case (dans les tampons de protocole) en lowerCamelCase dans JSON. Une exception notable à cette règle se produit lorsque vous utilisez search ou searchStream pour envoyer des requêtes en langage de requête Google Ads. Le langage de requête lui-même utilise le format snake case, quelle que soit l'interface que vous utilisez. Toutefois, les résultats d'une requête dans REST sont renvoyés sous forme d'objets JSON normaux et leurs identifiants sont au format lowerCamelCase.

Par exemple, une requête permettant de récupérer une liste de mots clés actifs dans un compte utilise le format snake case dans la requête elle-même (ad_group_criterion, et non adGroupCriterion) :

POST /v26/customers/CUSTOMER_ID/googleAds:searchStream HTTP/1.1
Host: googleads.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'"
}

Toutefois, la réponse est une représentation JSON des objets (encapsulée dans un tableau JSON, car cette requête utilise searchStream) et utilise l'identifiant camelCase adGroupCriterion à la place :

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