Segmentazione

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 con FROM 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 clausola SELECT.

  • 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 clausola WHERE (i segmenti di date non devono essere gli stessi specificati nel SELECT).

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.