Transferencias de Google Ads

El Servicio de transferencia de datos de BigQuery para 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 Compatibilidad
Versión de la API compatible

v16

Programa

Diaria, en el momento en que se crea por primera vez la transferencia (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

No limit

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 Configura un reabastecimiento.

Número de IDs 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.

Limitaciones

  • La frecuencia máxima para la que puedes configurar una transferencia 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 Google Ads, haz lo siguiente:

Permisos necesarios

Asegúrate de que la persona que crea la transferencia tenga los siguientes permisos requeridos:

  • Servicio de transferencia de datos de 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 Referencia del control de acceso.

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

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 sección Tipo de fuente (Source type), en Fuente (Source), elige Google Ads.

  5. 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 si es necesario hacerle modificaciones más tarde.

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

  7. En la sección Configuración de destino, en Conjunto de datos, selecciona el conjunto de datos que creaste para almacenar tus datos.

  8. En la sección Detalles de fuente de datos (Data source details):

    1. En ID de cliente, ingresa tu ID de cliente de Google Ads:

      Detalles de la fuente de Google Ads

    2. Opcional: Selecciona opciones para excluir los elementos quitados o desactivados y, también, incluir tablas nuevas en Google Ads.

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

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

    5. Opcional: En Período de actualización, ingresa un valor entre 1 y 30.

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

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

      Notificaciones de Google Ads

  11. 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. 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).
  • --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
--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 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ámetro customer_id. De manera opcional, puedes configurar el parámetro exclude_removed_items como true 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.
  • 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 Google Ads llamada My Transfer mediante el ID del cliente 123-123-1234 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='{"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.

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 ads(formerly AdWords) transfer config
public class CreateAdsTransfer {

  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";
    // the customer_id only allows digits and hyphen ('-').
    String customerId = "012-345-6789";
    String refreshWindow = "100";
    Map<String, Value> params = new HashMap<>();
    params.put("customer_id", Value.newBuilder().setStringValue(customerId).build());
    params.put("refreshWindow", Value.newBuilder().setStringValue(refreshWindow).build());
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setDestinationDatasetId(datasetId)
            .setDisplayName("Your Ads Transfer Config Name")
            .setDataSourceId("adwords")
            .setParams(Struct.newBuilder().putAllFields(params).build())
            .build();
    createAdsTransfer(projectId, transferConfig);
  }

  public static void createAdsTransfer(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("Ads transfer created successfully :" + config.getName());
    } catch (ApiException ex) {
      System.out.print("Ads transfer was not created." + ex.toString());
    }
  }
}

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
  • Budget
  • Campaña
  • CampaignAudience
  • CampaignCriterion
  • CampaignLabel
  • Cliente
  • Gender
  • Keyword
  • LocationBasedCampaignCriterion
  • ParentalStatus
  • Placement
  • 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 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

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 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 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 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 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 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, 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 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 automáticamente, debes usar la pseudocolumna _PARTITIONTIME en tu consulta. Para obtener más información, ve a la sección Consulta tablas particionadas.

Rendimiento de campañas

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.

Consola

  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'