Trasferimenti dei rapporti di Google Ads
Il connettore BigQuery Data Transfer Service per Google Ads (in precedenza Google AdWords) consente di pianificare e gestire automaticamente i job di caricamento ricorrenti per i dati dei report di Google Ads. Per informazioni sulle modifiche recenti alle origini dati, consulta il log delle modifiche alle origini dati di BigQuery Data Transfer Service.
Report supportati
BigQuery Data Transfer Service per Google Ads supporta la versione 16 dell'API Google Ads:
Per informazioni su come i report Google Ads vengono trasformati in tabelle e viste di BigQuery Data Transfer Service, consulta Trasformazioni dei report Google Ads.
Per mappare i report di Google Ads a ciò che vedi nell'interfaccia utente di Google Ads, consulta Mappare i report all'interfaccia utente di Google Ads.
Opzione di segnalazione | Assistenza |
---|---|
Versione dell'API supportata | |
Frequenza di ripetizione | Giornalmente, al momento della prima creazione del trasferimento dei dati (valore predefinito) Puoi configurare l'ora del giorno. |
Aggiorna finestra | Ultimi 7 giorni (valore predefinito) Configurabile fino a 30 giorni Gli snapshot delle tabelle delle corrispondenze vengono acquisiti una volta al giorno e archiviati nella partizione relativa alla data dell'ultima esecuzione. Gli snapshot della tabella delle corrispondenze non vengono aggiornati per i backfill o per i giorni caricati utilizzando la finestra di aggiornamento. |
Durata massima del backfill | Nessun limite Sebbene Google Ads non abbia limiti noti per la conservazione dei dati, ad eccezione del report sul rendimento dei clic, BigQuery Data Transfer Service ha limiti per il numero di giorni che possono essere richiesti in un singolo backfill. Per informazioni sui backfill, vedi Attivare manualmente un trasferimento. |
Numero di ID cliente per account amministratore | 8000 BigQuery Data Transfer Service supporta un massimo di 8000 ID cliente per ogni account amministratore (AMC) Google Ads. |
Importazione dei dati dai trasferimenti di Google Ads
Quando trasferisci i dati da Google Ads a BigQuery, questi vengono caricati nelle tabelle BigQuery partizionate per data. La partizione della tabella in cui vengono caricati i dati corrisponde alla data dell'origine dati. Se pianifichi più trasferimenti per la stessa data, BigQuery Data Transfer Service sovrascrive la partizione per quella data specifica con i dati più recenti. Più trasferimenti nello stesso giorno o l'esecuzione di backfill non generano dati duplicati e le partizioni per altre date non sono interessate.Aggiornare le finestre
Una finestra di aggiornamento è il numero di giorni per i quali un trasferimento di dati recupera i dati quando si verifica un trasferimento di dati. Ad esempio, se la finestra di aggiornamento è di tre giorni e si verifica un trasferimento giornaliero, BigQuery Data Transfer Service recupera tutti i dati dalla tabella di origine degli ultimi tre giorni. In questo esempio, quando si verifica un trasferimento giornaliero, BigQuery Data Transfer Service crea una nuova partizione della tabella di destinazione BigQuery con una copia dei dati della tabella di origine del giorno corrente, quindi attiva automaticamente le esecuzioni di backfill per aggiornare le partizioni della tabella di destinazione BigQuery con i dati della tabella di origine degli ultimi due giorni. Le esecuzioni di backfill attivate automaticamente sovrascrivono o aggiornano in modo incrementale la tabella di destinazione BigQuery, a seconda che gli aggiornamenti incrementali siano supportati o meno nel connettore BigQuery Data Transfer Service.
Quando esegui un trasferimento dati per la prima volta, vengono recuperati tutti i dati di origine disponibili all'interno della finestra di aggiornamento. Ad esempio, se la finestra di aggiornamento è di tre giorni ed esegui il trasferimento dei dati per la prima volta, BigQuery Data Transfer Service recupera tutti i dati di origine entro tre giorni.
Le finestre di aggiornamento sono mappate al campo dell'API TransferConfig.data_refresh_window_days
.
Per recuperare i dati al di fuori della finestra di aggiornamento, ad esempio i dati storici, o per recuperare i dati da eventuali interruzioni o lacune del trasferimento, puoi avviare o pianificare una esecuzione di backfill.
Limitazioni
- La frequenza massima con cui puoi configurare un trasferimento di dati di Google Ads è una volta ogni 24 ore. Per impostazione predefinita, un trasferimento inizia al momento della sua creazione. Tuttavia, puoi configurare l'ora di inizio del trasferimento quando crei il trasferimento.
- BigQuery Data Transfer Service non supporta i trasferimenti incrementali dei dati durante un trasferimento di Google Ads. Quando specifichi una data per un trasferimento di dati, vengono trasferiti tutti i dati disponibili per quella data.
Prima di iniziare
Prima di creare un trasferimento di dati di Google Ads, svolgi i seguenti passaggi:
- Verifica di aver completato tutte le azioni necessarie per abilitare BigQuery Data Transfer Service.
- Crea un set di dati BigQuery Data Transfer Service per archiviare i dati di Google Ads.
- Se intendi configurare le notifiche di esecuzione del trasferimento per Pub/Sub, assicurati di disporre dell'autorizzazione
pubsub.topics.setIamPolicy
. Le autorizzazioni Pub/Sub non sono necessarie se configuri le notifiche email. Per saperne di più, consulta Notifiche di esecuzione di BigQuery Data Transfer Service.
Autorizzazioni obbligatorie
Assicurati che la persona che crea il trasferimento dei dati disponga delle seguenti autorizzazioni obbligatorie:
BigQuery Data Transfer Service:
- Autorizzazioni
bigquery.transfers.update
per creare il trasferimento di dati - Entrambe le autorizzazioni
bigquery.datasets.get
ebigquery.datasets.update
sul set di dati di destinazione
Il ruolo IAM predefinito
bigquery.admin
include le autorizzazionibigquery.transfers.update
,bigquery.datasets.update
ebigquery.datasets.get
. Per saperne di più sui ruoli IAM in BigQuery Data Transfer Service, consulta il riferimento al controllo dell'accesso.- Autorizzazioni
Google Ads: accesso in lettura all'ID cliente o all'account amministratore (Centro clienti) Google Ads utilizzato nella configurazione del trasferimento.
Creare il trasferimento dei dati di Google Ads
Per creare un trasferimento di dati per i report Google Ads, devi avere il tuo ID cliente Google Ads o il tuo account amministratore (Centro clienti). Per informazioni su come recuperare il tuo ID cliente Google Ads, consulta Trovare l'ID cliente.
Per creare un trasferimento di dati per i report Google Ads, seleziona una delle seguenti opzioni:
Console
Vai alla pagina Trasferimenti dati nella console Google Cloud.
Fai clic su
Crea trasferimento.Nella sezione Tipo di origine, in Origine, scegli Google Ads.
Nella sezione Nome configurazione di trasferimento, in Nome visualizzato, inserisci un nome per il trasferimento dei dati, ad esempio
My Transfer
. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificare il trasferimento se devi modificarlo in un secondo momento.Nella sezione Opzioni di programmazione:
Per Frequenza di ripetizione, scegli un'opzione per la frequenza con cui eseguire il trasferimento di dati. Se selezioni Giorni, specifica un'ora valida in UTC.
- Ore
- Giorni
- On demand
Se applicabile, seleziona Inizia ora o Inizia all'ora impostata e fornisci una data di inizio e un'ora di esecuzione.
Nella sezione Impostazioni di destinazione, per Set di dati, seleziona il set di dati che hai creato per archiviare i dati.
Nella sezione Dettagli dell'origine dati:
In ID cliente, inserisci il tuo ID cliente Google Ads:
(Facoltativo) Seleziona le opzioni per escludere gli elementi rimossi o disattivati e includere le tabelle nuove di Google Ads.
(Facoltativo) Inserisci un elenco separato da virgole delle tabelle da includere, ad esempio
Campaign, AdGroup
. Anteponi a questo elenco il carattere-
per escludere determinate tabelle, ad esempio-Campaign, AdGroup
. Per impostazione predefinita, sono incluse tutte le tabelle.(Facoltativo) Seleziona l'opzione per includere le tabelle specifiche per i report PMax. Per ulteriori informazioni sull'assistenza PMax, consulta la pagina Assistenza PMax.
(Facoltativo) Per Finestra di aggiornamento, inserisci un valore compreso tra 1 e 30.
Nel menu Account di servizio, seleziona un account di servizio tra quelli associati al tuo progetto Google Cloud. Puoi associare un account di servizio al trasferimento dei dati anziché utilizzare le credenziali utente. Per ulteriori informazioni sull'utilizzo degli account di servizio con i trasferimenti di dati, consulta Utilizzare gli account di servizio.
- Se hai eseguito l'accesso con un'identità federata, è necessario un account di servizio per creare un trasferimento. Se hai eseguito l'accesso con un Account Google, un account di servizio per il trasferimento è facoltativo.
- L'account di servizio deve disporre delle autorizzazioni richieste.
(Facoltativo) Nella sezione Opzioni di notifica:
Fai clic sul pulsante di attivazione/disattivazione per attivare le notifiche via email. Se attivi questa opzione, l'amministratore del trasferimento riceve una notifica via email se un'esecuzione del trasferimento non va a buon fine.
Fai clic sul pulsante di attivazione/disattivazione per attivare le notifiche Pub/Sub. In Seleziona un argomento Cloud Pub/Sub, scegli il nome dell'argomento o fai clic su Crea un argomento. Questa opzione configura le notifiche di esecuzione di Pub/Sub per il trasferimento.
Fai clic su Salva.
bq
Inserisci il comando bq mk
e specifica il flag di creazione del trasferimento:
--transfer_config
. Sono obbligatori anche i seguenti flag:
--data_source
--target_dataset
--display_name
--params
I seguenti flag sono facoltativi:
--project_id
: specifica il progetto da utilizzare. Se il flag non viene specificato, viene utilizzato il progetto predefinito.--table_filter
: specifica le tabelle da includere nel trasferimento dei dati. Se il flag non viene specificato, vengono incluse tutte le tabelle. Per includere solo tabelle specifiche, utilizza un elenco di valori separati da virgole (ad es.Ad
,Campaign
,AdGroup
). Per escludere tabelle specifiche, anteponi ai valori un trattino (-
) (ad es.-Ad
,Campaign
,AdGroup
).--schedule
: specifica la frequenza di esecuzione della query. Se non specifichi--schedule
, il valore predefinito èevery 24 hours
. Per informazioni sulla sintassi della pianificazione, consulta Formattazione della pianificazione.--refresh_window_days
: specifica la finestra di aggiornamento per una configurazione di trasferimento in giorni. Il valore predefinito è7
.--service_account_name
: specifica un account di servizio da utilizzare per l'autenticazione del trasferimento di Google Ads anziché il tuo account utente.
bq mk \ --transfer_config \ --project_id=PROJECT_ID \ --target_dataset=DATASET \ --display_name=NAME \ --params='PARAMETERS' \ --data_source=DATA_SOURCE \ --table_filter=TABLES \ --schedule=SCHEDULE --refresh_window_days=REFRESH_DAYS --service_account_name=SERVICE_ACCOUNT_NAME
Dove:
- PROJECT_ID è l'ID progetto.
- DATASET è il set di dati di destinazione per la configurazione del trasferimento dati.
- NAME è il nome visualizzato della configurazione di trasferimento dei dati. Il nome del trasferimento può essere qualsiasi valore che ti consenta di identificare il trasferimento se devi modificarlo in un secondo momento.
- PARAMETERS contiene i parametri per la configurazione del trasferimento creata in formato JSON. Ad esempio:
--params='{"param":"param_value"}'
. Per Google Ads, devi fornire il parametrocustomer_id
. Se vuoi, puoi impostare il parametroexclude_removed_items
sutrue
per impedire il trasferimento di metriche ed entità rimosse o disattivate. - DATA_SOURCE è l'origine dati -
google_ads
. - TABLES è l'elenco separato da virgole delle tabelle da includere o escludere dal trasferimento dei dati.
- SCHEDULE è la frequenza con cui vuoi che venga eseguita la query. Se non viene specificato
--schedule
, il valore predefinito è ogni 24 ore, a partire dal momento della creazione del trasferimento. - REFRESH_DAYS è un numero intero che specifica la finestra di aggiornamento
per una configurazione di trasferimento in giorni. Il valore predefinito è
7
. - SERVICE_ACCOUNT_NAME è il nome dell'account di servizio utilizzato per autenticare il trasferimento. L'account di servizio deve essere di proprietà dello stesso
project_id
utilizzato per creare il trasferimento e deve disporre di tutte le autorizzazioni richieste.
Ad esempio, il seguente comando crea un trasferimento di dati di Google Ads denominato
My Transfer
utilizzando l'ID cliente 123-123-1234
e il set di dati di destinazione
mydataset
. Il trasferimento dei dati viene creato nel progetto predefinito:
bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"customer_id":"123-123-1234","exclude_removed_items":"true"}' \
--data_source=google_ads
La prima volta che esegui il comando, ricevi un messaggio simile al seguente:
[URL omitted] Please copy and paste the above URL into your web browser and
follow the instructions to retrieve an authentication code.
Segui le istruzioni nel messaggio e incolla il codice di autenticazione nella riga di comando.
API
Utilizza il metodo projects.locations.transferConfigs.create
e fornisci un'istanza della risorsa TransferConfig
.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Attivare manualmente un trasferimento di Google Ads
Quando attivi manualmente un trasferimento per Google Ads, gli snapshot delle tabelle delle corrispondenze vengono acquisiti una volta al giorno e archiviati nella partizione relativa alla data di esecuzione più recente. Quando attivi un trasferimento manuale, gli snapshot delle tabelle Match per le seguenti tabelle non vengono aggiornati:
- Annuncio
- AdGroup
- AdGroupAudience
- AdGroupBidModifier
- AdGroupAdLabel
- AdGroupCriterion
- AdGroupCriterionLabel
- AdGroupLabel
- AgeRange
- Asset
- AssetGroup
- AssetGroupAsset
- AssetGroupListingGroupFilter
- AssetGroupSignal
- Pubblico
- BidGoal
- Budget
- Campagna
- CampaignAudience
- CampaignCriterion
- CampaignLabel
- Cliente
- Genere
- Parola chiave
- LocationBasedCampaignCriterion
- ParentalStatus
- Posizionamento
- Video
Assistenza PMax
Il connettore Google Ads ti consente di esportare i dati delle campagne PMax. Devi selezionare la casella di controllo Includi tabelle delle campagne PMax quando crei un trasferimento di dati, poiché i dati PMax non vengono esportati per impostazione predefinita.
L'inclusione dei dati PMax rimuove i campi ad_group
da determinate tabelle e include nuove tabelle. Non puoi includere
ad_group
campi perché l'API Google Ads filtra i dati PMax.
Le seguenti tabelle escludono le colonne correlate a ad_group
quando è selezionata la casella di controllo Includi tabelle delle campagne PMax:
- GeoStats
- GeoConversionStats
- ShoppingProductConversionStats
- ShoppingProductStats
- LocationsUserLocationsStats
Quando è selezionata la casella di controllo Includi tabelle delle campagne PMax, vengono aggiunte le seguenti tabelle:
- Asset
- AssetGroup
- AssetGroupAsset
- AssetGroupListingGroupFilter
- AssetGroupSignal
- Pubblico
- AssetGroupProductGroupStats
- CampaignAssetStats
Assistenza per gli account amministratore Google Ads
I clienti esistenti che hanno più trasferimenti di Google Ads specifici per ID cliente sono invitati a configurare un singolo trasferimento di Google Ads a livello di account amministratore (Centro clienti), pianificare un backfill e disattivare i singoli trasferimenti di Google Ads specifici per ID cliente.
L'utilizzo degli account amministratore Google Ads offre diversi vantaggi rispetto all'utilizzo di singoli ID cliente:
- Non è più necessario gestire più trasferimenti di dati per generare report su più ID cliente.
- Le query tra clienti sono molto più semplici da scrivere perché tutti gli ID cliente vengono memorizzati nella stessa tabella.
- L'utilizzo dei gruppi di clienti consente di risolvere i problemi relativi alla quota di caricamento di BigQuery Data Transfer Service perché più ID cliente vengono caricati nello stesso job.
Per ulteriori informazioni sugli account amministratore Google Ads (AMC), consulta Utilizzare gli account gestiti e Informazioni sul collegamento degli account all'account amministratore.
Esempio
Il seguente elenco mostra gli ID cliente collegati a determinati account amministratore Google Ads:
- 1234567890 - account amministratore principale
- 1234 - account amministratore secondario
- 1111 - ID cliente
- 2222 - ID cliente
- 3333 - ID cliente
- 4444 - ID cliente
- 567 - account amministratore secondario
- 5555 - ID cliente
- 6666 - ID cliente
- 7777 - ID cliente
- 89 - account amministratore secondario
- 8888 - ID cliente
- 9999 - ID cliente
- 0000 - ID cliente
- 1234 - account amministratore secondario
Ogni ID cliente collegato a un account amministratore viene visualizzato in ogni report. Per ulteriori informazioni sulla struttura dei report Google Ads in BigQuery Data Transfer Service, consulta la sezione Trasformazione dei report Google Ads.
Trasferisci la configurazione per l'ID cliente 1234567890
Una configurazione di trasferimento per l'account amministratore principale (ID cliente 1234567890) genererebbe esecuzioni di trasferimento dei dati che includono i seguenti ID cliente:
- 1111 (tramite l'account amministratore secondario 1234)
- 2222 (tramite l'account amministratore secondario 1234)
- 3333 (tramite l'account amministratore secondario 1234)
- 4444 (tramite l'account amministratore secondario 1234)
- 5555 (tramite l'account amministratore secondario 567 e l'account amministratore secondario 1234)
- 6666 (tramite l'account amministratore secondario 567 e l'account amministratore secondario 1234)
- 7777 (tramite l'account amministratore secondario 567 e l'account amministratore secondario 1234)
- 8888 (tramite l'account amministratore secondario 89)
- 9999 (tramite l'account amministratore secondario 89)
- 0000 (ID cliente individuale)
Trasferisci la configurazione per l'ID cliente 1234
Una configurazione di trasferimento per l'account amministratore secondario 123 (ID cliente 1234) genererebbe esecuzioni di trasferimento dei dati che includono i seguenti ID cliente:
- 1111
- 2222
- 3333
- 4444
- 5555 (tramite l'account amministratore secondario 567)
- 6666 (tramite l'account amministratore secondario 567)
- 7777 (tramite l'account amministratore secondario 567)
Configurazione del trasferimento per l'ID cliente 567
Una configurazione di trasferimento per l'account amministratore secondario 567 (ID cliente 567) genererebbe esecuzioni di trasferimento dei dati che includono i seguenti ID cliente:
- 5555
- 6666
- 7777
Trasferisci la configurazione per l'ID cliente 89
Una configurazione di trasferimento per l'account amministratore secondario 89 (ID cliente 89) genererebbe esecuzioni di trasferimento dei dati che includono i seguenti ID cliente:
- 8888
- 9999
Configurazione del trasferimento per l'ID cliente 0000
Una configurazione di trasferimento per l'ID cliente 0000 genererà esecuzioni di trasferimento di dati che includono solo il singolo ID cliente:
- 0000
Eseguire la migrazione dei dati di Google Ads ai Centri clienti
Per eseguire la migrazione dei dati Google Ads esistenti in BigQuery Data Transfer Service alla struttura del Centro clienti, puoi configurare un backfill per aggiungere i dati esistenti alle tabelle create dalla configurazione del trasferimento collegata all'account amministratore. Tieni presente che quando pianifichi un backfill, le tabelle di corrispondenza non vengono aggiornate.
Risolvere i problemi di configurazione del trasferimento di Google Ads
Se hai problemi a configurare il trasferimento dei dati, consulta Problemi di trasferimento di Google Ads nella sezione Risoluzione dei problemi relativi alle configurazioni di trasferimento.
Esegui query sui dati
Quando vengono trasferiti a BigQuery Data Transfer Service, i tuoi dati vengono scritti in tabelle partizionate per data di importazione. Per ulteriori informazioni, consulta Introduzione alle tabelle partizionate.
Se esegui query direttamente sulle tabelle anziché utilizzare le viste generate automaticamente, devi utilizzare la pseudocolonna _PARTITIONTIME
nella query. Per ulteriori informazioni, consulta Esecuzione di query sulle tabelle partizionate.
Query di esempio di Google Ads
Puoi utilizzare le seguenti query di esempio di Google Ads per analizzare i dati trasferiti. Puoi anche utilizzare le query in uno strumento di visualizzazione come Looker Studio. Queste query vengono fornite per aiutarti a iniziare a eseguire query sui dati di Google Ads con BigQuery Data Transfer Service. Per ulteriori domande su cosa puoi fare con questi report, contatta il tuo rappresentante tecnico Google Ads.
In ciascuna delle seguenti query, sostituisci dataset con il nome del set di dati. Sostituisci customer_id con il tuo ID cliente Google Ads.
Se esegui query direttamente sulle tabelle anziché utilizzare le visualizzazioni generate automaticamente, devi utilizzare la pseudocolonna _PARTITIONTIME
nella query. Per ulteriori informazioni, consulta la pagina Esecuzione di query sulle tabelle partizionate.
Rendimento delle campagne
La seguente query di esempio analizza il rendimento delle campagne Google Ads negli ultimi 30 giorni.
Console
SELECT c.customer_id, c.campaign_name, c.campaign_status, SUM(cs.metrics_impressions) AS Impressions, SUM(cs.metrics_interactions) AS Interactions, (SUM(cs.metrics_cost_micros) / 1000000) AS Cost FROM `DATASET.ads_Campaign_CUSTOMER_ID` c LEFT JOIN `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs ON (c.campaign_id = cs.campaign_id AND cs._DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)) WHERE c._DATA_DATE = c._LATEST_DATE GROUP BY 1, 2, 3 ORDER BY Impressions DESC
bq
bq query --use_legacy_sql=false ' SELECT c.customer_id, c.campaign_name, c.campaign_status, SUM(cs.metrics_impressions) AS Impressions, SUM(cs.metrics_interactions) AS Interactions, (SUM(cs.metrics_cost_micros) / 1000000) AS Cost FROM `DATASET.ads_Campaign_CUSTOMER_ID` c LEFT JOIN `DATASET.ads_CampaignBasicStats_CUSTOMER_ID` cs ON (c.campaign_id = cs.campaign_id AND cs._DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)) WHERE c._DATA_DATE = c._LATEST_DATE GROUP BY 1, 2, 3 ORDER BY Impressions DESC'
Conteggio delle parole chiave
La seguente query di esempio analizza le parole chiave per campagna, gruppo di annunci e stato. Questa query utilizza la funzione KeywordMatchType
. I tipi di corrispondenza delle parole chiave consentono di controllare le ricerche che attivano la pubblicazione dell'annuncio. Per saperne di più sulle opzioni di corrispondenza delle parole chiave, consulta Informazioni sulle opzioni di corrispondenza delle parole chiave.
Console
SELECT c.campaign_status AS CampaignStatus, a.ad_group_status AS AdGroupStatus, k.ad_group_criterion_status AS KeywordStatus, k.ad_group_criterion_keyword_match_type AS KeywordMatchType, COUNT(*) AS count FROM `DATASET.ads_Keyword_CUSTOMER_ID` k JOIN `DATASET.ads_Campaign_CUSTOMER_ID` c ON (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE) JOIN `DATASET.ads_AdGroup_CUSTOMER_ID` a ON (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE) WHERE k._DATA_DATE = k._LATEST_DATE GROUP BY 1, 2, 3, 4
bq
bq query --use_legacy_sql=false ' SELECT c.campaign_status AS CampaignStatus, a.ad_group_status AS AdGroupStatus, k.ad_group_criterion_status AS KeywordStatus, k.ad_group_criterion_keyword_match_type AS KeywordMatchType, COUNT(*) AS count FROM `DATASET.ads_Keyword_CUSTOMER_ID` k JOIN `DATASET.ads_Campaign_CUSTOMER_ID` c ON (k.campaign_id = c.campaign_id AND k._DATA_DATE = c._DATA_DATE) JOIN `DATASET.ads_AdGroup_CUSTOMER_ID` a ON (k.ad_group_id = a.ad_group_id AND k._DATA_DATE = a._DATA_DATE) WHERE k._DATA_DATE = k._LATEST_DATE GROUP BY 1, 2, 3, 4'