Crea una canalización de ELT para los datos de análisis de marketing
En este instructivo, se muestra cómo configurar un flujo de trabajo de ELT que extrae, carga y transforma datos de estadísticas de marketing en BigQuery.
Un flujo de trabajo de ELT típico extrae periódicamente datos de clientes nuevos de tu fuente de datos y los carga en BigQuery. Luego, los datos no estructurados se procesan para generar métricas significativas. En este instructivo, crearás un flujo de trabajo de ELT configurando una transferencia de datos de estadísticas de marketing con el Servicio de transferencia de datos de BigQuery. Luego, programas Dataform para que ejecute transformaciones periódicas en los datos.
En este instructivo, usarás Google Ads como fuente de datos, pero puedes usar cualquiera de las fuentes de datos compatibles con el Servicio de transferencia de datos de BigQuery.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Administrador de BigQuery (
roles/bigquery.admin
) -
Administrador de Dataform (
roles/dataform.admin
) Ve a la página Transferencia de datos en la Google Cloud consola.
Haz clic en
Crear transferencia.En la sección Tipo de fuente, en Fuente, elige Google Ads.
En la sección Detalles de fuente de datos (Data source details):
- En ID de cliente, ingresa tu ID de cliente de Google Ads.
- En Tipo de informe, selecciona Estándar. El informe estándar incluye el conjunto estándar de informes y campos, como se detalla en Transformación de informes de Google Ads.
- En Período de actualización, ingresa
5
.
- En Período de actualización, ingresa
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 Nombre de la configuración de transferencia, en Nombre visible, ingresa
Marketing tutorial
.En la sección Opciones de programación, haz lo siguiente:
- En Frecuencia de repetición, selecciona Días.
- En En, ingresa
08:00
.
Haz clic en Guardar.
DATASET
: Es el nombre del conjunto de datos que creaste para almacenar la tabla transferida.CUSTOMER_ID
: Es tu ID de cliente de Google Ads.DATASET
: Es el nombre del conjunto de datos que creaste para almacenar la tabla transferida.CUSTOMER_ID
: Es tu ID de cliente de Google Ads.En la consola de Google Cloud , ve a la página Dataform.
Haz clic en
Crear repositorio.En la página Crear repositorio, haz lo siguiente:
- En el campo ID del repositorio, ingresa
marketing-tutorial-repository
. - En la lista Región, selecciona una región.
- Haz clic en Crear.
- En el campo ID del repositorio, ingresa
En la consola de Google Cloud , ve a la página Dataform.
Haz clic en
marketing-tutorial-repository
.Haz clic en
Crear lugar de trabajo de desarrollo.En la ventana Crear espacio de trabajo de desarrollo, haz lo siguiente:
- En el campo ID del lugar de trabajo, ingresa
marketing-tutorial-workspace
. - Haz clic en Crear.
Aparecerá la página del espacio de trabajo de desarrollo.
- En el campo ID del lugar de trabajo, ingresa
Haga clic en Inicializar espacio de trabajo.
En la consola de Google Cloud , ve a la página Dataform.
Selecciona
marketing-tutorial-repository
.Selecciona
marketing-tutorial-workspace
.En el panel Archivos, junto a
definitions/
, haz clic en el menú Más.Haz clic en Crear archivo.
En el panel Crear un archivo nuevo, haz lo siguiente:
- En el campo Agregar una ruta de archivo, después de
definitions/
, ingresa el nombredefinitions/googleads-declaration.sqlx
. - Haz clic en Crear archivo.
- En el campo Agregar una ruta de archivo, después de
- En tu espacio de trabajo de desarrollo, en el panel Archivos, haz clic en tu archivo SQLX para la declaración de la fuente de datos.
En el archivo, ingresa el siguiente fragmento de código:
config { type: "declaration", database: "PROJECT_ID", schema: "DATASET", name: "ads_Campaign_CUSTOMER_ID", }
- En el panel Archivos, junto a
definitions/
, haz clic en el menú Más y, luego, selecciona Crear archivo. - En el campo Agregar una ruta de acceso al archivo, ingresa
definitions/daily_performance.sqlx
. - Haz clic en Crear archivo.
- En el panel Archivos, expande el directorio
definitions/
. Selecciona
daily_performance.sqlx
y, luego, ingresa la siguiente consulta:config { type: "table", schema: "reporting", tags: ["daily", "google_ads"] } SELECT date, campaign_id, campaign_name, SUM(clicks) AS total_clicks FROM `ads_Campaign_CUSTOMER_ID` GROUP BY date, campaign_id, campaign_name ORDER BY date DESC
- En el espacio de trabajo
marketing-tutorial-workspace
, haz clic en Confirmar 1 cambio. - En el panel New commit, ingresa una descripción de la confirmación en el campo Add a commit message.
- Haz clic en Confirmar todos los cambios.
- En el espacio de trabajo
marketing-tutorial-workspace
, haz clic en Push to default branch. En la consola de Google Cloud , ve a la página Dataform.
Selecciona
marketing-tutorial-repository
.Haz clic en la pestaña Versiones y programación.
Haz clic en Crear lanzamiento de producción.
En el panel Crear configuración de lanzamiento, establece la siguiente configuración:
- En el campo ID de versión, ingresa
transformations
. - En el campo Git commitish, deja el valor predeterminado
main
. - En la sección Frecuencia de programación, selecciona A pedido.
- En el campo ID de versión, ingresa
Haz clic en Crear.
En la consola de Google Cloud , ve a la página Dataform.
Selecciona
marketing-tutorial-repository
.Haz clic en la pestaña Versiones y programación.
En la sección Configuración del flujo de trabajo, haz clic en Crear.
En el panel Crear configuración de flujo de trabajo, en el campo ID de configuración, ingresa
transformations
.En el menú Configuración de lanzamiento, selecciona
transformations
.En Autenticación, selecciona Ejecutar con credenciales de usuario.
En la sección frecuencia de programación, haz lo siguiente:
1. Select **Repeat**. 1. For **Repeats**, select `Daily`. 1. For **At time**, enter `10:00 AM`. 1. For **Timezone**, select `Coordinated Universal Time (UTC)`.
Haz clic en Selección de etiquetas.
En el campo Seleccionar etiquetas para ejecutar, selecciona Diario.
Haz clic en Crear.
En la consola de Google Cloud , ve a la página BigQuery.
En el panel Explorador, expande tu proyecto y selecciona
dataform
.Haz clic en el menú
Acciones y, luego, selecciona Borrar.En el cuadro de diálogo Borrar conjunto de datos, ingresa
delete
en el campo y, luego, haz clic en Borrar.En la consola de Google Cloud , ve a la página Dataform.
Haz clic en
quickstart-repository
.Haz clic en la pestaña Lanzamiento y programación.
En la sección Configuraciones de lanzamiento, haz clic en el menú
Más junto a la configuración deproduction
y, luego, en Borrar.En la sección Configuración del flujo de trabajo, haz clic en el menú
Más junto a la configuración detransformations
y, luego, en Borrar.En la pestaña Lugares de trabajo de desarrollo, haz clic en el menú
Más dequickstart-workspace
y, luego, selecciona Borrar.Para confirmar la acción, haz clic en Borrar.
En la consola de Google Cloud , ve a la página Dataform.
En
quickstart-repository
, haz clic en el menú Más y, luego, selecciona Borrar.En la ventana Borrar repositorio, ingresa el nombre del repositorio para confirmar su eliminación.
Para confirmar la acción, haz clic en Borrar.
Roles requeridos
Para obtener los permisos que necesitas para completar este instructivo, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Programa transferencias de datos recurrentes
Para mantener BigQuery actualizado con los datos de marketing más recientes de tu fuente de datos, configura transferencias de datos recurrentes con el Servicio de transferencia de datos de BigQuery para extraer y cargar datos según un programa.
En este instructivo, usarás Google Ads como fuente de datos de ejemplo. Para obtener una lista completa de las fuentes de datos compatibles con el Servicio de transferencia de datos de BigQuery, consulta Fuentes de datos compatibles.
Después de guardar la configuración, el Servicio de transferencia de datos de BigQuery comenzará la transferencia de datos. Según la configuración de la transferencia, esta se ejecuta una vez al día a las 8 a.m. (UTC) y extrae datos de Google Ads de los últimos cinco días.
Puedes supervisar los trabajos de transferencia en curso para verificar el estado de cada transferencia de datos.
Consultar datos de tablas
Cuando tus datos se transfieren a BigQuery, se escriben en tablas particionadas por 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.
En las siguientes secciones, se muestran consultas de muestra que puedes usar para examinar los datos transferidos.
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'
Reemplaza lo siguiente:
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'
Reemplaza lo siguiente:
Crea un repositorio de Dataform
Después de crear la configuración de transferencia de datos para transferir los datos más recientes de Google Ads, configura Dataform para que transforme periódicamente tus datos de análisis de marketing. Dataform te permite programar transformaciones de datos periódicas y definirlas con SQL mientras colaboras con otros analistas de datos.
Crea un repositorio de Dataform para almacenar las consultas de SQLX que componen tu código de transformación.
El repositorio marketing-tutorial-repository
ahora aparece en tu lista de repositorios de Dataform.
Para obtener más información sobre los repositorios de Dataform, consulta Acerca de los repositorios de Dataform.
Crea e inicializa un espacio de trabajo de desarrollo de Dataform
Crea un espacio de trabajo de desarrollo de Dataform para que puedas trabajar en el código de transformación dentro de tu repositorio antes de confirmar y enviar tus cambios al repositorio.
El espacio de trabajo de desarrollo marketing-tutorial-workspace
ahora aparece en tu repositorio marketing-tutorial-repository
en la pestaña Espacios de trabajo de desarrollo, junto con dos archivos de ejemplo en el directorio definitions
llamados *first_view.sqlx
y *second_view.sqlx
.
Para obtener más información sobre los lugares de trabajo de desarrollo de Dataform, consulta Descripción general de los lugares de trabajo de desarrollo.
Declara tu tabla de Google Ads como fuente de la tabla
Para conectar tu tabla de Google Ads recién transferida a Dataform, declárala como una fuente de datos siguiendo estos pasos:
Crea un archivo SQLX para la declaración de la fuente de datos
En Dataform, declaras un destino de fuente de datos creando un archivo SQLX en el directorio definitions/
:
Declara una fuente de datos
Edita el definitions/googleads-declaration.sqlx
para declarar una tabla de Google Ads transferida como fuente de datos. En este ejemplo, se declara la tabla ads_Campaign
como una fuente de datos:
Define tu transformación
Define tus transformaciones de datos creando un archivo SQLX en el directorio definitions/
. En este instructivo, crearás una transformación diaria que agrega métricas como clics, impresiones, costos y conversiones con un archivo llamado daily_performance.sqlx
.
Crea el archivo SQLX de transformación
Define el archivo SQLX de transformación
Confirma y envía los cambios
Después de realizar los cambios en tu espacio de trabajo de desarrollo, puedes confirmarlos y enviarlos a tu repositorio siguiendo estos pasos:
Después de que los cambios se envíen correctamente al repositorio, aparecerá el mensaje Workspace is up to date.
Programa la transformación de tus datos
Después de definir tu archivo de transformación de datos, programa las transformaciones de datos.
Crea una versión de producción
Una versión de producción en Dataform garantiza que tu entorno se actualice de forma coherente con los resultados de tus transformaciones de datos. En los siguientes pasos, se muestra cómo especificar la rama main
del repositorio marketing-tutorial-repository
para almacenar tus transformaciones de datos:
Crea una configuración de flujo de trabajo
Una vez que hayas creado una versión de producción, puedes crear una configuración de flujo de trabajo que ejecute tus transformaciones de datos según un programa especificado en tu repositorio. En los siguientes pasos, se muestra cómo programar transformaciones diarias desde el archivo transformations
:
La configuración del flujo de trabajo que creaste ejecuta el resultado de la compilación más reciente que creó la configuración de lanzamiento de transformations
.
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página, sigue estos pasos.
Borra el conjunto de datos creado en BigQuery
Para evitar que se generen cargos por los recursos de BigQuery, borra el conjunto de datos llamado dataform
.
Borra el lugar de trabajo de desarrollo y la configuración de Dataform
La creación de lugares de trabajo de desarrollo de Dataform no genera costos, pero para borrar el lugar de trabajo de desarrollo, puedes seguir estos pasos:
Borra el repositorio de Dataform
La creación de repositorios de Dataform no genera costos, pero para borrar el repositorio, puedes seguir estos pasos: