Ricerca e SearchStream

Video: report

L'API Google Ads dispone di un meccanismo unificato di recupero degli attributi e di generazione di report sulle metriche che ti consente di creare query utilizzando il linguaggio di query di Google Ads. Ciò consente di eseguire query complesse che possono restituire grandi quantità di dati su singoli account Google Ads.

Puoi creare query utilizzando i metodi Search o SearchStream. Entrambi i metodi supportano le stesse query e restituiscono risultati equivalenti. Il metodo Search restituisce i dati in dimensioni di pagina personalizzabili, consentendoti di eseguire l'iterazione in un set di risultati utilizzando l'impaginazione. Questo potrebbe essere vantaggioso in caso di larghezza di banda insufficiente o in condizioni di rete inaffidabili, ad esempio per segmentare un insieme di risultati di grandi dimensioni in risposte più piccole che possono essere recuperate nuovamente in caso di interruzione della connessione. Il metodo SearchStream, invece, trasmette l'intero risultato in una singola risposta, il che può essere più efficiente per il recupero collettivo dei dati.

Sia Search che SearchStream usano lo stesso URL di base:

    https://googleads.googleapis.com/v16/customers/CUSTOMER_ID/googleAds

Il metodo di ricerca basata sulle pagine richiede un parametro pageSize facoltativo che limita il numero di risultati restituiti in una singola risposta dell'API.

POST /v16/customers/CUSTOMER_ID/googleAds:search HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
"pageSize": 10000,
"query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'"
}

Se nei risultati sono presenti più righe rispetto a pageSize, nella risposta viene restituito un nextPageToken:

{
  "results": [
    // ...
    // ...
    // ...
  ],
  "nextPageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B",
  "fieldMask": "adGroupCriterion.keyword.text,adGroupCriterion.status"
}

La ripetizione della stessa query con un valore pageToken aggiunto con il valore riportato sopra consente di recuperare la pagina di risultati successiva:

POST /v16/customers/CUSTOMER_ID/googleAds:search HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
"pageSize": 10000,
"query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'",
"pageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B"
}

Per utilizzare il metodo SearchStream, che restituisce tutti i risultati in un'unica risposta in streaming, è sufficiente modificare il metodo di servizio nell'URL in searchStream (pageSize e pageToken non sono obbligatori per SearchStream):

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, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'"
}