La segmentazione, disponibile nell'interfaccia utente di Google Ads come menu distinto, può essere
implementato nell'API Google Ads semplicemente aggiungendo il campo appropriato a una query. Per
esempio, l'aggiunta di segments.device
a un
query, genera 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 questi valori.
Nell'interfaccia utente di Google Ads è possibile utilizzare un solo segmento alla volta, 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
avrà un aspetto simile 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"
}
},
...
]
}
Tieni presente che nel risultato di esempio riportato sopra, gli attributi del primo e del secondo tra cui il nome della risorsa sono uguali. Le impressioni sono segmentate per device, quindi possono essere restituiti due o più oggetti per la stessa campagna.
Segmentazione implicita
Ogni report viene inizialmente segmentato in base alla risorsa specificata nel campo FROM
una clausola. Il campo resource_name della risorsa nella clausola FROM
è
e le metriche vengono segmentate, anche quando il campo resource_name è
non esplicitamente inclusi nella query. Ad esempio, se specifichi
ad_group
come risorsa nella clausola FROM
, quindi
ad_group.resource_name
lo eseguirà
verrà restituita automaticamente e le metriche verranno segmentate in modo implicito in base a questo
a livello di gruppo di annunci.
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"
}
}
]
}
Tieni presente che il campo resource_name
di adGroup
viene sempre restituito perché
ad_group
è stato specificato come risorsa nella clausola FROM
.
Campi del segmento selezionabili
Non tutti i campi del segmento sono selezionabili per una determinata risorsa nella clausola FROM
.
Come esempio, continueremo a eseguire query dal ad_group
risorsa. Affinché un campo segmento sia selezionabile dalla risorsa ad_group,
questo campo deve essere presente nell'elenco Segments
per ad_group. Segments
è la parte gialla della tabella dei campi disponibili
pagina dei metadati della risorsa ad_group
.
Segmentazione delle risorse
Quando selezioni da alcune risorse, potresti avere la possibilità di unire implicitamente
sulle risorse correlate selezionando i rispettivi campi accanto a quelli del
risorsa nella clausola FROM
. Queste risorse correlate sono disponibili nel
Elenco Attributed Resources
della risorsa nei metadati della clausola FROM
. Nel caso della risorsa ad_group
, vedrai
puoi anche selezionare i campi dal campaign
risorsa. Il campo resource_name di qualsiasi Attributed Resources
con almeno
1 campo della clausola SELECT
verrà restituito automaticamente, anche se
Il campo resource_name non è incluso esplicitamente nella query.
Come per selezionare i campi Attributed Resource
, puoi anche selezionare
Segmenting Resource
campi. Se una determinata risorsa ha un Segmenting Resources
elenco nella relativa pagina dei metadati, quindi selezionando i campi di una delle risorse elencate
la query verrà ulteriormente segmentata in base al valore resource_name restituito
Segmenting Resource
. Ad esempio, scoprirai che il parametro
La risorsa campaign
è elencata come Segmenting Resource
per la risorsa campaign_budget
. La selezione di qualsiasi
campo della campagna, ad esempio campaign.name
, da
la risorsa campaign_budget non solo farà sì che il campo campaign.name venga
ma farà sì che
campaign.resource_name
da impostare
restituiti e segmentati.
Selezionabilità tra segmenti e metriche
Un determinato campo del segmento potrebbe non essere compatibile con alcuni degli altri segmenti
o con alcuni campi delle metriche. Per identificare i campi del segmento
compatibili tra loro, puoi esaminare l'elenco selectable_with
dei segmenti nella clausola SELECT
.
Nel caso
ad_group
, sono disponibili più di 50 segmenti che
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
segments.hotel_check_in_date
nella clausola SELECT
, limiterai
i segmenti disponibili che hai lasciato da selezionare all'intersezione di questi due
elenchi.
- Quando aggiungi alcuni segmenti, le metriche nella riga di riepilogo potrebbero diminuire
- Quando
segments.keyword.info.match_type
viene aggiunto a una query conFROM ad_group_ad
, quel segmento indica alla query di ottenere solo le righe di dati che contengono parole chiave e rimuovere tutte le righe non associate a un parola chiave. In questo caso, le metriche saranno inferiori perché escluderebbero eventuali metriche non relative alle parole chiave.
Regole per i segmenti nella clausola WHERE
Quando un segmento si trova nella clausola WHERE
, deve trovarsi anche nella clausola SELECT
una clausola. Fanno eccezione i seguenti segmenti di data, che sono
noti come segmenti di data principali:
segments.date
segments.week
segments.month
segments.quarter
segments.year
Regole per i campi del 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
WHERE
senza essere visualizzati nella clausolaSELECT
.Se uno qualsiasi di questi segmenti si trova nella clausola
SELECT
, un intervallo di date limitato ed è composto da segmenti di date principali deve essere specificato nella clausolaWHERE
(i segmenti di date non devono essere gli stessi specificati nelSELECT
).
Esempi
Non valido: dato che segments.date è
nella clausola SELECT , devi specificare un intervallo di date limitato in
la 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
clic accumulati durante l'intervallo di date in esame. Tieni presente che segments.date
non deve necessariamente apparire nella clausola SELECT .
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Valido: questa query restituisce i nomi delle campagne e Clic segmentati per data per tutti i giorni compresi nell'intervallo di date. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Valido: questa query restituisce i nomi delle campagne e clic segmentati per mese per tutti i giorni compresi nell'intervallo di date. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Valido: questa query restituisce i nomi delle campagne e 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 > 2015 AND segments.year < 2020 |
search_term_view
Tieni presente che
search_term_view
, è anche
implicitamente per gruppo di annunci, non solo per un termine di ricerca, come indicato dalla
struttura della sua risorsa
nome, che
include anche il gruppo di annunci. Di conseguenza, vengono visualizzati alcuni elementi
righe con gli stessi termini di ricerca visualizzati nei risultati,
le righe apparterranno a un altro gruppo di annunci:
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2015-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2015-06-15"
}
}
]
}
Anche se i due oggetti restituiti in questo esempio sembrano essere duplicati,
i nomi delle risorse sono effettivamente diversi, soprattutto nel gruppo di annunci
. Ciò significa che il termine di ricerca "google foto" è attribuita ai due
gruppi di annunci (ID 2222222222
e 33333333333
) nella stessa data (15/06/2015).
Possiamo quindi concludere che l'API ha funzionato come previsto e non ha restituito
duplicati in questo caso.