Ricerca e SearchStream

Video: Report

L'API Google Ads dispone di un meccanismo per il recupero degli attributi e la generazione di report sulle metriche uniformato che ti consente di creare query utilizzando il linguaggio di query Google Ads. In questo modo, puoi eseguire query complesse che possono restituire grandi quantità di dati su singoli account Google Ads.

Puoi creare query utilizzando uno dei 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 insieme di risultati utilizzando la paginazione. Ciò potrebbe essere vantaggioso in condizioni di rete con larghezza di banda ridotta o inaffidabile, ad esempio per segmentare un insieme di risultati di grandi dimensioni in risposte più piccole che possono essere recuperate se una connessione viene persa. Il metodo SearchStream, invece, restituisce l'intero insieme di risultati in un'unica risposta, il che può essere più efficiente per il recupero collettivo dei dati.

Sia Search che SearchStream utilizzano lo stesso URL base:

    https://googleads.googleapis.com/v18/customers/CUSTOMER_ID/googleAds
POST /v18/customers/CUSTOMER_ID/googleAds:search 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'"
}

Se i risultati contengono più di 10.000 righe,nella risposta viene restituito un valore nextPageToken:

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

Se ripeti la stessa query aggiungendo un pageToken con i valori della richiesta precedente, viene recuperata la pagina di risultati successiva:

POST /v18/customers/CUSTOMER_ID/googleAds:search 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'",
"pageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B"
}

Per utilizzare il metodo SearchStream, che restituisce tutti i risultati in un'unica risposta in streaming, modifica il metodo di servizio nell'URL in searchStream (pageToken non è richiesto da SearchStream):

POST /v18/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'"
}