Mappature JSON

Quando utilizzi l'interfaccia REST dell'API Google Ads, collabori con rappresentazioni JSON delle stesse risorse e degli stessi tipi definiti nei file descriptor dell'API Google Ads. Lo schema di codifica JSON segue lo schema di codifica canonico descritto nella sezione Mappatura JSON del buffer di protocollo Guida ai linguaggi.

In generale, tutti i messaggi di primo livello da e verso servizi sono singoli oggetti JSON. La maggior parte delle richieste mutate contiene un array operations che a sua volta contiene molte operazioni create, update o delete. Allo stesso modo, le risposte search sono oggetti JSON contenenti un array results con il set di risultati della query.

Gli identificatori vengono trasformati da snake_case (nei buffer di protocollo) a lowerCamelCase in JSON. Un aspetto importante di questa regola è l'utilizzo di search o searchStream per inviare query relative al linguaggio di query Google Ads. Il linguaggio di query stesso utilizza le maiuscole, indipendentemente dall'interfaccia in uso. Tuttavia, i risultati di una query in REST vengono restituiti come normali oggetti JSON e hanno i relativi identificatori in underCamelCase.

Ad esempio, una query per recuperare un elenco di parole chiave attive in un account usa la chiave snake all'interno della query stessa (ad_group_criterion, non 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'"
}

Tuttavia, la risposta è una rappresentazione JSON degli oggetti (racchiusi in un array JSON poiché questa richiesta utilizza searchStream) e utilizza invece l'identificatore camelCase adGroupCriterion:

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