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 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 possono essere restituiti 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
verrà
restituito automaticamente e le metriche verranno segmentate implicitamente in base a questa risorsa a livello di
gruppo di annunci.
Quindi, per questa query,
SELECT metrics.impressions
FROM ad_group
otterresti 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
.
Campi dei segmenti selezionabili
Non tutti i campi del segmento sono selezionabili per una determinata risorsa nella clausola FROM
.
Ad esempio, supponiamo che tu continui 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
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 quando il
campo resource_name non è incluso esplicitamente nella query.
Come per la 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, se selezioni i campi di una delle risorse elencate, la query verrà ulteriormente segmentata 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 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 ti rimangono da selezionare all'intersezione di questi due
elenchi.
Quando aggiungi determinati segmenti, le metriche nella riga di riepilogo potrebbero diminuire. Quando
segments.keyword.info.match_type
viene aggiunto a una query con FROM ad_group_ad
,
il segmento indica alla query di recuperare solo le righe di dati che contengono
parole chiave e di rimuovere qualsiasi riga non associata a una parola chiave. In questo caso, le metriche saranno inferiori perché escludono tutte le metriche non correlate alle parole chiave.
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, che sono
definiti segmenti di date principali:
segments.date
segments.week
segments.month
segments.quarter
segments.year
Regole per i campi del segmento di date principale
I segmenti segments.date
, segments.week
, segments.month
,
segments.quarter
e segments.year
funzionano nel seguente modo:
Questi segmenti possono essere filtrati nella clausola
WHERE
senza essere visualizzati nella clausolaSELECT
.Se uno di questi segmenti si trova nella clausola
SELECT
, nella clausolaWHERE
deve essere specificato un intervallo di date finito composto da segmenti di date principali. I segmenti di date non devono essere 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. 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-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
è anche
segmentata implicitamente per gruppo di annunci, non solo per termine di ricerca, come indicato dalla
struttura del
nome risorsa,
che include anche il gruppo di annunci. Pertanto, 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 loro nomi risorsa sono in realtà diversi, in particolare nella parte "gruppo di annunci". Ciò significa che il termine di ricerca "google foto" viene attribuito ai due
gruppi di annunci (ID 2222222222
e 33333333333
) nella stessa data (15/06/2024).
Pertanto, possiamo concludere che l'API ha funzionato come previsto e non ha restituito
oggetti duplicati in questo caso.