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 passate 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 delle prestazioni 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 gli oggetti da restituire
- Limita il numero di oggetti restituiti.
Entrambi i metodi di ricerca restituiscono tutte le righe che corrispondono alla query. Ad esempio, quando recuperi 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 i campi clicks
impostati.
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 round trip 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 in termini di prestazioni tra i metodi per report di dimensioni inferiori (< 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
Di seguito è riportato un esempio completo della definizione di report per searchStream
racchiusa in una richiesta HTTP POST
:
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
.
Nelle pagine segments
e metrics
sono elencati tutti i segmenti e i campi delle metriche disponibili.
Alcuni segmenti, risorse e metriche sono incompatibili e non possono essere utilizzati insieme, mentre altri 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 risorse correlate selezionando i rispettivi campi insieme a quelli della risorsa nella clausola
FROM
. Ad esempio, la risorsacampaign
è una risorsa attribuita della risorsaad_group
. Ciò significa che puoi includere campi comecampaign.id
ecampaign.bidding_strategy_type
nella query quando utilizziad_group
nella clausolaFROM
.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 clausolaSELECT
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 clausolaFROM
, 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 clausolaSELECT
dei campi della risorsa. Ogni campo contiene un link a tutti i dettagli del campo, tra cui descrizione, categoria, tipo di dati, tipo di URL e impostazione filtrabile, selezionabile, ordinabile e ripetuta. Se utilizzi la risorsa nella clausolaFROM
, 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 risorsacampaign
, comecampaign.name
, quando utilizzicampaign_budget
nella clausolaFROM
,campaign.resource_name
viene restituito e segmentato automaticamente, perchécampaign
è una risorsa di segmentazione dicampaign_budget
.La sezione Segmentazione delle risorse 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 Scegli con espandibile per ogni camposegments
che elenca tutti i campi delle risorse compatibili, i campimetrics
e altri campisegments
che puoi includere nella clausolaSELECT
.
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 sono 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 clausolaSELECT
. Se vuoi, puoi anche 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 chesegments.date
non è incluso nella clausolaSELECT
.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 clausolaSELECT
.WHERE
I campi specificati nelle clausoleSELECT
eWHERE
non devono corrispondere.Questa query di esempio restituisce le metriche
clicks
per nome della campagna segmentate 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 i seguenti intervalli di date e 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
Zero metriche
Quando esegui una query, potresti incontrare metriche con valore zero per alcune entità. Scopri come gestire le metriche pari a zero nelle query.
Tipi di enum SCONOSCIUTI
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
create tramite altre interfacce. Ad esempio, una nuova campagna o un nuovo annuncio vengono introdotti nell'interfaccia utente di Search Ads 360, ma non sono ancora supportati nella versione dell'API su cui esegui le 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 rimanereUNKNOWN
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 risorsaUNKNOWN
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
possono avere metriche dettagliate a cui puoi eseguire query. - Le risorse
UNKNOWN
sono in genere completamente visibili nell'interfaccia utente di Search Ads 360.