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.
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 Google Ads a ciò che vedi nell'interfaccia utente di Google Ads, consulta Mappatura dei report all'interfaccia utente di Google Ads.
Opzione di segnalazione | Assistenza |
---|---|
Versione API supportata | |
Frequenza di ripetizione | Ogni giorno, nel momento in cui viene creato il trasferimento di dati per la prima volta (impostazione predefinita). 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 di caricamento 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, vengono caricati in 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 backfill in esecuzione non generano dati duplicati e le partizioni per altre date non sono interessate.Aggiorna finestre
Una finestra di aggiornamento indica il numero di giorni in cui un trasferimento di dati recupera i dati. quando avviene un trasferimento di dati. Ad esempio, se la finestra di aggiornamento è di tre giorni e un trasferimento giornaliero, BigQuery Data Transfer Service recupera tutti i dati da nella tabella di origine degli ultimi tre giorni. In questo Ad 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 dal giorno corrente, poi attiva automaticamente le esecuzioni di backfill per aggiornare La tabella di destinazione BigQuery esegue le partizioni con i dati della tabella di origine dal 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 i 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 API TransferConfig.data_refresh_window_days
.
Per recuperare dati al di fuori della finestra di aggiornamento, ad esempio dati storici, o per i dati da eventuali interruzioni o lacune dei trasferimenti, puoi avviare o pianificare 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, segui questi 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 avere l'autorizzazione
pubsub.topics.setIamPolicy
. Le autorizzazioni Pub/Sub non sono necessarie se configuri l'email notifiche. Per ulteriori informazioni, vedi 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 disporre 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 di 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, per 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 necessario per modificarlo in un secondo momento.Nella sezione Opzioni di pianificazione:
In Frequenza di ripetizione, scegli un'opzione per la frequenza di esecuzione del trasferimento di dati. Se selezioni Giorni, fornisci un orario valido nel formato 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 destinazione, per Set di dati, seleziona il set di dati che hai creato per archiviare i tuoi dati.
Nella sezione Dettagli 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 in Google Ads.
(Facoltativo) Inserisci un elenco di tabelle da includere separate da virgole, ad esempio
Campaign, AdGroup
. Aggiungi a questo elenco il prefisso-
per escluderne alcune come-Campaign, AdGroup
. Tutte le tabelle sono incluse da predefinito.(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 dagli account di servizio associati progetto Google Cloud. Puoi associare un account di servizio al trasferimento dei dati anziché utilizzare le credenziali utente. Per maggiori informazioni informazioni sull'uso di account di servizio con i trasferimenti di dati, vedi 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 service account 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 trasferimento non va a buon fine.
Fai clic sul pulsante di attivazione/disattivazione per abilitare 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 fornisci il flag di creazione del trasferimento:
--transfer_config
. Sono necessari 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 è 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. La Transfer name può essere qualsiasi valore che ti consenta di identificare se devi modificarlo in un secondo momento.
- PARAMETERS contiene i parametri per il trasferimento creato
configurazione in formato JSON. Ad esempio:
--params='{"param":"param_value"}'
. Per Google Ads, devi fornire il parametrocustomer_id
. Tu può impostare facoltativamente il parametroexclude_removed_items
sutrue
in impedire il trasferimento di entità e metriche rimosse o disattivate. - DATA_SOURCE è l'origine dati -
google_ads
. - TABLES è l'elenco separato da virgole di tabelle da includere o escludere dal trasferimento dei dati.
- SCHEDULE indica la frequenza di esecuzione della query. Se non viene specificato
--schedule
, il valore predefinito è ogni 24 ore, a partire dal momento in cui viene creato il 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
di 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 Google Ads denominato
My Transfer
con 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 la projects.locations.transferConfigs.create
e fornisce un'istanza del metodo TransferConfig
risorsa.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Attivare manualmente un trasferimento da Google Ads
Quando attivi manualmente un trasferimento Per Google Ads, le istantanee delle tabelle delle corrispondenze vengono acquisite una volta al giorno e archiviato nella partizione per l'ultima data di esecuzione. Quando attivi un trasferimento manuale, gli snapshot della tabella delle corrispondenze per le seguenti tabelle non vengono aggiornati:
- Annuncio
- Gruppo di annunci
- 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 di Performance Max
Il connettore Google Ads ti consente di esportare PMax campagne. Devi seleziona la casella di controllo Includi tabelle delle campagne PMax quando creazione di un trasferimento di dati, poiché i dati PMax non vengono esportati per impostazione predefinita.
L'inclusione dei dati di Performance Max rimuove i dati
ad_group
campi da alcune tabelle e include nuove tabelle. Non puoi includere
ad_group
campi perché l'API Google Ads filtra i dati PMax.
Le seguenti tabelle escludono ad_group
colonne correlate quando Includi PMax
La casella di controllo Tabelle delle campagne è selezionata:
- 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 ID cliente individuali:
- 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 sono archiviati nella stessa tabella.
- L'utilizzo dei Centri clienti riduce i problemi di quota di carico di BigQuery Data Transfer Service perché nello stesso job vengono caricati più ID cliente.
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 un determinato account Google Ads account amministratore:
- 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
Ciascun ID cliente collegato a un account amministratore compare 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.
Configurazione di trasferimento per l'ID cliente 1234567890
Una configurazione di trasferimento per l'account amministratore principale (ID cliente 1234567890) genererebbe esecuzioni di Data Transfer 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 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) genera esecuzioni di Data Transfer 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
Configurazione di trasferimento 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 genererebbe esecuzioni di trasferimenti di dati che includi solo l'ID cliente individuale:
- 0000
Eseguire la migrazione dei dati Google Ads al Centro 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 non vengono aggiornate.
Risolvere i problemi di configurazione del trasferimento di Google Ads
Se riscontri problemi durante la configurazione del trasferimento di dati, vedi Problemi di trasferimento google ads in Risoluzione dei problemi relativi alle configurazioni di trasferimento.
Eseguire 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 una query direttamente sulle tabelle anziché utilizzare le viste generate automaticamente,
deve utilizzare la pseudocolonna _PARTITIONTIME
nella query. Per ulteriori informazioni, consulta la pagina 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 utilizzare le query anche in uno strumento di visualizzazione come Looker Studio Queste query vengono fornite per aiutarti a iniziare a inviare query sui tuoi annunci Google Ads con BigQuery Data Transfer Service. Per ulteriori domande sulle utenti 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 nel passato 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'
Numero di parole chiave
La seguente query di esempio analizza le parole chiave per campagna, gruppo di annunci e stato. Questa query utilizza la funzione KeywordMatchType
. Tipi di corrispondenza delle parole chiave
controllare le ricerche che attivano la pubblicazione del tuo 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'