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 Google Ads Query Language. In questo modo, è possibile eseguire query complesse che possono restituire grandi quantità di dati sui 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 pagine di dimensioni fisse di 10.000 righe, consentendoti di eseguire l'iterazione su un set di risultati utilizzando l'impaginazione. Questo potrebbe essere vantaggioso in condizioni di larghezza di banda ridotta o di rete inaffidabile, ad esempio per segmentare un set di risultati di grandi dimensioni in risposte più piccole che possono essere recuperate nuovamente se una connessione viene persa. Il metodo SearchStream, invece, trasmette l'intero set di risultati in un'unica risposta, il che può essere più efficiente per il recupero di dati collettivi.
Sia Search che SearchStream utilizzano lo stesso URL di base:
https://googleads.googleapis.com/v26/customers/CUSTOMER_ID/googleAds
POST /v26/customers/CUSTOMER_ID/googleAds:search HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_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'" }
Se i risultati contengono più di 10.000 righe,nella risposta viene restituito un nextPageToken:
{ "results": [ // ... // ... // ... ], "nextPageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B", "fieldMask": "adGroupCriterion.keyword.text,adGroupCriterion.status" }
Ripetendo la stessa query con un pageToken aggiunto con i valori della richiesta precedente, viene recuperata la pagina successiva dei risultati:
POST /v26/customers/CUSTOMER_ID/googleAds:search HTTP/1.1 Host: googleads.googleapis.com Content-Type: application/json Authorization: Bearer ACCESS_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'", "pageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B" }
Per utilizzare il metodo SearchStream, che restituisce tutti i risultati in un'unica risposta in streaming, modifica il metodo del servizio nell'URL in searchStream (pageToken non è richiesto da SearchStream):
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, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'" }