Transferencias de Campaign Manager

El servicio de transferencia de datos de BigQuery para Campaign Manager te permite administrar y programar de manera automática trabajos de carga recurrentes de los datos de informes de este servidor.

Informes compatibles

El servicio de transferencia de datos de BigQuery para Campaign Manager (antes conocido como DoubleClick Campaign Manager) ahora es compatible con las siguientes opciones de informes:

Para obtener más información sobre cómo se transforman los informes de Campaign Manager en vistas y tablas de BigQuery, consulta Transformaciones de informes de Campaign Manager.

Opción de informes Compatibilidad
Versión de la API compatible 26 de junio de 2017
Programa

Cada 8 horas, según la hora de creación

No configurable

Período de actualización

Últimos 2 días

No configurable

Duración máxima del reabastecimiento

Últimos 60 días

Campaign Manager retiene los archivos de transferencia de datos hasta por 60 días. Campaign Manager borra los archivos de más de 60 días

Antes de comenzar

Sigue estos pasos antes de crear una transferencia de Campaign Manager:

  • Verifica si completaste todas las acciones necesarias para habilitar el servicio de transferencia de datos de BigQuery.
  • Crea un conjunto de datos de BigQuery para almacenar los datos de Campaign Manager.
  • Confirma que tu organización tenga acceso a la transferencia de datos v2 de Campaign Manager (Campaign Manager DTv2). El equipo de Campaign Manager envía estos archivos a un depósito de Cloud Storage. Para acceder a los archivos de Campaign Manager DTv2, el siguiente paso depende de si tienes un contrato directo con Campaign Manager. En ambos casos, se aplicarán tarifas adicionales.

    Si tienes un contrato con Campaign Manager, comunícate con su servicio de asistencia para configurar los archivos de Campaign Manager DTv2.

    Si no tienes un contrato con Campaign Manager, tu agencia o distribuidor de Campaign Manager pueden tener acceso a los archivos de Campaign Manager DTv2. Comunícate con tu agencia o distribuidor para acceder a estos archivos.

    Después de completar este paso, recibirás un depósito de Cloud Storage similar al siguiente:

    dcdt_-dcm_account123456

    El equipo de Google Cloud NO tiene la capacidad de generar los archivos de Campaign Manager DTv2 o conceder acceso a ellos en tu nombre. Comunícate con el servicio de asistencia de Campaign Manager, tu agencia o tu distribuidor para acceder a los archivos de Campaign Manager DTv2.

  • Asegúrate de que la persona que crea la transferencia tiene los siguientes permisos necesarios:
    • Campaign Manager: acceso de lectura a los archivos de Campaign Manager DTv2 almacenados en Cloud Storage. La entidad que te entregó el depósito de Cloud Storage es la que administra el acceso.
    • BigQuery: permisos bigquery.transfers.update para crear la transferencia y permisos bigquery.datasets.update en el conjunto de datos de destino. La función de IAM bigquery.admin a nivel de proyecto predefinida incluye los permisos bigquery.transfers.update y bigquery.datasets.update. Para obtener más información sobre las funciones de IAM en BigQuery, consulta Control de acceso.
  • Si pretendes crear transferencias con la IU web de BigQuery, habilita las ventanas emergentes de bigquery.cloud.google.com para que puedas ver la ventana de permisos. Debes permitirle al servicio de transferencia de datos de BigQuery que administre tus campañas de Campaign Manager para que la transferencia tenga éxito.
  • Por el momento, las notificaciones de ejecución de transferencias están en versión Alfa. Si pretendes configurar las notificaciones de transferencia, debes tener los permisos pubsub.topics.setIamPolicy para Cloud Pub/Sub. Los permisos de Cloud Pub/Sub no son obligatorios si solo configuras las notificaciones por correo electrónico. Para obtener más información, consulta Notificaciones de ejecución del Servicio de transferencia de datos de BigQuery.

Configura una transferencia de Campaign Manager

Para configurar una transferencia de Campaign Manager se necesita lo siguiente:

  • Cloud Storage Bucket: la URI del depósito de Cloud Storage para tus archivos de Campaign Manager DTv2 como se describe en Antes de comenzar. El nombre del depósito debe parecerse a este:

      dcdt_-dcm_account123456
    
  • ID de Campaign Manager: tu ID de Network, Advertiser o Floodlight de Campaign Manager. El ID de Network es el superior en la jerarquía.

Encuentra tu ID de Campaign Manager

Si deseas recuperar tu ID de Campaign Manager, puedes usar la IU web de Cloud Storage para examinar los archivos en tu depósito de Cloud Storage de transferencia de datos de Google Ad Manager. El ID de Campaign Manager se usa para encontrar coincidencias de archivos en el depósito de Cloud Storage proporcionado. El ID está incorporado en el nombre del archivo, no en el nombre del depósito de Cloud Storage.

Por ejemplo:

  • En un archivo llamado dcm_account123456_activity_*, el ID es 123456.
  • En un archivo llamado dcm_floodlight7890_activity_*, el ID es 7890.
  • En un archivo llamado dcm_advertiser567_activity_*, el ID es 567.

(Opcional) Encuentra el prefijo de tu nombre del archivo

En raras ocasiones, tú o el equipo de servicios de Google Marketing Platform pueden configurar los archivos en tu depósito de Cloud Storage con nombres de archivo personalizados no estándar.

Por ejemplo:

  • En un archivo llamado dcm_account123456custom_activity_*, el prefijo es dcm_account123456custom; todo lo que va antes de “_activity”.

Comunícate con el servicio de asistencia de Campaign Manager si necesitas ayuda.

Sigue estos pasos para crear una transferencia de datos de BigQuery con Campaign Manager:

IU web

  1. Dirígete a la IU web de BigQuery.

    Ir a la IU web de BigQuery

  2. Haz clic en Transfers (Transferencias).

  3. Haz clic en Add Transfer (Agregar transferencia).

  4. En la página New Transfer (Transferencia nueva), haz lo siguiente:

    • En Source (Fuente), selecciona Campaign Manager (formerly DCM) [Campaign Manager (antes DCM)].
    • En Display name (Nombre visible), ingresa un nombre para la transferencia, como My Transfer. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si necesitas modificarla más adelante.
    • En Destination dataset (Conjunto de datos de destino), selecciona el conjunto de datos que corresponda.
    • En Cloud Storage bucket (Depósito de Cloud Storage), ingresa el nombre del depósito de Cloud Storage que contiene tus archivos de Data Transfer V2.0. Cuando ingreses el nombre del depósito, no incluyas gs://.
    • En DoubleClick ID (ID de DoubleClick), ingresa el ID de Campaign Manager que corresponda.
    • (Opcional) Si tus archivos tienen nombres estándar como estos ejemplos, deja el campo File name prefix (Prefijo del nombre del archivo) en blanco. Completa File name prefix solo si los archivos en tu depósito de Cloud Storage tienen nombres de archivo personalizados como este ejemplo.

      Transferencia de canal

    • (Opcional) Expande la sección Advanced (Avanzado) y configura las notificaciones de ejecución para tu transferencia. Por el momento, las notificaciones de ejecución de transferencias están en versión Alfa.

      • En Cloud Pub/Sub topic (Tema de Cloud Pub/Sub), ingresa el nombre del tema, por ejemplo, projects/myproject/topics/mytopic.
      • Marca Send email notifications (Enviar notificaciones por correo electrónico) para activar las notificaciones por correo electrónico de las ejecuciones de transferencia con errores.
      • No debes marcar Disabled (Inhabilitado) cuando configuras una transferencia. Consulta Trabaja con transferencias para inhabilitar las transferencias existentes.

        Tema de Cloud Pub/Sub

  5. Haz clic en Add (Agregar).

  6. Cuando se solicite, haz clic en Allow (Permitir) para darle permiso al servicio de transferencia de datos de BigQuery a fin de acceder a tus datos de informes de Campaign Manager y administrar los datos en BigQuery. Debes permitir las ventanas emergentes de bigquery.cloud.google.com para ver la ventana de permisos.

    Permitir la transferencia

Línea de comandos

Ingresa el comando bq mk y suministra la marca de creación de transferencia --transfer_config. Las marcas siguientes también son obligatorias:

  • --data_source
  • --target_dataset
  • --display_name
  • --params

    bq mk --transfer_config --project_id=[PROJECT_ID] --target_dataset=[DATASET] --display_name=[NAME] --params='[PARAMETERS]' --data_source=[DATA_SOURCE]
    

Donde:

  • --project_id es tu ID del proyecto.
  • --target_dataset es el conjunto de datos de destino para la configuración de la transferencia.
  • --display_name es el nombre visible de la configuración de transferencia. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si necesitas modificarla más adelante.
  • --params contiene los parámetros para la configuración de la transferencia creada en formato JSON. Por ejemplo: --params='{"param":"param_value"}'. En Campaign Manager, debes suministrar los parámetros bucket y network_id. bucket es el depósito de Cloud Storage que contiene tus archivos de Campaign Manager DTv2. network_id es tu ID de Network, Floodlight o Advertiser
  • --data_source es la fuente de datos; dcm_dt (Campaign Manager).

También puedes suministrar la marca --project_id para especificar un proyecto en particular. Si --project_id no se especifica, se usa el proyecto predeterminado.

Por ejemplo, el siguiente comando crea una transferencia de Campaign Manager llamada My Transfer con el ID de Campaign Manager 123456, el depósito de Cloud Storage dcdt_-dcm_account123456 y el conjunto de datos de destino mydataset. El parámetro file_name_prefix es opcional y solo se usa para nombres de archivo personalizados y excepcionales.

La transferencia se crea en el proyecto predeterminado:

bq mk --transfer_config --target_dataset=mydataset --display_name='My Transfer' --params='{"bucket": "dcdt_-dcm_account123456","network_id": "123456","file_name_prefix":"YYY"}' --data_source=dcm_dt

Después de ejecutar el comando, recibirás un mensaje como el 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 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.

Solución de problemas de la configuración de transferencias de Campaign Manager

Si tienes problemas con la configuración de tu transferencia, consulta Problemas de transferencia de Campaign Manager en Solución de problemas de la configuración de transferencia del servicio de transferencia de datos de BigQuery.

Consulta tus datos

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 pseudocolumna _PARTITIONTIME en tu consulta. Para obtener más información, visita Consulta tablas particionadas.

Consultas de muestra de Campaign Manager

Debes usar las siguientes consultas de muestra de Campaign Manager para analizar tus datos transferidos. También puedes usar las consultas en una herramienta de visualización como Cloud Datalab o Google Data Studio. Estas consultas se proporcionan para ayudarte a comenzar a hacer consultas de tus datos de Campaign Manager con BigQuery. Si tienes más preguntas sobre lo que puedes hacer con estos informes, comunícate con tu representante técnico de Campaign Manager.

Estas muestras usan la compatibilidad de BigQuery para SQL estándar. Usa la etiqueta #standardSQL para hacerle saber a BigQuery que deseas usar SQL estándar. Para obtener más información sobre el prefijo #standardSQL, consulta Configura un prefijo de consulta.

En cada una de las siguientes consultas, reemplaza [DATASET] por el nombre de tu conjunto de datos. Reemplaza [DOUBLECLICK_ID] por tu ID de Campaign Manager.

Últimas campañas

La siguiente consulta de muestra recupera las últimas campañas.

IU web

#standardSQL
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
WHERE _DATA_DATE = _LATEST_DATE

Línea de comandos

bq query --use_legacy_sql=false '
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
WHERE _DATA_DATE = _LATEST_DATE'

Impresiones y usuarios distintos por campaña

La siguiente consulta de muestra analiza el número de impresiones y usuarios distintos por campaña en los últimos 30 días.

IU web

#standardSQL
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
SELECT Campaign_ID, DATA_DATE AS Date, count(*) AS count, count(distinct User_ID) AS du
FROM `[DATASET].impression[DOUBLECLICK_ID]` WHERE
  _DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
GROUP BY Campaign_ID, Date

Línea de comandos

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT Campaign_ID, _DATA_DATE AS Date, count(*) AS count, count(distinct User_ID) AS du
FROM `[DATASET].impression_[DOUBLECLICK_ID]` WHERE
  _DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
GROUP BY Campaign_ID, Date'

Últimas campañas ordenadas por campaña y fecha

La siguiente consulta de muestra analiza las últimas campañas de los últimos 30 días, ordenadas por campaña y fecha.

IU web

#standardSQL
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
SELECT Campaign, Campaign_ID, Date FROM (
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
  WHERE _DATA_DATE = _LATEST_DATE
), (
SELECT date AS Date
  FROM `bigquery-public-data.common_us.date_greg`
  WHERE Date BETWEEN [START_DATE] AND [END_DATE]
)
ORDER BY
  Campaign_ID, Date

Línea de comandos

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT Campaign, Campaign_ID, Date FROM (
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
  WHERE _DATA_DATE = _LATEST_DATE
), (
SELECT date AS Date
  FROM `bigquery-public-data.common_us.date_greg`
  WHERE Date BETWEEN [START_DATE] AND [END_DATE]
)
ORDER BY
  Campaign_ID, Date'

Impresiones y usuarios distintos por campaña dentro de un período

La siguiente consulta de muestra analiza el número de impresiones y usuarios distintos por campaña entre [START_DATE] (fecha de inicio) y [END_DATE] (fecha de finalización).

IU web

#standardSQL
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
SELECT
  base.*,
  imp.count AS imp_count,
  imp.du AS imp_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = \_LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN [START_DATE]
      AND [END_DATE] ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].impression[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN [START_DATE]
    AND [END_DATE]
  GROUP BY
    Campaign_ID,
    Date ) AS imp
ON
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
WHERE
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
ORDER BY
  base.Campaign_ID,
  base.Date

Línea de comandos

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT
  base.*,
  imp.count AS imp_count,
  imp.du AS imp_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN [START_DATE]
      AND [END_DATE] ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].impression[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN [START_DATE]
    AND [END_DATE]
  GROUP BY
    Campaign_ID,
    Date ) AS imp
ON
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
WHERE
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
ORDER BY
  base.Campaign_ID,
  base.Date'

Impresiones, clics, actividades y usuarios distintos por campaña

La siguiente consulta de muestra analiza el número de impresiones, clics, actividades y usuarios distintos por campaña en los últimos 30 días.

IU web

#standardSQL
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
SELECT
  base.*,
  imp.count AS imp_count,
  imp.du AS imp_du,
  click.count AS click_count,
  click.du AS click_du,
  activity.count AS activity_count,
  activity.du AS activity_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
      AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].impression[DOUBLECLICK_ID]`
  WHERE
    DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS imp
ON
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
LEFT JOIN (
  SELECT
    Campaign_ID,
    DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].click[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS click
ON
  base.Campaign_ID = click.Campaign_ID
  AND base.Date = click.Date
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].activity[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS activity
ON
  base.Campaign_ID = activity.Campaign_ID
  AND base.Date = activity.Date
WHERE
  base.Campaign_ID IN [CAMPAIGN_LIST]
  AND (base.Date = imp.Date
    OR base.Date = click.Date
    OR base.Date = activity.Date)
ORDER BY
  base.Campaign_ID,
  base.Date

Línea de comandos

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT
  base.*,
  imp.count AS imp_count,
  imp.du AS imp_du,
  click.count AS click_count,
  click.du AS click_du,
  activity.count AS activity_count,
  activity.du AS activity_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
      AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].impression[DOUBLECLICK_ID]`
  WHERE
    DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS imp
ON
  base.Campaign_ID = imp.Campaign_ID
  AND base.Date = imp.Date
LEFT JOIN (
  SELECT
    Campaign_ID,
    DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].click[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS click
ON
  base.Campaign_ID = click.Campaign_ID
  AND base.Date = click.Date
LEFT JOIN (
  SELECT
    Campaign_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].activity[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Date ) AS activity
ON
  base.Campaign_ID = activity.Campaign_ID
  AND base.Date = activity.Date
WHERE
  base.Campaign_ID IN [CAMPAIGN_LIST]
  AND (base.Date = imp.Date
    OR base.Date = click.Date
    OR base.Date = activity.Date)
ORDER BY
  base.Campaign_ID,
  base.Date'

Actividad de la campaña

La siguiente consulta de muestra analiza la actividad de campaña en los últimos 30 días. En esta consulta, reemplaza [CAMPAIGN_LIST] por una lista separada por comas de todas las campañas de interés de Campaign Manager dentro del alcance de la consulta.

IU web

#standardSQL
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
SELECT
  base.*,
  activity.count AS activity_count,
  activity.du AS activity_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      mt_at.Activity_Group,
      mt_ac.Activity,
      mt_ac.Activity_Type,
      mt_ac.Activity_Sub_Type,
      mt_ac.Activity_ID,
      mt_ac.Activity_Group_ID
    FROM
      `[DATASET].match_table_activity_cats[DOUBLECLICK_ID]` AS mt_ac
    JOIN (
      SELECT
        Activity_Group,
        Activity_Group_ID
      FROM
        `[DATASET].match_table_activity_types_[DOUBLECLICK_ID]`
      WHERE
        _DATA_DATE = _LATEST_DATE ) AS mt_at
    ON
      mt_at.Activity_Group_ID = mt_ac.Activity_Group_ID
    WHERE
      _DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN [START_DATE]
      AND [END_DATE] ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    Activity_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].activity_[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Activity_ID,
    Date ) AS activity
ON
  base.Campaign_ID = activity.Campaign_ID
  AND base.Activity_ID = activity.Activity_ID
  AND base.Date = activity.Date
WHERE
  base.Campaign_ID IN [CAMPAIGN_LIST]
  AND base.Activity_ID = activity.Activity_ID
ORDER BY
  base.Campaign_ID,
  base.Activity_Group_ID,
  base.Activity_ID,
  base.Date

Línea de comandos

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT
  base.*,
  activity.count AS activity_count,
  activity.du AS activity_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      mt_at.Activity_Group,
      mt_ac.Activity,
      mt_ac.Activity_Type,
      mt_ac.Activity_Sub_Type,
      mt_ac.Activity_ID,
      mt_ac.Activity_Group_ID
    FROM
      `[DATASET].match_table_activity_cats[DOUBLECLICK_ID]` AS mt_ac
    JOIN (
      SELECT
        Activity_Group,
        Activity_Group_ID
      FROM
        `[DATASET].match_table_activity_types_[DOUBLECLICK_ID]`
      WHERE
        _DATA_DATE = _LATEST_DATE ) AS mt_at
    ON
      mt_at.Activity_Group_ID = mt_ac.Activity_Group_ID
    WHERE
      _DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_us.date_greg`
    WHERE
      Date BETWEEN [START_DATE]
      AND [END_DATE] ) ) AS base
LEFT JOIN (
  SELECT
    Campaign_ID,
    Activity_ID,
    _DATA_DATE AS Date,
    COUNT() AS count,
    COUNT(DISTINCT User_ID) AS du
  FROM
    `[DATASET].activity_[DOUBLECLICK_ID]`
  WHERE
    _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
  GROUP BY
    Campaign_ID,
    Activity_ID,
    Date ) AS activity
ON
  base.Campaign_ID = activity.Campaign_ID
  AND base.Activity_ID = activity.Activity_ID
  AND base.Date = activity.Date
WHERE
  base.Campaign_ID IN [CAMPAIGN_LIST]
  AND base.Activity_ID = activity.Activity_ID
ORDER BY
  base.Campaign_ID,
  base.Activity_Group_ID,
  base.Activity_ID,
  base.Date'
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.