Crea report di ricerca nell'API Search Ads 360 Reporting

Leggi le sezioni seguenti per scoprire come creare report sulla rete di ricerca nell'API Search Ads 360 Reporting.

Servizio di ricerca

L'API Search Ads 360 Reporting fornisce un servizio speciale per la ricerca e la generazione di report.

SearchAds360Service è un servizio unificato di recupero e generazione di report sugli oggetti che fornisce due metodi di ricerca: SearchStream e Search. Le ricerche vengono comunicate in una stringa di query scritta nel linguaggio di query di Search Ads 360. Puoi definire query per:

  • Recuperare attributi specifici degli oggetti.
  • Recupera le metriche sul rendimento per gli oggetti in base a un intervallo di date.
  • Ordina gli oggetti in base ai relativi attributi.
  • Filtra i risultati utilizzando condizioni che specificano quali oggetti restituire
  • Limita il numero di oggetti restituiti.

Entrambi i metodi di ricerca restituiscono tutte le righe che corrispondono alla query. Ad esempio, quando recupero campaign.id, campaign.name e metrics.clicks, l'API restituisce un SearchAds360Row contenente un oggetto campagna con i campi id e name impostati e un oggetto metrics con il campo clicks impostato.

Metodi di ricerca

SearchStream

Invia una singola richiesta e avvia una connessione permanente con l'API Search Ads 360 Reporting, indipendentemente dalle dimensioni del report.

  • I pacchetti di dati iniziano a essere scaricati immediatamente con l'intero risultato memorizzato nella cache in un buffer di dati.
  • Il codice può iniziare a leggere i dati memorizzati nella memoria tampone senza dover attendere il completamento dell'intero stream.
Search

Invia più richieste paginate per scaricare l'intero report.

SearchStream in genere offre prestazioni migliori perché elimina il tempo di rete di andata e ritorno necessario per richiedere singole pagine. Ti consigliamo di utilizzare SearchStream per tutti i report con più di 10.000 righe. Non esiste una differenza significativa di rendimento tra i metodi per i report più piccoli (< 10.000 righe).

Il metodo utilizzato non influisce sulle quote e sui limiti dell'API: una singola query o un singolo report viene conteggiato come un'operazione, indipendentemente dal fatto che i risultati siano suddivisi in pagine o in streaming.

Query di ricerca di esempio

Questa query di esempio restituisce i dati sul rendimento di un account per gli ultimi 30 giorni per campagna, segmentati per dispositivo:

SELECT
  campaign.name,
  campaign.status,
  segments.device,
  metrics.impressions,
  metrics.clicks,
  metrics.ctr,
  metrics.average_cpc,
  metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

Fai una richiesta

Per emettere una richiesta, devi passare una stringa customer_id e una query all'interfaccia SearchAds360Service.SearchStream o SearchAds360Service.Search.

La richiesta consiste in un POST HTTP al server dell'API Search Ads 360 Reporting a uno dei seguenti URL:

https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:search

Ecco un esempio completo della definizione del report per searchStream racchiusa in una richiesta POST HTTP:

POST /VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream HTTP/1.1
Host: searchads360.googleapis.com
User-Agent: curl
Content-Type: application/json
Accept: application/json
Authorization: Bearer [OAUTH_2.0_ACCESS_TOKEN]

Parameters:
{
  "query" : "SELECT campaign.name, campaign.status, segments.device,
                    metrics.impressions, metrics.clicks, metrics.ctr,
                    metrics.average_cpc, metrics.cost_micros
            FROM campaign
            WHERE segments.date DURING LAST_30_DAYS"
}

Elaborare una risposta

SearchAds360Service restituisce un elenco di oggetti SearchAds360Row.

Ogni SearchAds360Row rappresenta un oggetto restituito dalla query. Ogni oggetto è costituito da un insieme di attributi che vengono compilati in base ai campi richiesti nella clausola SELECT della query. Gli attributi non inclusi nella clausola SELECT non vengono compilati negli oggetti della risposta.

Ad esempio, la query riportata di seguito compila ogni oggetto SearchAds360Row solo con campaign.id, campaign.name e campaign.status. Altri attributi, come campaign.engine_id o campaign.bidding_strategy_type, vengono omessi.

SELECT
  campaign.id,
  campaign.name,
  campaign.status
FROM campaign

Documentazione di riferimento

La sezione Riferimento include tutte le informazioni necessarie per utilizzare correttamente ogni elemento. Esiste una pagina per ogni risorsa, ad esempio ad_group e campaign. Le pagine segments e metrics elencano tutti i campi dei segmenti e delle metriche disponibili.

Alcune risorse, segmenti e metriche non sono compatibili e non possono essere utilizzate insieme, mentre altre sono completamente compatibili e si completano a vicenda. Ogni pagina della risorsa include le seguenti informazioni (se disponibili e appropriate) e altro ancora:

Risorse attribuite

Per alcune risorse, potresti avere la possibilità di unire implicitamente le risorse correlate selezionando i relativi campi insieme ai campi della risorsa nella clausola FROM. Ad esempio, la risorsa campaign è una risorsa attribuita della risorsa ad_group. Ciò significa che puoi includere campi come campaign.id e campaign.bidding_strategy_type nella query quando utilizzi ad_group nella clausola FROM.

La sezione Risorse attribuite elenca le risorse attribuite disponibili. Non tutte le risorse hanno risorse attribuite.

Colonna dei campi delle risorse

Tutti i campi della risorsa sono inclusi nella colonna Campi della risorsa. Ogni campo della risorsa rimanda a ulteriori dettagli sul campo, tra cui descrizione, categoria, tipo di dati, URL del tipo e impostazioni filtrabili, selezionabili, ordinabili e ripetute.

Colonna Segmenti

Non tutti i campi del segmento sono selezionabili con una determinata risorsa.

La colonna Segmenti elenca i campi segments che puoi utilizzare nella stessa clausola SELECT dei campi della risorsa. Ogni campo rimanda a dettagli completi sul campo, tra cui descrizione, categoria, tipo di dati, URL del tipo e impostazioni filtrabili, selezionabili, ordinabili e ripetute. Se utilizzi la risorsa nella clausola FROM, puoi utilizzare il menu a discesa Sì/No per filtrare i segmenti non disponibili.

Colonna delle metriche

Non tutti i campi delle metriche sono selezionabili con una determinata risorsa.

La colonna Metriche elenca i campi metrics che puoi utilizzare nella stessa clausola SELECT dei campi della risorsa. Ogni campo rimanda a dettagli completi sul campo, tra cui descrizione, categoria, tipo di dati, URL del tipo e impostazioni filtrabili, selezionabili, ordinabili e ripetute. Se utilizzi la risorsa nella clausola FROM, utilizza il menu a discesa Sì/No per filtrare le metriche non disponibili.

Segmentazione delle risorse

Alcune risorse hanno campi di risorse di segmentazione che puoi selezionare quando la risorsa è nella clausola FROM. Ad esempio, se selezioni un campo della risorsa campaign, come campaign.name, quando utilizzi campaign_budget nella clausola FROM, campaign.resource_name viene restituito e segmentato automaticamente, perché campaign è una risorsa di segmentazione di campaign_budget.

La sezione Risorse di segmentazione elenca le risorse di segmentazione disponibili. Non tutte le risorse hanno risorse di segmentazione.

Selezionabile con

Alcuni campi segments non sono compatibili con altre risorse, segmenti e metriche.

La pagina segments include un campo Selezionabile con espandibile per ogni campo segments che elenca tutti i campi delle risorse compatibili, i campi metrics e altri campi segments che puoi includere nella clausola SELECT.

Segmentazione

Puoi segmentare i risultati di ricerca aggiungendo un segments.FIELD_NAME campo alla clausola SELECT della query.

Ad esempio, segments.device nella query riportata di seguito genera un report con una riga per impressions di ciascun dispositivo per la risorsa specificata nella clausola FROM.

SELECT
  campaign.name,
  campaign.status,
  segments.device,
  metrics.impressions
FROM campaign

I risultati restituiti da SearchAds360Service.SearchStream sono simili a questa stringa JSON:

{
  "results":[
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"10922"
      },
      "segments":{
        "device":"MOBILE"
      }
    },
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"28297"
      },
      "segments":{
        "device":"DESKTOP"
      }
    },
    ...
  ]
}

Consulta segments per un elenco dei campi dei segmenti disponibili che puoi utilizzare.

Più segmenti

Puoi specificare più segmenti nella clausola SELECT della query. La risposta contiene un oggetto SearchAds360Row per ogni combinazione dell'istanza della risorsa principale specificata nella clausola FROM e il valore di ogni campo segment selezionato.

Ad esempio, la seguente query restituirà una riga per ogni combinazione di campaign, segments.ad_network_type e segments.date.

SELECT
  segments.ad_network_type
  segments.date
FROM campaign

Tieni presente che i risultati vengono segmentati implicitamente in base a ogni istanza della risorsa principale, ma non in base ai valori dei singoli campi selezionati.

La seguente query di esempio genera una riga per campagna, non una riga per valore distinto del campo campaign.status.

SELECT
  campaign.status,
  metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_14_DAYS

Segmentazione implicita

Ogni report viene inizialmente segmentato in base alla risorsa specificata nella clausola FROM. Le metriche sono segmentate in base al campo resource_name di questa risorsa

Questa query di esempio restituisce automaticamente ad_group.resource_name e lo utilizza implicitamente per segmentare le metriche a livello di ad_group.

SELECT metrics.impressions
FROM ad_group

La stringa JSON restituita è simile alla seguente:

{
  "results":[
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/2222222222"
      },
      "metrics":{
        "impressions":"237"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/33333333333"
      },
      "metrics":{
        "impressions":"15"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/44444444444"
      },
      "metrics":{
        "impressions":"0"
      }
    }
  ]
}

Segmenti di date principali

Puoi utilizzare i segmenti di date di base nella clausola WHERE per specificare una data o un periodo di tempo.

I seguenti campi dei segmenti sono noti come segmenti di date principali: segments.date, segments.week, segments.month, segments.quarter e segments.year.

Questa query di esempio restituisce le metriche clicks della campagna per gli ultimi 30 giorni.

SELECT
  campaign.id,
  campaign.name,
  segments.date,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

I campi dei segmenti di date principali sono un'eccezione alla regola generale che non consente di utilizzare un campo dei segmenti nella clausola WHERE, a meno che non venga incluso anche nella clausola SELECT. Per saperne di più, consulta la sezione Filtro vietato.

Regole di base per i segmenti di date:

  • Puoi utilizzare un campo data principale nella clausola WHERE senza includerlo nella clausola SELECT. Se vuoi, puoi includere il campo in entrambe le clausole.

    Questa query di esempio restituisce le metriche clicks per nome della campagna nell'intervallo di date. Tieni presente che segments.date non è incluso nella clausola SELECT.

    SELECT
        campaign.name,
        metrics.clicks
    FROM campaign
    WHERE segments.date > '2022-02-01'
      AND segments.date < '2022-03-01'
    
  • Se includi un campo Data principale nella clausola SELECT, devi specificare una data o un intervallo di date limitato nella clausola SELECT.WHERE I campi specificati nelle clausole SELECT e WHERE non devono corrispondere.

    Questa query di esempio restituisce le metriche clicks per nome della campagna suddivise per mese per tutti i giorni dell'intervallo di date.

    SELECT
      campaign.name,
      metrics.clicks,
      segments.month
    FROM campaign
    WHERE segments.date > '2022-02-01'
      AND segments.date < '2022-03-01'
    

Date ISO 8601

Puoi utilizzare il formato YYYY-MM-DD (ISO 8601) per specificare date e intervalli di date, ad esempio:

WHERE segments.date BETWEEN '2022-06-01' AND '2022-06-30'
WHERE segments.date >= '2022-06-01' AND segments.date <= '2022-06-30'

Per i segmenti di date principali che richiedono un periodo di tempo (segments.week, segments.month, segments.quarter), puoi utilizzare l'operatore = con il primo giorno del periodo di tempo, ad esempio:

WHERE segments.month = '2022-06-01'

Date predefinite

Puoi anche utilizzare le seguenti date e intervalli di date predefiniti:

Date predefinite
TODAY Solo oggi.
YESTERDAY Solo ieri.
LAST_7_DAYS Sette giorni precedenti, escluso il giorno corrente.
LAST_BUSINESS_WEEK Settimana lavorativa di 5 giorni precedente (dal lunedì al venerdì).
THIS_MONTH Tutti i giorni del mese corrente.
LAST_MONTH Tutti i giorni del mese precedente.
LAST_14_DAYS Ultimi 14 giorni escluso il giorno corrente.
LAST_30_DAYS 30 giorni precedenti, escluso il giorno corrente.
THIS_WEEK_SUN_TODAY Periodo compreso tra la domenica precedente e il giorno corrente.
THIS_WEEK_MON_TODAY Periodo compreso tra il lunedì precedente e il giorno corrente.
LAST_WEEK_SUN_SAT Periodo di 7 giorni a partire dalla domenica precedente.
LAST_WEEK_MON_SUN Periodo di 7 giorni a partire dal lunedì precedente.

Esempio:

WHERE segments.date DURING LAST_30_DAYS

Nessuna metrica

Quando esegui una query, potresti trovare metriche con un valore pari a zero per alcune entità. Scopri come gestire le metriche pari a zero nelle query.

Tipi di enum UNKNOWN

Se una risorsa viene restituita con il tipo di dati enum UNKNOWN, significa che il tipo non è completamente supportato nella versione dell'API. Queste risorse potrebbero essere state create tramite altre interfacce. Ad esempio, una nuova campagna o un nuovo annuncio viene introdotto nell'interfaccia utente di Search Ads 360, ma non è ancora supportato nella versione dell'API su cui stai eseguendo la query.

Puoi comunque selezionare le metriche quando una risorsa ha il tipo UNKNOWN, ma devi tenere presente quanto segue:

  • Una risorsa con un tipo UNKNOWN potrebbe essere supportata in un secondo momento, ma potrebbe rimanere UNKNOWN a tempo indeterminato.
  • I nuovi oggetti con tipo UNKNOWN possono essere visualizzati in qualsiasi momento. Questi oggetti sono compatibili con le versioni precedenti perché il valore dell'enum è già disponibile. Con questa modifica, stiamo introducendo le risorse man mano che diventano disponibili per offrirti una visione accurata del tuo account. La risorsa UNKNOWN può essere visualizzata a causa di nuova attività nel tuo account tramite altre interfacce o perché una risorsa non è più supportata formalmente.
  • Le risorse UNKNOWN potrebbero avere metriche dettagliate a cui puoi eseguire query.
  • Le risorse UNKNOWN sono in genere completamente visibili nell'interfaccia utente di Search Ads 360.