Transferencias de Google Ads
El Servicio de transferencia de datos de BigQuery para el conector de Google Ads (antes conocido como Google AdWords) te permite programar y administrar de forma automática los trabajos de carga recurrentes para los datos de informes de Google Ads.
Informes compatibles
El Servicio de transferencia de datos de BigQuery para Google Ads es compatible con la API de Google Ads v16:
Para obtener información sobre cómo los informes de Google Ads se transforman en vistas y tablas del Servicio de transferencia de datos de BigQuery, consulta Transformaciones de informes de Google Ads.
Para asignar los informes de Google Ads hacia lo que ves en la IU de Google Ads, consulta la página acerca de cómo asignar informes a la IU de Google Ads.
Opción de informe | Asistencia |
---|---|
Versión de la API compatible | |
Frecuencia de repetición | Diariamente, en el momento en que se crea por primera vez la transferencia de datos (predeterminado) Puedes configurar la hora del día. |
Período de actualización | Últimos 7 días (predeterminado) Configurable hasta por 30 días Se toman instantáneas de las tablas de coincidencias una vez al día y se almacenan en la partición de la última fecha de ejecución. Las instantáneas de la tabla de coincidencias no se actualizan para los reabastecimientos o para los días cargados a través del período de actualización. |
Duración máxima del reabastecimiento | Sin límite Si bien Google Ads no tiene límites conocidos de retención de datos, excepto el Informe de rendimiento de clics, el Servicio de transferencia de datos de BigQuery tiene límites sobre cuántos días se pueden solicitar en un solo reabastecimiento. Para obtener más información sobre los reabastecimientos, consulta Cómo activar una transferencia de forma manual. |
Número de ID de clientes por cuenta de administrador | 8,000 El Servicio de transferencia de datos de BigQuery admite un máximo de 8,000 IDs de clientes para cada cuenta de administrador (MCC) de Google Ads. |
Transferencia de datos desde transferencias de Google Ads
Cuando transfieres datos de Google Ads a BigQuery, estos se cargan en tablas de BigQuery particionadas por fecha. La partición de la tabla en la que se cargan los datos corresponde a la fecha de la fuente de datos. Si programas varias transferencias para la misma fecha, el Servicio de transferencia de datos de BigQuery reemplaza la partición para esa fecha específica con los datos más recientes. Las transferencias múltiples en el mismo día o los reabastecimientos en ejecución no generan datos duplicados y las particiones para otras fechas no se ven afectadas.Períodos de actualización
El período de actualización se refiere a la cantidad de días durante los cuales una transferencia de datos recupera datos cuando se produce la transferencia. Por ejemplo, si el período de actualización es de tres días y se produce una transferencia diaria, el Servicio de transferencia de datos de BigQuery recuperará todos los datos de tu tabla de origen de los últimos tres días. En este ejemplo, cuando se produce una transferencia diaria, el Servicio de transferencia de datos de BigQuery crea una nueva partición de tabla de destino de BigQuery con una copia de los datos de la tabla de origen del día actual y, luego, activa automáticamente las ejecuciones de reabastecimiento para actualizar las particiones de la tabla de destino de BigQuery con los datos de la tabla de origen de los últimos dos días. Las ejecuciones de reabastecimiento activadas automáticamente reemplazarán o actualizarán de forma incremental tu tabla de destino de BigQuery, en base a si las actualizaciones incrementales son compatibles o no con el conector del Servicio de transferencia de datos de BigQuery.
Cuando ejecutas una transferencia de datos por primera vez, la transferencia de datos recupera todos los datos de origen disponibles dentro del período de actualización. Por ejemplo, si el período de actualización es de tres días y ejecutas la transferencia de datos por primera vez, el Servicio de transferencia de datos de BigQuery recupera todos los datos de origen en un plazo de tres días.
Las ventanas de actualización se asignan al campo de API TransferConfig.data_refresh_window_days
.
Para recuperar datos fuera del período de actualización, como datos históricos, o para recuperar datos de interrupciones o brechas de transferencia, puedes iniciar o programar una ejecución de reabastecimiento.
Limitaciones
- La frecuencia máxima para la que puedes configurar una transferencia de datos de Google Ads es una vez cada 24 horas. De forma predeterminada, una transferencia comienza en el momento en que creas la transferencia. Sin embargo, puedes configurar la hora de inicio cuando creas la transferencia.
- El Servicio de transferencia de datos de BigQuery no admite transferencias incrementales durante una transferencia de Google Ads. Cuando especificas una fecha para una transferencia de datos, se transfieren todos los datos disponibles para esa fecha.
Antes de comenzar
Antes de crear una transferencia de datos de Google Ads, haz lo siguiente:
- Verifica si completaste todas las acciones necesarias para habilitar el Servicio de transferencia de datos de BigQuery
- Crea un conjunto de datos del Servicio de transferencia de datos de BigQuery para almacenar los datos de Google Ads.
- Si quieres configurar las notificaciones de ejecución de transferencias para Pub/Sub, asegúrate de tener el permiso
pubsub.topics.setIamPolicy
. Los permisos de Pub/Sub no son necesarios si configuras las notificaciones por correo electrónico. Para obtener más información, consulta la sección sobre notificaciones de ejecución del Servicio de transferencia de datos de BigQuery.
Permisos necesarios
Asegúrate de que la persona que crea la transferencia de datos tenga los siguientes permisos requeridos:
Servicio de transferencia de datos de BigQuery:
- Los permisos
bigquery.transfers.update
para crear la transferencia de datos - Los permisos
bigquery.datasets.get
ybigquery.datasets.update
en el conjunto de datos de destino
La función predefinida de IAM
bigquery.admin
incluye los permisosbigquery.transfers.update
,bigquery.datasets.update
ybigquery.datasets.get
. Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Referencia del control de acceso.- Los permisos
Google Ads: acceso de lectura a la cuenta de administrador (MCC) o al ID de cliente de Google Ads usados en la configuración de la transferencia.
Crea una transferencia de datos de Google Ads
Para crear una transferencia de datos para los informes de Google Ads, necesita tu ID de cliente de Google Ads o tu cuenta de administrador (MCC). Para obtener información sobre cómo recuperar tu ID de cliente de Google Ads, consulta la página Encuentra tu ID de cliente.
Para crear una transferencia de datos para los informes de Google Ads, selecciona una de las siguientes opciones:
Console
Ve a la página Transferencia de datos en la consola de Google Cloud.
Haz clic en
Crear transferencia.En la sección Tipo de fuente (Source type), en Fuente (Source), elige Google Ads.
En la sección Nombre de la configuración de transferencia (Transfer config name), en Nombre visible, ingresa el nombre de la transferencia de datos, como
My Transfer
. El nombre de la transferencia puede ser cualquier valor que te permita identificarla si es necesario hacerle modificaciones más tarde.En la sección Opciones de programación, haz lo siguiente:
En Frecuencia de repetición, elige una opción para la frecuencia con la que se ejecutará la transferencia de datos. Si seleccionas Días, proporciona una hora válida en UTC.
- Horas
- Días
- A pedido
Si corresponde, selecciona Comenzar ahora o Comenzar a una hora determinada y proporciona una fecha de inicio y una hora de ejecución.
En la sección Configuración de destino, en Conjunto de datos, selecciona el conjunto de datos que creaste para almacenar tus datos.
En la sección Detalles de fuente de datos (Data source details):
En ID de cliente, ingresa tu ID de cliente de Google Ads:
Opcional: Selecciona opciones para excluir los elementos quitados o desactivados y, también, incluir tablas nuevas en Google Ads.
Ingresa una lista separada por comas de tablas para incluir, por ejemplo,
Campaign, AdGroup
(opcional). Agrega el prefijo-
a esta lista para excluir ciertas tablas, por ejemplo-Campaign, AdGroup
. Todas las tablas se incluyen de forma predeterminada.Opcional: Selecciona la opción de incluir tablas específicas para los informes de campaña de máximo rendimiento. Para obtener más información sobre la compatibilidad con las campañas de máximo rendimiento, consulta Asistencia para las campañas de máximo rendimiento.
Opcional: En Período de actualización, ingresa un valor entre 1 y 30.
En el menú Cuenta de servicio, selecciona una cuenta de servicio de las cuentas de servicio asociadas a tu proyecto de Google Cloud. Puedes asociar una cuenta de servicio con tu transferencia de datos en lugar de usar tus credenciales de usuario. Para obtener más información sobre el uso de cuentas de servicio con transferencias de datos, consulta Usa cuentas de servicio.
- Si accediste con una identidad federada, se requiere una cuenta de servicio para crear una transferencia. Si accediste con una Cuenta de Google, la cuenta de servicio para la transferencia es opcional.
- La cuenta de servicio debe tener los permisos necesarios.
Opcional: En la sección Opciones de notificación:
Haz clic en el botón de activación para habilitar las notificaciones por correo electrónico. Si habilitas esta opción, el administrador de transferencias recibirá una notificación por correo electrónico cuando falle la ejecución de una transferencia.
Haz clic en el botón de activación para habilitar las notificaciones de Pub/Sub. Para Selecciona un tema de Cloud Pub/Sub, elige el nombre de tu tema o haz clic en Crear un tema. Con esta opción, se configuran las notificaciones de ejecución de Pub/Sub para tu transferencia.
Haz clic en Guardar.
bq
Ingresa el comando bq mk
y suministra la marca de creación de transferencias --transfer_config
. También se requieren las siguientes marcas:
--data_source
--target_dataset
--display_name
--params
Las siguientes marcas son opcionales:
--project_id
: Especifica qué proyecto usar. Si no se especifica la marca, se usa el proyecto predeterminado.--table_filter
: Especifica qué tablas se deben incluir en la transferencia de datos. Si no se especifica la marca, se incluyen todas las tablas. Para incluir solo tablas específicas, usa una lista de valores separados por comas (por ejemplo,Ad
,Campaign
,AdGroup
). Para excluir tablas específicas, agrega un prefijo en los valores con un guion (-
) (por ejemplo,-Ad
,Campaign
,AdGroup
).--schedule
: Especifica la frecuencia con la que se ejecuta la consulta. Si no especificas--schedule
, el valor predeterminado esevery 24 hours
. Para obtener información sobre la sintaxis del programa, consulta Da formato al programa.--refresh_window_days
: Especifica el período de actualización en días para una configuración de transferencia. El valor predeterminado es7
.--service_account_name
: Especifica una cuenta de servicio que se utilizará para la transferencia de datos de Google Ads en lugar de tu cuenta de usuario.
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
Donde:
- PROJECT_ID es el ID del proyecto.
- DATASET es el conjunto de datos de destino para la configuración de transferencia de datos.
- NAME es el nombre visible de la configuración de transferencia de datos. El nombre de la transferencia puede ser cualquier valor que te permita identificarla si es necesario hacerle modificaciones más tarde.
- PARAMETERS contiene los parámetros para la configuración de la transferencia creada en formato JSON. Por ejemplo:
--params='{"param":"param_value"}'
Para Google Ads, debes proporcionar el parámetrocustomer_id
. De manera opcional, puedes configurar el parámetroexclude_removed_items
comotrue
para evitar que se transfieran entidades y métricas quitadas o inhabilitadas. - DATA_SOURCE es la fuente de datos:
google_ads
. - TABLES es la lista de tablas separadas por comas que se incluirá o excluirá de la transferencia de datos.
- SCHEDULE indica con qué frecuencia quieres que se ejecute la consulta. Si no se especifica
--schedule
, el valor predeterminado es cada 24 horas, a partir del momento en que se crea la transferencia. - REFRESH_DAYS es un número entero que especifica el período de actualización para una configuración de transferencia en días. El valor predeterminado es
7
. - SERVICE_ACCOUNT_NAME es el nombre de la cuenta de servicio que se usa para autenticar tu transferencia. La cuenta de servicio debe ser propiedad del mismo
project_id
que se usa para crear la transferencia y debe tener todos los permisos necesarios.
Por ejemplo, el siguiente comando crea una transferencia de datos de Google Ads llamada My Transfer
mediante el ID del cliente 123-123-1234
y el conjunto de datos de destino mydataset
. La transferencia de datos se crea en el proyecto predeterminado:
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 primera vez que ejecutes el comando, recibirás un mensaje similar al siguiente:
[URL omitted] Please copy and paste the above URL into your web browser and
follow the instructions to retrieve an authentication code.
Sigue las instrucciones del mensaje y pega el código de autenticación en la línea de comandos.
API
Usa el método projects.locations.transferConfigs.create
y suministra una instancia del recurso TransferConfig
.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración para Java incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para bibliotecas cliente.
Activa una transferencia de Google Ads de forma manual
Cuando activas una transferencia de forma manual para Google Ads, las instantáneas de las tablas de coincidencia se toman una vez al día y se almacenan en la partición para la última fecha de ejecución. Cuando activas una transferencia manual, no se actualizan las instantáneas de la tabla de coincidencia para las siguientes tablas:
- Anuncio
- AdGroup
- AdGroupAudience
- AdGroupBidModifier
- AdGroupAdLabel
- AdGroupCriterion
- AdGroupCriterionLabel
- AdGroupLabel
- AgeRange
- Recurso
- AssetGroup
- AssetGroupAsset
- AssetGroupListingGroupFilter
- AssetGroupSignal
- Público
- BidGoal
- Presupuesto
- Campaña
- CampaignAudience
- CampaignCriterion
- CampaignLabel
- Cliente
- Género
- Palabra clave
- LocationBasedCampaignCriterion
- ParentalStatus
- Posición
- Video
Compatibilidad con campañas de máximo rendimiento
El conector de Google Ads te permite exportar datos de campañas de máximo rendimiento. Debes seleccionar la casilla de verificación Incluir tablas de campañas de máximo rendimiento cuando creas una transferencia de datos, ya que los datos de las campañas de máximo rendimiento no se exportan de forma predeterminada.
La inclusión de datos de campañas de máximo rendimiento quita los campos ad_group
de ciertas tablas y, además, incluye las tablas nuevas. No puedes incluir campos ad_group
porque la API de Google Ads filtra los datos de la campaña de máximo rendimiento.
Las siguientes tablas excluyen las columnas relacionadas ad_group
cuando la casilla de verificación Incluir tablas de campañas de máximo rendimiento está seleccionada:
- GeoStats
- GeoConversionStats
- ShoppingProductConversionStats
- ShoppingProductStats
- LocationsUserLocationsStats
Las siguientes tablas se agregan cuando se selecciona la casilla de verificación Incluir tablas de campañas de máximo rendimiento:
- Recurso
- AssetGroup
- AssetGroupAsset
- AssetGroupListingGroupFilter
- AssetGroupSignal
- Público
- AssetGroupProductGroupStats
- CampaignAssetStats
Asistencia para cuentas de administrador de Google Ads
Se recomienda a los clientes actuales que tienen múltiples transferencias de Google Ads específicas para el ID de cliente que configuren una única transferencia de Google Ads a nivel de cuenta de administrador (MCC), programen un reabastecimiento y también inhabiliten las transferencias de Google Ads individuales específicas para el ID de cliente.
El uso de cuentas de administrador de Google Ads proporciona varios beneficios sobre el uso de ID de cliente individual:
- Ya no necesitas administrar varias transferencias de datos para informar sobre múltiples ID de cliente.
- Las consultas entre clientes son mucho más sencillas de escribir porque todos los ID de cliente se almacenan en la misma tabla.
- El uso de MCC alivia los problemas de cuota de carga del Servicio de transferencia de datos de BigQuery porque se cargan varios ID de cliente en el mismo trabajo.
Para obtener más información sobre las cuentas de administrador (MCC) de Google Ads, consulta Trabaja con cuentas administradas y Acerca de la vinculación de cuentas a tu cuenta de administrador.
Ejemplo
La siguiente lista muestra los ID de cliente vinculados a las cuentas particulares de administrador de Google Ads:
- 1234567890: cuenta de administrador raíz
- 1234: cuenta de subadministrador
- 1111: ID de cliente
- 2222: ID de cliente
- 3333: ID de cliente
- 4444: ID de cliente
- 567: cuenta de subadministrador
- 5555: ID de cliente
- 6666: ID de cliente
- 7777: ID de cliente
- 89: cuenta de subadministrador
- 8888: ID de cliente
- 9999: ID de cliente
- 0000: ID de cliente
- 1234: cuenta de subadministrador
Cada ID de cliente vinculado a una cuenta de administrador aparece en cada informe. Para obtener más información sobre la estructura de informes de Google Ads en el Servicio de transferencia de datos de BigQuery, consulta Transformación de informes de Google Ads.
Configuración de transferencia para el ID de cliente 1234567890
Una configuración de transferencia para la cuenta de administrador raíz (ID de cliente 1234567890) podría generar ejecuciones de transferencia de datos que incluyan los siguientes ID de cliente:
- 1111 (a través de la cuenta de subadministrador 1234)
- 2222 (a través de la cuenta de subadministrador 1234)
- 3333 (a través de la cuenta de subadministrador 1234)
- 4444 (a través de la cuenta de subadministrador 1234)
- 5555 (a través de la cuenta de subadministrador 567 y la cuenta de subadministrador 1234)
- 6666 (a través de la cuenta de subadministrador 567 y de la cuenta de subadministrador 1234)
- 7777 (a través de la cuenta de subadministrador 567 y la cuenta de subadministrador 1234)
- 8888 (a través de la cuenta de subadministrador 1234)
- 9999 (a través de la cuenta de subadministrador 89)
- 0000 (D de cliente individual)
Configuración de transferencia para el ID de cliente 1234
Una configuración de transferencia de datos para la cuenta de subadministrador 123 (ID de cliente 1234) podría generar ejecuciones de transferencia que incluyan los siguientes ID de cliente:
- 1111
- 2222
- 3333
- 4444
- 5555 (a través de la cuenta de subadministrador 567)
- 6666 (a través de la cuenta de subadministrador 567)
- 7777 (a través de la cuenta de subadministrador 567)
Configuración de transferencia para el ID de cliente 567
Una configuración de transferencia de datos para la cuenta de subadministrador 567 (ID de cliente 567) podría generar ejecuciones de transferencia que incluyan los siguientes ID de cliente:
- 5555
- 6666
- 7777
Configuración de transferencia para el ID de cliente 89
Una configuración de transferencia de datos para la cuenta de subadministrador 89 (ID de cliente 89) podría generar ejecuciones de transferencia que incluyan los siguientes ID de cliente:
- 8888
- 9999
Configuración de transferencia para el ID de cliente 0000
Una configuración de transferencia de datos para el ID de cliente 0000 podría generar ejecuciones de transferencia que incluyan solo el ID de cliente individual:
- 0000
Migra datos de Google Ads a MCC
Para migrar tus datos existentes de Google Ads en el Servicio de transferencia de datos de BigQuery a la estructura de MCC, puedes configurar un reabastecimiento para agregar los datos existentes a las tablas creadas por la configuración de transferencia vinculada a la cuenta de administrador. Ten en cuenta que cuando programas un reabastecimiento, no se actualizan las tablas de coincidencias.
Soluciona problemas de configuración de transferencia de Google Ads
Si tienes problemas para configurar tu transferencia de datos, consulta la sección sobre problemas de transferencias de Google Ads en la página sobre cómo solucionar problemas con las configuraciones de transferencia.
Consulta tus datos
Cuando tus datos se transfieren al Servicio de transferencia de datos de BigQuery, los datos se escriben en tablas particionadas en tiempo de transferencia. Para obtener más información, consulta Introducción a tablas con particiones.
Si consultas tus tablas directamente en lugar de usar las vistas generadas de manera automática, debes usar la seudocolumna _PARTITIONTIME
en tu consulta. Para obtener más información, visita la página Consulta tablas particionadas.
Consultas de muestra de Google Ads
Puede usar las siguientes consultas de muestra de Google Ads para analizar los datos transferidos. También puedes usar las consultas en una herramienta de visualización, como Looker Studio. Estas consultas se proporcionan para ayudarte a comenzar a consultar tus datos de Google Ads con el Servicio de transferencia de datos de BigQuery. Si tienes preguntas adicionales sobre lo que puedes hacer con estos informes, contacta a tu representante técnico de Google Ads.
En cada una de las siguientes consultas, reemplaza dataset por el nombre de tu conjunto de datos. Reemplaza customer_id por tu ID de cliente de Google Ads.
Si consultas tus tablas directamente en lugar de usar las vistas generadas de manera automática, debes usar la seudocolumna _PARTITIONTIME
en tu consulta. Para obtener más información, ve a la sección Consulta tablas particionadas.
Rendimiento de la campaña
La siguiente consulta de muestra analiza el rendimiento de las campañas de Google Ads para los últimos 30 días.
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'
Recuento de palabras clave
La siguiente consulta de muestra analiza las palabras clave por campaña, grupo de anuncios y estado de las palabras clave. Esta consulta usa la función KeywordMatchType
. Los tipos de concordancia de palabras clave te ayudan a controlar cuáles son las búsquedas que activan la publicación de tu anuncio. Para obtener más información sobre las opciones de coincidencia de palabras clave, consulta Acerca de las opciones de concordancia de palabras clave.
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'