Carga datos de anuncios de Facebook en BigQuery
Para programar transferencias de datos recurrentes de Facebook Ads a
BigQuery, crea una configuración de transferencia para especificar qué objetos de datos
se transferirán y con qué frecuencia se programará la transferencia de datos. Puedes crear
una configuración de transferencia con la consola de Google Cloud , la herramienta de línea de comandos de bq
o la API del Servicio de transferencia de datos de BigQuery. Una vez que hayas establecido la
configuración de transferencia,
el Servicio de transferencia de datos de BigQuery
transferirá los datos más recientes a una tabla de BigQuery según el programa
especificado.
Para obtener información sobre cómo funciona una transferencia de datos de anuncios de Facebook, consulta Introducción a las transferencias de datos de anuncios de Facebook.
Limitaciones
Las transferencias de datos de Facebook Ads están sujetas a las siguientes limitaciones:
- A partir del 6 de julio de 2026, se inhabilitará temporalmente la compatibilidad con el informe
AdInsightsMMM. Para obtener más información, consulta el 6 de julio de 2026. - El tiempo de intervalo mínimo entre las transferencias de datos recurrentes de Facebook Ads es 24 horas. El intervalo predeterminado para una transferencia de datos recurrente es de 24 horas.
- El Servicio de transferencia de datos de BigQuery para Facebook Ads solo admite un conjunto fijo de tablas. No se admiten los informes personalizados.
- Las transferencias de datos de Facebook Ads tienen una duración máxima de seis horas. Una transferencia falla si lleva más de esta duración máxima.
- Las transferencias incrementales no son compatibles con las tablas
AdInsights,AdInsightsActions,Ads,CampaignsyAdSets. Cuando creas una transferencia de datos que incluye las tablasAdInsights,AdInsightsActions,Ads,CampaignsyAdSets, y especificaste una fecha en Opciones de programación, se transfieren todos los datos disponibles para esa fecha. - El Servicio de transferencia de datos de BigQuery admite una ventana de actualización de hasta 30 días para las tablas
AdInsights,AdInsightsActions,Ads,CampaignsyAdSets. El período de actualización se refiere a la cantidad de días a partir de los cuales una transferencia de datos recuperará los datos de origen. 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. El token de acceso de usuario de larga duración que se requiere para las transferencias de Facebook Ads vence después de 60 días.
Si tu token de acceso de usuario de larga duración está vencido, puedes obtener el nuevo; para ello, ve a los detalles de la transferencia de datos y haz clic en Editar. En la página para editar la transferencia, sigue los mismos pasos en Requisitos previos de Facebook Ads para generar un token de acceso de usuario de larga duración nuevo.
Para usar un adjunto de red con esta transferencia de datos, primero debes crear un adjunto de red definiendo una dirección IP estática.
- Si tu adjunto de red se creó en un proyecto de Google Cloud que es
diferente del proyecto de Google Cloud de la transferencia de datos, debes
otorgar los permisos
compute.networkAttachments.getycompute.networkAttachments.updateal agente de servicio que pertenece al proyecto de Google Cloud en el que se creó la transferencia de datos. Si el adjunto de red y la instancia de máquina virtual (VM) que configuraste se encuentran en regiones diferentes, es posible que haya un movimiento de datos entre regiones cuando transfieras datos de Facebook Ads.
Antes de comenzar
En las siguientes secciones, se describen los pasos que debes seguir antes de crear una transferencia de datos de Facebook Ads.
Requisitos previos de Facebook Ads
Asegúrate de tener la siguiente información de Facebook Ads cuando crees una transferencia de datos de Facebook Ads.
| Parámetros de Facebook Ads | Descripción |
|---|---|
clientID |
El nombre del ID de la app para el cliente de OAuth 2.0. |
clientSecret |
El secreto de la app para el cliente de OAuth 2.0. |
refreshToken |
El token de acceso de usuario de larga duración, también conocido como token de actualización. |
Para obtener un clientID y un clientSecret, sigue estos pasos:
- Crea una app para desarrolladores de Facebook con el tipo de app
Business. - En el panel de la app de Facebook, haz clic en Configuración de la app > Básico y busca el ID de la app y el secreto de la app que correspondan a la app.
Para obtener un token de acceso de usuario de larga duración, también conocido como token de actualización, sigue estos pasos:
En la consola de Google Cloud , continúa con los pasos para crear una transferencia de Facebook Ads.
En la sección Detalles de la fuente de datos, copia el URI de redireccionamiento que se muestra después del campo Token de actualización.
Haz clic en el panel de la app de Facebook y, luego, en Configurar en la sección Acceso con Facebook para empresas.
En la página Configuración, ingresa la URL de redireccionamiento en el campo URI de redireccionamiento de OAuth válidos y haz clic en Guardar.
Regresa a la Google Cloud consola. En la sección Detalles de la fuente de datos, haz clic en Autorizar. Se te redireccionará a la página de autenticación de Facebook.
Selecciona la app de desarrollador de Facebook para autorizar la cuenta que se conecta con el Servicio de transferencia de datos de BigQuery.
Cuando termines, haz clic en Entendido para volver a la consola de Google Cloud . El token de acceso de usuario de larga duración ahora se propaga en la configuración de transferencia.
Los tokens de acceso de usuario de larga duración vencen después de 60 días. Para obtener información sobre cómo obtener un nuevo token de acceso de usuario de larga duración, consulta Limitaciones.
Alternativas a los tokens de actualización
Como alternativa, puedes proporcionar un token de actualización cuando creas una transferencia de datos si obtuviste uno con uno de los siguientes métodos:
- Genera un token de acceso de usuario de larga duración con la API de Graph.
Se requieren los permisos
ads_management,ads_readybusiness_managementpara un token válido de la transferencia de datos. - Genera un token de usuario del sistema. Un token de usuario del sistema te permite agregar manualmente recursos, como cuentas publicitarias, para que se incluyan en la transferencia de datos. Si un token de usuario del sistema venció, debes actualizar de forma manual la configuración de transferencia con credenciales nuevas. También tienes la opción de crear un token que no venza cuando creas un token de usuario del sistema. Para obtener más información, consulta Tokens de acceso compatibles.
Requisitos previos de BigQuery
- 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 tus datos.
- Si quieres configurar las notificaciones de ejecución de transferencias para Pub/Sub, asegúrate de tener el permiso
pubsub.topics.setIamPolicyde Identity and Access Management (IAM). Si solo configuras las notificaciones por correo electrónico, no se necesitan los permisos de Pub/Sub. Para obtener más información, consulta la sección sobre notificaciones de ejecución del Servicio de transferencia de datos de BigQuery.
Roles de BigQuery requeridos
Para obtener los permisos que
necesitas para crear una transferencia de datos del Servicio de transferencia de datos de BigQuery,
pídele a tu administrador que te otorgue el
rol de IAM de administrador de BigQuery (roles/bigquery.admin) en tu proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para crear una transferencia de datos del Servicio de transferencia de datos de BigQuery. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear una transferencia de datos del Servicio de transferencia de datos de BigQuery:
-
Permisos del Servicio de transferencia de datos de BigQuery:
-
bigquery.transfers.update -
bigquery.transfers.get
-
-
Permisos de BigQuery:
-
bigquery.datasets.get -
bigquery.datasets.getIamPolicy -
bigquery.datasets.update -
bigquery.datasets.setIamPolicy -
bigquery.jobs.create
-
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Para obtener más información, consulta Otorga acceso a bigquery.admin.
Crea una transferencia de datos de Facebook 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, en Fuente, selecciona Facebook Ads.
En la sección Detalles de fuente de datos, haz lo siguiente:
- En Adjunto de red, selecciona un adjunto de red del menú. Antes de usar un adjunto de red con esta transferencia de datos, debes crear un adjunto de red definiendo una dirección IP estática.
- En ID de cliente, ingresa el ID de la app.
- En Secreto del cliente, ingresa el secreto de la app.
- En Token de actualización, ingresa el ID del token de acceso de usuario de larga duración. Para ello, haz clic en Autorizar. Como alternativa, si ya tienes un token de actualización o un token de usuario del sistema, puedes ingresar el token de actualización directamente en este campo. Para obtener información sobre cómo recuperar un token de acceso de usuario de larga duración, consulta Requisitos previos de Facebook Ads.
- En Objetos de Facebook Ads para transferir, especifica los informes u objetos de Facebook Ads que se incluirán en esta transferencia.
- Selecciona Recuperar datos de cuentas de anuncios autorizadas exclusivamente para recuperar datos solo de las cuentas publicitarias que están autorizadas para tu app de Facebook. Puedes encontrar tus cuentas publicitarias autorizadas en Configuración de la aplicación > Avanzada y en la sección Cuentas publicitarias.
- En ActionsCollections, especifica una o más colecciones de acciones.
- En Desgloses genéricos, selecciona los desgloses genéricos para tus datos de estadísticas. Estos desgloses determinan cómo se organizan tus datos transferidos en las tablas
AdInsightsyAdInsightsActions. Facebook Ads solo permite ciertas combinaciones de desgloses. Para obtener más información sobre las combinaciones de desgloses permitidas, consulta Cómo combinar desgloses. - En Desglose de acciones, selecciona los desgloses de acciones para los datos de tus estadísticas. Estos desgloses determinan cómo se organizan los datos transferidos en la tabla
AdInsightsActions. Para obtener información sobre cómo combinar desgloses, consulta Cómo combinar desgloses. - En Período de actualización, especifica una duración del período de actualizació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 Nombre de configuración de la transferencia (Transfer config name), en Nombre visible (Display name), ingresa el nombre de la transferencia de datos.
En la sección Opciones de programación, haz lo siguiente:
- En la lista Frecuencia de repetición, selecciona una opción para especificar la frecuencia con la que se ejecuta esta transferencia de datos. Para especificar una frecuencia de repetición personalizada, selecciona Personalizado. Si seleccionas Según demanda, esta transferencia se ejecuta cuando activas la transferencia de forma manual.
- Si corresponde, selecciona Comenzar ahora o Comenzar a la hora definida y detalla una fecha de inicio y una hora de ejecución.
Opcional: En la sección Opciones de notificación, haz lo siguiente:
- Para habilitar las notificaciones por correo electrónico, haz clic en el botón de activación Notificación 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.
- Si quieres habilitar las notificaciones de ejecución de transferencias de Pub/Sub para esta transferencia de datos, haz clic en el botón de activar Notificaciones de Pub/Sub. Puedes seleccionar el nombre del tema o hacer clic en Crear un tema para crear uno.
Haz clic en Guardar.
Cuando se ejecuta esta transferencia de datos, el Servicio de transferencia de datos de BigQuery propaga automáticamente las siguientes tablas.
| Nombre de la tabla | Descripción |
|---|---|
AdAccounts |
Son las cuentas de anuncios disponibles para un usuario. |
AdInsights |
Informe de estadísticas de anuncios para todas las cuentas de anuncios. |
AdInsightsActions |
Informe de acciones de estadísticas de anuncios para todas las cuentas de anuncios. |
AdInsightsMMM
|
Informe de Marketing Mix Modeling (MMM) de estadísticas de anuncios para todas las cuentas de anuncios. |
Ads |
Informes de anuncios para todas las cuentas de anuncios. |
AdCreatives |
Son los informes de creatividades de anuncios para todas las cuentas de anuncios. |
AdSets |
Informes de conjuntos de anuncios para todas las cuentas de anuncios. |
Campaigns |
Informes de campañas para todas las cuentas de anuncios. |
AdImages |
Informes de imágenes de anuncios para todas las cuentas de anuncios. |
AdLabels |
Informes de etiquetas de anuncios para todas las cuentas de anuncios. |
Businesses |
Son las cuentas de Meta para empresas asociadas con el usuario. |
CustomAudiences |
Informes de públicos personalizados para todas las cuentas de anuncios. |
bq
Ingresa el comando bq mk y suministra la marca de creación de transferencias --transfer_config.
bq mk --transfer_config --project_id=PROJECT_ID --data_source=DATA_SOURCE --display_name=DISPLAY_NAME --target_dataset=DATASET --params='PARAMETERS'
Aquí:
- PROJECT_ID (opcional): Es el ID del proyecto de Google Cloud .
Si no se proporciona
--project_idpara especificar un proyecto en particular, se usa el proyecto predeterminado. - DATA_SOURCE: es la fuente de datos (por ejemplo,
facebook-ads). - DISPLAY_NAME: el nombre visible de la configuración de transferencia de datos. El nombre de la transferencia puede ser cualquier valor que te permita identificarla con facilidad si es necesario hacerle modificaciones más tarde.
- DATASET: Es el conjunto de datos de destino para la configuración de transferencia de datos.
- PARAMETERS: los parámetros de la configuración de transferencia de datos creada en formato JSON. Por ejemplo:
--params='{"param":"param_value"}'Los siguientes son los parámetros para una transferencia de Facebook Ads:connector.authentication.oauth.clientId: El nombre del ID de la app para el cliente de OAuth 2.0.connector.authentication.oauth.clientSecret: El secreto de la app para el cliente de OAuth 2.0.connector.authentication.oauth.refreshToken: El ID del token de larga duración.connector.authorizedAdAccountsOnly: Si se establece entrue, el conector solo recupera datos de las cuentas publicitarias que están autorizadas para tu app de Facebook. Puedes encontrar tus cuentas publicitarias autorizadas en Configuración de la app > Avanzada y en la sección Cuentas avanzadas.connector.actionCollections: Las colecciones de acciones son objetos que especifican los diferentes tipos de acciones que las personas realizaron en respuesta a tu anuncio. Para obtener una lista completa de los valores deactionCollections, consulta Colecciones de acciones.- Para obtener más información, consulta Estadísticas de anuncios.
connector.genericBreakdowns: Especifica los desgloses genéricos para tus datos de estadísticas. Estos desgloses determinan cómo se organizan tus datos transferidos en las tablasAdInsightsyAdInsightsActions. Facebook Ads solo permite ciertas combinaciones de desgloses. Para obtener más información sobre las combinaciones de desgloses permitidas, consulta Cómo combinar desgloses.actionBreakdowns: Especifica los desgloses de acciones para los datos de tus estadísticas. Estos desgloses determinan cómo se organizan tus datos transferidos en las tablasAdInsightsyAdInsightsActions. Para obtener información sobre cómo combinar desgloses, consulta Cómo combinar desgloses.connector.insightsLevel: Es el nivel de agregación para recuperar datos de estadísticas (p.ej., anuncio, conjunto de anuncios, campaña o cuenta).connector.insightsTimeIncrement: Es la cantidad de días en los que se agruparán los datos de estadísticas agregados (entre 1 y 7).- Nota: El intervalo de la ventana elegido no solo se aplica a las tablas de estadísticas (
AdInsightsyAdInsightsActions), sino que también filtra las tablasAds,CampaignsyAdSetscon el parámetrotime_rangede Facebook.
Por ejemplo, el siguiente comando crea una transferencia de datos de Facebook Ads en el proyecto predeterminado con todos los parámetros requeridos:
bq mk --transfer_config --target_dataset=mydataset --data_source=facebook_ads --display_name='My Transfer' --params='{"connector.authentication.oauth.clientId": "1650000000", "connector.authentication.oauth.clientSecret":"TBA99550", "connector.authentication.oauth.refreshToken":"abcdef", "connector.authorizedAdAccountsOnly":true, "connector.actionCollections":["Actions", "Conversions"], "connector.genericBreakdowns":["PublisherPlatform", "PlatformPosition"], "connector.actionBreakdowns":["ActionDevice", "ActionType"]}'
API
Usa el método projects.locations.transferConfigs.create y suministra una instancia del recurso TransferConfig.
Para ejecutar de forma manual una transferencia de datos fuera de tu programa habitual, puedes iniciar una ejecución de reabastecimiento.
Para obtener información sobre cómo se asignan tus datos transferidos a los campos de la API de Meta, consulta Transformación de informes de Facebook Ads.
Colecciones de acción
Las colecciones de acciones son objetos que especifican los diferentes tipos de acciones que las personas realizaron en respuesta a tu anuncio. Puedes especificar colecciones de acciones cuando estableces tu configuración de transferencia.
Las colecciones de acciones representan los campos del
tipo list<AdsActionStats>
que están presentes en la respuesta del extremo Ad Account, Insights.
Cuando se completa una transferencia, estas colecciones de acciones se propagan en la tabla AdInsightsActions.
A continuación, se muestra una lista de las colecciones de acciones compatibles con una transferencia de datos de Facebook Ads:
ActionValuesActionsAdClickActionsAdImpressionActionsCatalogSegmentActionsCatalogSegmentValueCatalogSegmentValueMobilePurchaseRoasCatalogSegmentValueOmniPurchaseRoasCatalogSegmentValueWebsitePurchaseRoasConversionValuesConversionsConvertedProductQuantityConvertedProductValueCostPer15_secVideoViewCostPer2SecContinuousVideoViewCostPerActionTypeCostPerAdClickCostPerConversionCostPerOneThousandAdImpressionCostPerOutboundClickCostPerThruplayCostPerUniqueActionTypeCostPerUniqueConversionCostPerUniqueOutboundClickInteractiveComponentTapMobileAppPurchaseRoasOutboundClicksOutboundClicksCtrPurchaseRoasUniqueActionsUniqueConversionsUniqueOutboundClicksUniqueOutboundClicksCtrUniqueVideoView15_secVideo15_secWatchedActionsVideo30_secWatchedActionsVideoAvgTimeWatchedActionsVideoContinuous2SecWatchedActionsVideoP100_watchedActionsVideoP25WatchedActionsVideoP50WatchedActionsVideoP75WatchedActionsVideoP95WatchedActionsVideoPlayActionsVideoPlayCurveActionsVideoPlayRetentionGraphActionsVideoTimeWatchedActionsWebsiteCtrWebsitePurchaseRoas
Cómo combinar desgloses
Facebook Ads tiene restricciones sobre qué columnas se pueden seleccionar juntas. El uso de estas combinaciones restringidas hará que falle la transferencia de datos.
Para obtener más información sobre qué desgloses se pueden combinar, consulta Cómo combinar desgloses.
Soluciona problemas de configuración de transferencia
Si tienes problemas para configurar una transferencia de datos de Facebook Ads, prueba los siguientes pasos para solucionar problemas:
- Comprueba si el token de acceso del usuario venció con el depurador de tokens de acceso de Facebook. Los tokens de acceso de usuario de larga duración vencen después de 60 días. Si tu token de acceso de larga duración venció, navega a los detalles de tu transferencia y, luego, haz clic en Editar para modificar la configuración de tu transferencia. En la página para editar la transferencia, sigue los mismos pasos en Requisitos previos de Facebook Ads para generar uno nuevo.
Comprueba que el token de acceso de larga duración se genere con los permisos requeridos:
ads_management,ads_readybusiness_management. Puedes verificar los permisos de tu token de acceso de usuario de larga duración ingresando el siguiente vínculo en tu navegador:https://graph.facebook.com/me/permissions?access_token=TOKEN
Donde TOKEN es el valor del token de acceso de usuario de larga duración.
Si no tienes los permisos necesarios, genera un token de acceso de usuario de larga duración nuevo siguiendo los pasos que se indican en Requisitos previos de Facebook Ads.
Revisa la pestaña Acciones requeridas en el panel de la app de Facebook para cualquier elemento que requiera atención.
Es posible que veas los siguientes mensajes de error relacionados con errores de límite de frecuencia de la API de Meta:
- Error:
There have been too many calls from this ad-account. Wait a bit and try again. - Resolución: Verifica que no haya flujos de trabajo paralelos que usen las mismas apps o credenciales. Si estos errores persisten, intenta actualizar tus permisos a Acceso avanzado para obtener más cuota de límite de frecuencia. Para obtener más información, consulta Límite de frecuencia de la API de Marketing.
Mensajes comunes de métricas de supervisión
También puedes verificar las métricas de supervisión del Servicio de transferencia de datos de BigQuery para determinar la causa de una falla de transferencia de datos. En la siguiente tabla, se mencionan algunos mensajes ERROR_CODE comunes para las transferencias de datos de Facebook Ads.
| Error | Descripción |
|---|---|
INVALID_ARGUMENT |
La configuración proporcionada no es válida. También puedes encontrar este error con el mensaje This combination of action and generic breakdowns is not allowed.. Para obtener información sobre las combinaciones de desgloses válidas, consulta Cómo combinar desgloses. |
PERMISSION_DENIED |
Las credenciales no son válidas |
UNAUTHENTICATED |
Se requiere autenticación |
SERVICE_UNAVAILABLE |
El servicio no puede controlar esta transferencia de datos temporalmente |
DEADLINE_EXCEEDED |
La transferencia de datos no finalizó en el plazo máximo de seis horas |
NOT_FOUND |
No se encontró un recurso solicitado |
INTERNAL |
Otro motivo causó que el conector fallara |
FAILED_PRECONDITION | Este error puede aparecer
con el mensaje There was an issue connecting to
Facebook Ads API.. Puede ocurrir cuando incluyes un
adjunto de red
con tu transferencia, pero no configuraste correctamente la traducción de direcciones de red (NAT)
pública. Para resolver este error, sigue los pasos para
crear el adjunto de red definiendo una dirección IP
estática.Este error también puede aparecer debido a la limitación de frecuencia. En estos casos, haz lo siguiente:
|
RESOURCE_EXHAUSTED |
Se agotó una cuota o un límite de la fuente de datos |
¿Qué sigue?
- Obtén más información acerca del Servicio de transferencia de datos de BigQuery.
- Obtén más información sobre cómo trabajar con transferencias, como la visualización de configuraciones y el historial de ejecución.
- Obtén información para cargar datos con las operaciones de BigQuery Omni.