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 di aggiungere segments.device a una query. Il risultato è un report con una riga per ogni combinazione di dispositivo e risorsa specificata nella clausola FROM e i valori statistici (impressioni, clic, conversioni e così via) suddivisi tra loro.
Nell'interfaccia utente 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 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"
}
}
]
}
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 è 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 quando il campo resource_name non è incluso esplicitamente nella query. Ad esempio, quando specifichi
ad_group come risorsa nella clausola FROM, allora
ad_group.resource_name viene
restituito automaticamente e le metriche vengono segmentate implicitamente in base a questa risorsa a livello di
ad_group.
Quindi, per questa query:
SELECT metrics.impressions
FROM ad_group
Ricevi una stringa JSON come questa:
{
"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.
search_term_view
La risorsa search_term_view è anche segmentata implicitamente
per gruppo di annunci, non solo per termine di ricerca, come indicato dalla struttura del
nome della risorsa, che include anche il gruppo di annunci.
Pertanto, potresti ricevere righe apparentemente duplicate con gli stessi termini di ricerca
visualizzati nei risultati quando queste righe appartengono a gruppi di annunci diversi:
{
"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 loro
nomi delle risorse sono in realtà diversi, in particolare nella parte dell'ID gruppo di annunci.
Ciò significa che il termine di ricerca "google photos" viene attribuito a due gruppi di annunci
(ID 2222222222 e 33333333333) nella stessa data (2024-06-15). Pertanto, l'API ha funzionato come previsto e non ha restituito oggetti duplicati in questo caso.
Campi dei segmenti selezionabili
Non tutti i campi segmento sono selezionabili per una determinata risorsa nella clausola FROM.
Ad esempio, supponiamo di continuare a eseguire query dalla risorsa
ad_group. 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 del segmento
Quando selezioni alcune risorse, potresti avere la possibilità di eseguire un join implicito
sulle risorse correlate selezionando i relativi campi insieme a quelli della
risorsa nella clausola FROM. Queste risorse correlate sono disponibili nell'elenco
Attributed Resources della risorsa nella pagina dei metadati della 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 viene restituito automaticamente, anche quando il
campo resource_name 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 elenco Segmenting Resources nella pagina dei metadati, la selezione dei campi di una delle risorse elencate comporta un'ulteriore segmentazione della query in base al resource_name restituito di Segmenting Resource. Ad esempio, vedrai che la risorsa campaign è elencata come Segmenting
Resource per la risorsa campaign_budget.
Se selezioni un campo della campagna, ad esempio
campaign.name, dalla risorsa campaign_budget
non solo viene restituito il campo campaign.name, ma anche
il campo campaign.resource_name
viene restituito e segmentato.
Selezionabilità tra segmenti e metriche
Un determinato campo di segmento potrebbe non essere compatibile con alcuni degli altri campi di segmento o con alcuni dei campi delle metriche. Per identificare i campi dei segmenti compatibili tra loro, esamina l'elenco dei segmenti selectable_with 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, limiti i segmenti disponibili che ti rimangono
da selezionare all'intersezione di questi due elenchi.
Vincoli dei segmenti congiunti
Alcuni campi di segmento hanno vincoli di selezione espliciti che richiedono di essere
richiesti insieme a un segmento principale nella clausola SELECT:
- Se selezioni
segments.ad_sub_network_type(che suddivide le sottoreti pubblicitarie di YouTube come In-stream, annuncio in-feed e Shorts), devi selezionare anchesegments.ad_network_type. - Nella versione 25 e successive, la selezione di
segments.ad_sub_format_type(che suddivide gli annunci in-stream non ignorabili di YouTube in base alla durata) richiede anche la selezione disegments.ad_format_type.
Filtro implicito in base alla selezione del segmento
Quando selezioni determinati campi di 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 correlato alle parole chiave:se includi un campo
segments.keyword.*nella clausolaSELECT, i risultati vengono limitati solo alle righe direttamente associate a un criterio del gruppo di annunci di parole chiave della rete di ricerca. - Tipi di campagne interessati:di conseguenza, i dati dei tipi di campagne o dei gruppi di annunci che non si basano sulle parole chiave della rete di ricerca vengono esclusi dai risultati.
Ciò include, a titolo esemplificativo:
- 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:sebbene le campagne Performance Max possano essere pubblicate sulla rete di ricerca, i 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 sulla rete di ricerca. Non vengono segmentati in base alle parole chiave della Rete Display o ad altri metodi di targeting display.
Regole per i segmenti nella clausola WHERE
Quando un segmento si trova nella clausola WHERE, deve trovarsi anche nella clausola SELECT.
L'eccezione a questa regola sono i seguenti segmenti di date, denominati
segmenti di date principali:
segments.datesegments.weeksegments.monthsegments.quartersegments.year
Regole per i campi dei segmenti 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 si trova 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 si trova nella clausola SELECT, devi specificare un intervallo di date finito nella clausola WHERE per un 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 inclusivo. Tieni presente che
segments.date non deve essere presente nella clausola
SELECT.
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| Valido:questa query restituisce i nomi delle campagne e i clic segmentati per data per tutti i giorni dell'intervallo di date inclusivo. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| Valido:questa query restituisce i nomi delle campagne e i clic segmentati per mese per tutti i giorni dell'intervallo di date inclusivo. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| Valido:questa query restituisce i nomi delle campagne e i clic segmentati per trimestre e poi per mese per tutti i mesi nell'intervallo di anni inclusivo. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year >= 2020 AND segments.year <= 2024 |