Transferencias de Google Ad Manager

El Servicio de transferencia de datos de BigQuery para Google Ad Manager te permite crear y administrar de manera automática los datos de informe de trabajos de carga recurrentes para Google Ad Manager (antes conocido como DoubleClick for Publishers).

Informes compatibles

Actualmente, el Servicio de transferencia de datos de BigQuery para Google Ad Manager es compatible con las siguientes opciones de informes:

Para obtener información sobre cómo los informes de Google Ad Manager se transforman en tablas y vistas de BigQuery, consulta la página sobre transformaciones de informes de Google Ad Manager.

Opción de informe Asistencia
Programar

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

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

Antes de comenzar

Antes de crear una transferencia de Google Ad Manager, 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 de BigQuery para almacenar los datos de Google Ad Manager.
  • Asegúrate de que tu organización tenga acceso a los archivos de Transferencia de datos de Google Ad Manager (Google Ad Manager DT). Estos archivos los entrega el equipo de Google AD Manager a un bucket de Google Cloud Storage. Para obtener acceso a los archivos de Google Ad Manager DT, consulta los informes de Transferencia de datos de Ad Manager. Se pueden aplicar cargos adicionales del equipo de Google Ad Manager.

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

    gdfp-12345678

    El equipo de Google Cloud NO tiene la capacidad de generar los archivos de Google Ad Manager DT o conceder acceso a ellos en tu nombre. Comunícate con la asistencia de Google Ad Manager para acceder a los archivos de Google Ad Manager DT.

  • Habilita el acceso a la API para tu red de Google Ad Manager.
  • Si deseas configurar las notificaciones de transferencia, debes tener permisos pubsub.topics.setIamPolicy para Pub/Sub. Los permisos de Pub/Sub no son necesarios si solo configuras las notificaciones por correo electrónico. Para obtener más información, consulta las notificaciones de ejecución del Servicio de transferencia de datos de BigQuery.
  • Permisos necesarios

    • BigQuery: Asegúrate de que la persona que crea la transferencia tenga los siguientes permisos en BigQuery:

      • permisos bigquery.transfers.update para crear la transferencia
      • Los permisos bigquery.datasets.get y bigquery.datasets.update en el conjunto de datos de destino

      La función predefinida de IAM bigquery.admin incluye los permisos bigquery.transfers.update, bigquery.datasets.update y bigquery.datasets.get. Para obtener más información sobre los roles de IAM en el Servicio de transferencia de datos de BigQuery, consulta Control de acceso.

    • Google Ad Manager: Acceso de lectura a los archivos de Google Ad Manager DT almacenados en Cloud Storage. Los permisos para los archivos de Google Ad Manager DT los administra el equipo de Google Ad Manager. Además de los archivos de Google Ad Manager DT, la persona que crea la transferencia debe agregarse a la red de Google Ad Manager, con acceso de lectura a todas las entidades necesarias para crear las diversastablas de coincidencias (elemento de una sola línea, pedido, bloque de anuncios, etcétera). Esto se logra agregando el usuario de Ad Manager que autenticó la transferencia al equipo Todas las entidades en Ad Manager.

    Configura una transferencia de Google Ad Manager

    Para configurar una transferencia de datos para Google Ad Manager se requiere lo siguiente:

    • Depósito de Cloud Storage: El URI del depósito de Cloud Storage para tus archivos de Google Ad Manager DT como se describe en Antes de comenzar El nombre del bucket debe parecerse a este:

      gdfp-12345678
    • Código de red: Encontrarás el código de red de Google Ad Manager en la URL cuando accedas a tu red. Por ejemplo, en la URL https://admanager.google.com/2032576#delivery, 2032576 es tu código de red. Para obtener más información, consulta la página sobre cómo comenzar a usar Google Ad Manager.

    Para crear una transferencia con el Servicio de transferencia de datos de BigQuery para Google Ad Manager:

    Consola

    1. Ve a la página de BigQuery en la consola de Google Cloud.

      Ir a la página de BigQuery

    2. Haz clic en Transferencias de datos.

    3. Haz clic en Crear transferencia.

    4. En la página Crear transferencia, sigue estos pasos:

      • En la sección Tipo de fuente (Source type), para Fuente (Source), selecciona Google Ad Manager.

        Fuente de transferencia

      • En la sección Nombre de la configuración de transferencia (Transfer config name), en Nombre visible (Display name), ingresa el nombre de la transferencia, como My Transfer. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si es necesario hacerle modificaciones más tarde.

        Nombre de la transferencia

      • En la sección Configuración de destino (Destination settings), en Conjunto de datos de destino (Destination dataset), selecciona el conjunto de datos que creaste para almacenar tus datos.

        Conjunto de datos de la transferencia

      • En la sección Detalles de fuente de datos (Data source details), haz lo siguiente:

        • En Depósito de Cloud Storage (Cloud Storage bucket), ingresa el nombre del depósito de Cloud Storage que contiene tus archivos de Transferencia de datos. Cuando ingreses el nombre del depósito, no incluyas gs://.
        • En Código de red (Network code), ingresa el código de tu red.

          Detalles de la fuente de Google Ad Manager

      • 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 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.

      • De forma opcional, en la sección Opciones de notificación, haz lo siguiente:

        • Haz clic en el botón de activación para habilitar las notificaciones por correo electrónico. Cuando habilitas esta opción, el administrador de transferencias recibe una notificación por correo electrónico cuando falla una ejecución de transferencia.
        • En Seleccionar un tema de Cloud Pub/Sub (Select a Cloud Pub/Sub topic), elige el nombre de tu tema o haz clic en Crear un tema (Create a topic). Con esta opción, se configuran las notificaciones de ejecución de Pub/Sub para tu transferencia.
    5. Haga clic en Save.

    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

    Marcas opcionales:

    • --service_account_name: Especifica una cuenta de servicio que se usará para autenticar la transferencia de Google Ad Manager 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 \
    --service_account_name=service_account_name
    

    Aquí:

    • project_id es el ID del proyecto.
    • dataset es el conjunto de datos de destino para la configuración de la transferencia.
    • 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 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 Ad Manager, debes proporcionar los parámetros bucket y network_code. bucket es el depósito de Cloud Storage que contiene los archivos de Google Ad Manager DT. network_code es el código de red.
    • data_source es la fuente de datos, dfp_dt (Google Ad Manager).
    • 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.

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

    Por ejemplo, el siguiente comando crea una transferencia de Google Ad Manager llamada My Transfer mediante el código de red 12345678, el depósito gdfp-12345678 de Cloud Storage y el conjunto de datos de destino mydataset. La transferencia se crea en el proyecto predeterminado:

    bq mk --transfer_config \
    --target_dataset=mydataset \
    --display_name='My Transfer' \
    --params='{"bucket": "gdfp-12345678","network_code": "12345678"}' \
    --data_source=dfp_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.

    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.

    import com.google.api.gax.rpc.ApiException;
    import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
    import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
    import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
    import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
    import com.google.protobuf.Struct;
    import com.google.protobuf.Value;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    // Sample to create a ad manager(formerly DFP) transfer config
    public class CreateAdManagerTransfer {
    
      public static void main(String[] args) throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        final String projectId = "MY_PROJECT_ID";
        String datasetId = "MY_DATASET_ID";
        String bucket = "gs://cloud-sample-data";
        // the network_code can only be digits with length 1 to 15
        String networkCode = "12345678";
        Map<String, Value> params = new HashMap<>();
        params.put("bucket", Value.newBuilder().setStringValue(bucket).build());
        params.put("network_code", Value.newBuilder().setStringValue(networkCode).build());
        TransferConfig transferConfig =
            TransferConfig.newBuilder()
                .setDestinationDatasetId(datasetId)
                .setDisplayName("Your Ad Manager Config Name")
                .setDataSourceId("dfp_dt")
                .setParams(Struct.newBuilder().putAllFields(params).build())
                .build();
        createAdManagerTransfer(projectId, transferConfig);
      }
    
      public static void createAdManagerTransfer(String projectId, TransferConfig transferConfig)
          throws IOException {
        try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
          ProjectName parent = ProjectName.of(projectId);
          CreateTransferConfigRequest request =
              CreateTransferConfigRequest.newBuilder()
                  .setParent(parent.toString())
                  .setTransferConfig(transferConfig)
                  .build();
          TransferConfig config = client.createTransferConfig(request);
          System.out.println("Ad manager transfer created successfully :" + config.getName());
        } catch (ApiException ex) {
          System.out.print("Ad manager transfer was not created." + ex.toString());
        }
      }
    }

    Soluciona problemas de configuración de transferencia de Google Ad Manager

    Si tienes problemas con la configuración de tu transferencia, consulta la sección sobre cómo solucionar problemas de transferencia de Google Ad Manager en la página acerca de cómo solucionar problemas de configuración de la transferencia.

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

    Puedes usar las siguientes consultas de muestra de Google Ad Manager 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 Ad Manager con BigQuery. Si tienes preguntas adicionales sobre lo que puedes hacer con estos informes, comunícate con tu representante técnico de Google Ad Manager.

    En cada una de las siguientes consultas, reemplaza variables como dataset por tus valores. Por ejemplo, reemplaza network_code por tu código de red de Google Ad Manager.

    Impresiones y usuarios únicos por ciudad

    La siguiente consulta de muestra en SQL analiza el número de impresiones y usuarios únicos por ciudad en los últimos 30 días.

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      City,
      _DATA_DATE AS Date,
      count(*) AS imps,
      count(distinct UserId) AS uniq_users
    FROM `dataset.NetworkImpressionsnetwork_code`
    WHERE
      _DATA_DATE BETWEEN start_date AND end_date
    GROUP BY City, Date
    

    Impresiones y usuarios únicos por tipo de elemento de una sola línea

    La siguiente consulta de muestra en SQL analiza el número de impresiones y usuarios únicos por tipo de elemento de una sola línea en los últimos 30 días.

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      MT.LineItemType AS LineItemType,
      DT._DATA_DATE AS Date,
      count(*) AS imps,
      count(distinct UserId) AS uniq_users
    FROM `dataset.NetworkImpressionsnetwork_code` AS DT
    LEFT JOIN `dataset.MatchTableLineItem_network_code` AS MT
    ON
      DT.LineItemId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN start_date AND end_date
    GROUP BY LineItemType, Date
    ORDER BY Date desc, imps desc
    

    Impresiones por bloque de anuncios

    La siguiente consulta de muestra en SQL analiza el número de impresiones por bloque de anuncios en los últimos 30 días.

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      MT.AdUnitCode AS AdUnitCode,
      DT.DATA_DATE AS Date,
      count(*) AS imps
    FROM `dataset.NetworkImpressionsnetwork_code` AS DT
    LEFT JOIN `dataset.MatchTableLineItem_network_code` AS MT
    ON
      DT.AdUnitId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN start_date AND end_date
    GROUP BY AdUnitCode, Date
    ORDER BY Date desc, imps desc
    

    Impresiones por elemento de una sola línea

    La siguiente consulta de muestra en SQL analiza el número de impresiones por elemento de una sola línea en los últimos 30 días.

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      MT.Name AS LineItemName,
      DT._DATA_DATE AS Date,
      count(*) AS imps
    FROM `dataset.NetworkImpressionsnetwork_code` AS DT
    LEFT JOIN `dataset.MatchTableLineItem_network_code` AS MT
    ON
      DT.LineItemId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN start_date AND end_date
    GROUP BY LineItemName, Date
    ORDER BY Date desc, imps desc