La segmentazione è disponibile nell'interfaccia utente di Google Ads come menu separato. Puoi implementare la segmentazione nell'API Google Ads aggiungendo il campo appropriato a una query. Ad
esempio, supponiamo che tu aggiunga segments.device
a una query. Il risultato è un report con una riga per ogni combinazione di dispositivo
e la risorsa specificata nella clausola FROM, e
i valori statistici (impressioni, clic, conversioni e così via) suddivisi tra
di essi.
Nell'interfaccia utente di Google Ads è possibile utilizzare un solo segmento alla volta, ma con l'API puoi specificare più segmenti nella stessa query.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
I risultati dell'invio di questa query a GoogleAdsService.SearchStream saranno 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"
}
},
...
]
}
In questo risultato di esempio, gli attributi del primo e del secondo oggetto, incluso il nome della risorsa, sono gli stessi. Le impressioni sono segmentate per dispositivo, e pertanto è possibile restituire due o più oggetti per la stessa campagna.
Segmentazione implicita
Ogni report viene inizialmente segmentato in base alla risorsa specificata nella clausola FROM. Il campo resource_name della risorsa nella clausola FROM viene restituito e le metriche vengono segmentate in base a questo campo, anche se non è incluso esplicitamente nella query. Ad esempio, quando specifichi
ad_group come risorsa nella clausola FROM, allora
ad_group.resource_name verrà
restituito automaticamente e le metriche verranno segmentate implicitamente in base a questo campo a livello di
gruppo di annunci.
Quindi, per questa query:
SELECT metrics.impressions
FROM ad_group
Otterresti una stringa JSON 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"
}
}
]
}
Il campo resource_name di adGroup viene sempre restituito perché ad_group è specificato come risorsa nella clausola FROM.
Campi segmento selezionabili
Non tutti i campi segmento sono selezionabili per una determinata risorsa nella clausola FROM.
Ad esempio, supponiamo che tu continui a eseguire query dalla
ad_group risorsa. Affinché un campo segmento sia selezionabile dalla risorsa ad_group, deve esistere nell'elenco Segments per ad_group. L'elenco Segments è la parte gialla della tabella dei campi disponibili
nella pagina dei metadati della risorsa ad_group.
Risorse segmento
Quando selezioni alcune risorse, potresti avere la possibilità di eseguire un join implicito sulle risorse correlate selezionando i relativi campi insieme ai campi della risorsa nella clausola FROM. Queste risorse correlate sono disponibili nell'elenco Attributed Resources nella pagina dei metadati della risorsa nella clausola FROM. Nel caso della risorsa ad_group, vedrai
che puoi selezionare anche i campi della risorsa campaign. Il campo resource_name di qualsiasi Attributed Resources con almeno un campo nella clausola SELECT verrà restituito automaticamente, anche se non è incluso esplicitamente nella query.
Analogamente alla selezione dei campi Attributed Resource, puoi selezionare anche i campi Segmenting Resource. Se una determinata risorsa ha un Segmenting Resources
elenco nella pagina dei metadati, la selezione dei campi di una delle risorse elencate
compoterà un'ulteriore segmentazione della query in base al
resource_name restituito di quella Segmenting Resource. Ad esempio, vedrai che
la campaign risorsa è elencata come Segmenting
Resource per la risorsa campaign_budget.
La selezione di qualsiasi campo della campagna, ad esempio
campaign.name, dalla risorsa campaign_budget
non solo comporta la restituzione del campo campaign.name, ma anche del campo
campaign.resource_namee la relativa segmentazione.
Selezionabilità tra segmenti e metriche
Un determinato campo segmento potrebbe non essere compatibile con alcuni degli altri campi segmento o con alcuni dei campi metrici. Per identificare i campi segmento compatibili tra loro, esamina l'elenco selectable_with dei segmenti nella clausola SELECT.
Nel caso della risorsa ad_group, sono disponibili più di 50
segmenti che puoi selezionare. Tuttavia, l'elenco selectable_with per
segments.hotel_check_in_date
è un insieme molto più piccolo di segmenti compatibili. Ciò significa che se aggiungi il campo segments.hotel_check_in_date alla clausola SELECT, limiterai i segmenti disponibili che puoi selezionare all'intersezione di questi due elenchi.
Vincoli dei segmenti congiunti
Alcuni campi segmento hanno vincoli di selezione espliciti che richiedono che vengano richiesti insieme ad altri campi. Ad esempio, segments.ad_sub_format_type (che suddivide gli annunci in-stream non ignorabili di YouTube in base alla durata) deve essere sempre selezionato nella stessa query insieme a segments.ad_format_type.
Filtro implicito in base alla selezione del segmento
Quando selezioni determinati campi segmento nella query, l'API Google Ads potrebbe filtrare implicitamente i risultati in modo da includere solo le righe in cui il segmento è applicabile e ha un valore.
Impatto di segments.keyword.*
Un esempio comune e importante di questo comportamento si verifica quando si seleziona un campo
in segments.keyword (ad esempio segments.keyword.info.text e
segments.keyword.ad_group_criterion).
- Esclusione del traffico non basato su parole chiave: se includi un campo
segments.keyword.*nella clausolaSELECT, i risultati vengono limitati alle righe associate direttamente a un criterio del gruppo di annunci con parole chiave della rete di ricerca. Tipi di campagna interessati: di conseguenza, i dati dei tipi di campagna o dei gruppi di annunci che non si basano su parole chiave per la rete di ricerca vengono esclusi dai risultati. incluso, ma non solo, quanto segue:
- Annunci dinamici della rete di ricerca (DSA): perché i target DSA si basano sui contenuti del sito web anziché sulle parole chiave.
- Campagne Shopping: che utilizzano gruppi di prodotti anziché parole chiave.
- Campagne Performance Max: anche se Performance Max può essere pubblicato sulla rete di ricerca, i relativi report non sono in genere segmentati in base agli stessi criteri delle parole chiave.
Rete Display: i campi
segments.keyword.*si riferiscono alle parole chiave utilizzate nella rete di ricerca. Non vengono segmentati in base alle parole chiave della Rete Display o ad altri metodi di targeting display.
Best practice: se la tua analisi deve includere i dati sul rendimento di DSA, Shopping o altre origini non basate su parole chiave per la rete di ricerca, non includere i campi di segments.keyword.* nella query. Analizza prima i dati di tutti i tipi di campagna e applica la segmentazione per parole chiave solo quando ti concentri sul rendimento delle parole chiave per la rete di ricerca.
Regole per i segmenti nella clausola WHERE
Quando un segmento è nella clausola WHERE, deve essere anche nella clausola SELECT.
Fanno eccezione a questa regola i seguenti segmenti di date, denominati
segmenti di date principali:
segments.datesegments.weeksegments.monthsegments.quartersegments.year
Regole per i campi segmento di date principali
I segmenti segments.date, segments.week, segments.month, segments.quarter e segments.year funzionano nel seguente modo:
Questi segmenti possono essere filtrati nella clausola
WHEREsenza essere visualizzati nella clausolaSELECT.Se uno di questi segmenti è nella clausola
SELECT, nella clausolaWHEREdeve essere specificato un intervallo di date finito composto da segmenti di date principali. Non è necessario che i segmenti di date siano gli stessi specificati inSELECT.
Esempi
Non valido: poiché segments.date è
nella clausola SELECT, devi specificare un intervallo di date finito nella clausola WHERE per segments.date,
segments.week, segments.month,
segments.quarter o segments.year.
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
Valido: questa query restituisce i nomi delle campagne e
i clic accumulati durante l'intervallo di date. Tieni presente che segments.date non deve essere visualizzato nella clausola SELECT.
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Valido: questa query restituisce i nomi delle campagne e i clic segmentati per data per tutti i giorni dell'intervallo di date. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Valido: questa query restituisce i nomi delle campagne e i clic segmentati per mese per tutti i giorni dell'intervallo di date. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Valido: questa query restituisce i nomi delle campagne e i clic segmentati per trimestre e poi per mese per tutti i mesi dell'intervallo di anni. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2019 AND segments.year < 2024 |
search_term_view
La risorsa search_term_view viene segmentata implicitamente anche per gruppo di annunci, non solo per termine di ricerca, come indicato dalla struttura del suo nome della risorsa, che include anche il gruppo di annunci. Di conseguenza, nei risultati verranno visualizzate alcune righe apparentemente duplicate con gli stessi termini di ricerca, ma queste righe appartengono a un gruppo di annunci diverso.
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2024-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2024-06-15"
}
}
]
}
Sebbene i due oggetti restituiti in questo esempio sembrino duplicati, i relativi nomi delle risorse sono in realtà diversi, in particolare nella parte "gruppo di annunci". Ciò significa che il termine di ricerca "google photos" è attribuito ai due gruppi di annunci (ID 2222222222 e 33333333333) nella stessa data (2024-06-15). Pertanto, possiamo concludere che l'API ha funzionato come previsto e in questo caso non ha restituito oggetti duplicati.