Cargar datos de Facebook Ads en BigQuery
Puede cargar datos de Facebook Ads en BigQuery mediante el conector BigQuery Data Transfer Service para Facebook Ads. Con BigQuery Data Transfer Service, puedes programar tareas de transferencia periódicas que añadan los datos más recientes de Facebook Ads a BigQuery.
Descripción general de los conectores
BigQuery Data Transfer Service para el conector de Facebook Ads admite las siguientes opciones para la transferencia de datos.
| Opciones de transferencia de datos | Asistencia |
|---|---|
| Informes admitidos |
BigQuery Data Transfer Service para Facebook Ads admite la transferencia de los siguientes informes de Facebook Ads:
Para obtener información sobre cómo se transforman los informes de anuncios de Facebook en tablas y vistas de BigQuery, consulte el artículo Transformación de informes de anuncios de Facebook. |
| Frecuencia de repetición | El conector de anuncios de Facebook admite transferencias de datos diarias. De forma predeterminada, las transferencias de datos se programan en el momento en que se crean. Puedes configurar la hora de la transferencia de datos cuando configures la transferencia de datos. |
| Ventana de actualización | El conector de anuncios de Facebook obtiene datos de anuncios de Facebook de hasta 30 días en el momento en que se ejecuta la transferencia de datos. No puede configurar la ventana de actualización de este conector.
Para obtener más información, consulta Actualizar ventanas. |
| Disponibilidad de los datos de reposición | Ejecuta un rellenado automático de datos para recuperar datos que no estén incluidos en la transferencia de datos programada. Puedes recuperar datos de hace tanto tiempo como permita la política de conservación de datos de tu fuente de datos. |
Limitaciones
Las transferencias de datos de anuncios de Facebook están sujetas a las siguientes limitaciones:
- El intervalo mínimo entre transferencias de datos recurrentes de anuncios de Facebook es de 24 horas. El intervalo predeterminado de una transferencia de datos periódica es de 24 horas.
- BigQuery Data Transfer Service para Facebook Ads solo admite un conjunto fijo de tablas. No se admiten informes personalizados.
- Las transferencias de datos de Anuncios de Facebook tienen una duración máxima de seis horas. Una transferencia falla si tarda más de lo que indica esta duración máxima.
- No se admiten las transferencias incrementales de las tablas
AdInsightsyAdInsightsActions. Cuando crea una transferencia de datos que incluye las tablasAdInsightsyAdInsightsActions, y especifica una fecha en Opciones de programación, se transfieren todos los datos disponibles para esa fecha. - BigQuery Data Transfer Service admite una ventana de actualización de hasta 30 días para las tablas
AdInsightsyAdInsightsActions. La ventana de actualización es el número de días durante los que una transferencia de datos recuperará datos de origen. Cuando ejecutas una transferencia de datos por primera vez, esta recupera todos los datos de origen disponibles en la ventana de actualización. El token de acceso de usuario de larga duración que se necesita para las transferencias de anuncios de Facebook caduca al cabo de 60 días.
Si tu token de acceso de usuario de larga duración ha caducado, puedes obtener uno nuevo. Para ello, ve a los detalles de la transferencia de datos y haz clic en Editar. En la página de edición de la transferencia, sigue los mismos pasos que se indican en la sección Requisitos previos de los anuncios de Facebook para generar un nuevo token de acceso de usuario de larga duración.
Si la conexión de red configurada y la instancia de máquina virtual (VM) se encuentran en regiones diferentes, puede que haya movimiento de datos entre regiones al transferir datos de Anuncios de Facebook.
Ingestión de datos de transferencias de Facebook Ads
Cuando transfieres datos de Anuncios de Facebook a BigQuery, los datos se cargan en tablas de BigQuery que están 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 programa varias transferencias para la misma fecha, BigQuery Data Transfer Service sobrescribirá la partición de esa fecha con los datos más recientes. Si se realizan varias transferencias el mismo día o se ejecutan rellenados, no se duplicarán los datos y las particiones de otras fechas no se verán afectadas.En el caso de las tablas AdInsights y AdInsightsActions, la partición de la tabla en la que se cargan los datos corresponde a la fecha de la fuente de datos.
En el caso de las tablas AdAccounts, las instantáneas se hacen una vez al día y se almacenan en la partición de la fecha de la última ejecución de la transferencia. La ventana de actualización no se aplica a la tabla AdAccounts.
Actualizar ventanas
Una ventana de actualización es el número de días durante los que una transferencia de datos recupera datos cuando se produce una transferencia de datos. Por ejemplo, si la ventana de actualización es de tres días y se produce una transferencia diaria, BigQuery Data Transfer Service recupera todos los datos de la tabla de origen de los últimos tres días. En este ejemplo, cuando se produce una transferencia diaria, BigQuery Data Transfer Service crea una partición de tabla de destino de BigQuery con una copia de los datos de la tabla de origen del día actual y, a continuación, activa automáticamente ejecuciones de relleno para actualizar las particiones de tabla de destino de BigQuery con los datos de la tabla de origen de los dos días anteriores. Las ejecuciones de relleno automático sobrescribirán o actualizarán de forma incremental tu tabla de destino de BigQuery, en función de si el conector de BigQuery Data Transfer Service admite o no las actualizaciones incrementales.
Cuando ejecutas una transferencia de datos por primera vez, esta recupera todos los datos de origen disponibles en la ventana de actualización. Por ejemplo, si la ventana de actualización es de tres días y ejecutas la transferencia de datos por primera vez, BigQuery Data Transfer Service recuperará todos los datos de origen en un plazo de tres días.
Para recuperar datos fuera del periodo de actualización, como el historial de datos, o para recuperar datos de interrupciones o brechas de transferencia, puedes iniciar o programar una reposición.
Antes de empezar
En las siguientes secciones se describen los pasos que debes seguir antes de crear una transferencia de datos de anuncios de Facebook.
Requisitos previos de Facebook Ads
Asegúrate de tener la siguiente información de anuncios de Facebook cuando crees una transferencia de datos de anuncios de Facebook.
| Parámetros de Facebook Ads | Descripción |
|---|---|
clientID |
El nombre del ID de aplicación del cliente de OAuth 2.0. |
clientSecret |
El secreto de la aplicación del 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 aplicación de desarrollador de Facebook
con el tipo de aplicación
Business. - En el panel de control de la aplicación de Facebook, haz clic en Configuración de la aplicación > Básico y busca el ID y el secreto de la aplicación.
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 Google Cloud consola, sigue los pasos para crear una transferencia de Facebook Ads.
En la sección Detalles de la fuente de datos, copie el URI de redirección que aparece después del campo Token de actualización.
Haga clic en el panel de control de la aplicación de Facebook y, a continuación, en Configurar en la sección Inicio de sesión de Facebook para empresas.
En la página Configuración, introduce la URL de redirección en el campo URIs de redirección de OAuth válidos y haz clic en Guardar.
Vuelve a la consola de Google Cloud . En la sección Detalles de la fuente de datos, haga clic en Autorizar. Se te redirigirá a una página de autenticación de Facebook.
Selecciona la aplicación de desarrollador de Facebook para autorizar la cuenta que se conecta con BigQuery Data Transfer Service.
Cuando hayas terminado, haz clic en Entendido para volver a la consola de Google Cloud . El token de acceso de usuario de larga duración ahora se incluye en la configuración de transferencia.
Los tokens de acceso de usuario de larga duración caducan a los 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 al token de actualización
También puede proporcionar un token de actualización al crear una transferencia de datos si ha obtenido uno mediante uno de los siguientes métodos:
- Genera un token de acceso de usuario de larga duración con la API Graph.
Los permisos
ads_management,ads_readybusiness_managementson necesarios para obtener un token válido para la transferencia de datos. - Genera un token de usuario del sistema. Un token de usuario del sistema te permite añadir manualmente recursos, como cuentas publicitarias, para que se incluyan en la transferencia de datos. Si un token de usuario del sistema ha caducado, debes actualizar manualmente la configuración de la transferencia con las nuevas credenciales. También tienes la opción de crear un token que no caduque cuando crees un token de usuario del sistema. Para obtener más información, consulta Tokens de acceso admitidos.
Requisitos previos de BigQuery
- Comprueba que has completado todas las acciones necesarias para habilitar BigQuery Data Transfer Service.
- Crea un conjunto de datos de BigQuery para almacenar tus datos.
- Si quieres configurar notificaciones de ejecuciones de transferencias para Pub/Sub, asegúrate de que tienes el permiso de
pubsub.topics.setIamPolicyGestión de Identidades y Accesos (IAM). Si solo configuras las notificaciones por correo electrónico, no se necesitan permisos de Pub/Sub. Para obtener más información, consulta el artículo sobre las notificaciones de ejecución de BigQuery Data Transfer Service.
Roles de BigQuery necesarios
Para obtener los permisos que necesitas para crear una transferencia de datos de BigQuery Data Transfer Service,
pide a tu administrador que te asigne el rol de gestión de identidades y accesos Administrador de BigQuery (roles/bigquery.admin) en tu proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para crear una transferencia de datos de BigQuery Data Transfer Service. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para crear una transferencia de datos de BigQuery Data Transfer Service, se necesitan los siguientes permisos:
-
Permisos de BigQuery Data Transfer Service:
-
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 u otros roles predefinidos.
Para obtener más información, consulta Conceder acceso a bigquery.admin.
Crear una transferencia de datos de anuncios de Facebook
Selecciona una de las opciones siguientes:
Consola
Ve a la página Transferencias de datos de la Google Cloud consola.
Haz clic en Crear transferencia.
En la sección Tipo de fuente, en Fuente, selecciona Anuncios de Facebook.
En la sección Detalles de la fuente de datos, haga lo siguiente:
- En ID de cliente, introduce el ID de la aplicación.
- En Secreto de cliente, introduce el secreto de la aplicación.
- En Token de actualización, introduce el ID del token de acceso de usuario de larga duración haciendo clic en Autorizar. Si ya tienes un token de actualización o un token de usuario del sistema, puedes introducirlo directamente en este campo. Para obtener información sobre cómo obtener un token de acceso de usuario de larga duración, consulta los requisitos previos de los anuncios de Facebook.
- Para transferir objetos de anuncios de Facebook, especifica los informes u objetos de anuncios de Facebook que quieras incluir en esta transferencia.
- Seleccione Obtener datos solo de cuentas publicitarias autorizadas para obtener datos solo de las cuentas publicitarias que tengan autorización para acceder a su aplicación de Facebook. Puede consultar las cuentas publicitarias autorizadas en Configuración de la aplicación > Avanzada y en la sección Cuentas publicitarias.
- En ActionsCollections, especifique una o varias colecciones de acciones.
- En Desgloses genéricos, seleccione los desgloses genéricos de sus datos de estadísticas. Estos desgloses determinan cómo se organizan los datos transferidos en las tablas
AdInsightsyAdInsightsActions. Anuncios de Facebook solo permite determinadas combinaciones de desgloses. Para obtener más información sobre las combinaciones de desgloses permitidas, consulta Combinar desgloses. - En Desglose de acciones, seleccione los desgloses de acciones de los datos de sus 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 Combinar desgloses. - En Periodo de actualización, especifica la duración del periodo de actualización.
En la sección Configuración de destino, en Conjunto de datos, seleccione el conjunto de datos que haya creado para almacenar sus datos.
En la sección Nombre de la configuración de transferencia, en Nombre visible, indica un nombre para la transferencia de datos.
En la sección Opciones de programación, haga lo siguiente:
- En la lista Frecuencia de repetición, selecciona una opción para especificar con qué frecuencia se ejecuta esta transferencia de datos. Para especificar una frecuencia de repetición personalizada, seleccione Personalizada. Si seleccionas Bajo demanda, la transferencia se realizará cuando la inicies manualmente.
- Si procede, selecciona Empezar ahora o Empezar a una hora determinada y proporciona una fecha de inicio y un tiempo de ejecución.
Opcional: En la sección Opciones de notificación, haz lo siguiente:
- Para habilitar las notificaciones por correo, haz clic en el interruptor Notificación por correo. Si habilitas esta opción, el administrador de las transferencias recibirá una notificación por correo cuando falle una ejecución de transferencia.
- Para habilitar las notificaciones de Pub/Sub sobre la transferencia de estos datos, haz clic en el interruptor 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, BigQuery Data Transfer Service rellena automáticamente las siguientes tablas.
| Nombre de la tabla | Descripción |
|---|---|
AdAccounts |
Las cuentas publicitarias disponibles para un usuario. |
AdInsights |
Informe de estadísticas de anuncios de todas las cuentas publicitarias. |
AdInsightsActions |
Informe de acciones de estadísticas de anuncios de todas las cuentas publicitarias. |
bq
Introduce el comando bq mk
y proporciona la marca de creación de transferencia
--transfer_config:
bq mk --transfer_config --project_id=PROJECT_ID --data_source=DATA_SOURCE --display_name=DISPLAY_NAME --target_dataset=DATASET --params='PARAMETERS'
Donde:
- PROJECT_ID (opcional): su ID de proyecto. Google Cloud
Si no se proporciona
--project_idpara especificar un proyecto concreto, se usará el proyecto predeterminado. - DATA_SOURCE: 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 si necesitas modificarla más adelante.
- DATASET: el conjunto de datos de destino de 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"}'. Estos son los parámetros de una transferencia de anuncios de Facebook:connector.authentication.oauth.clientId: nombre del ID de la aplicación del cliente de OAuth 2.0.connector.authentication.oauth.clientSecret: el secreto de la aplicación del cliente de OAuth 2.0.connector.authentication.oauth.refreshToken: el ID del token de larga duración.connector.authorizedAdAccountsOnly: Si se define comotrue, el conector solo recupera datos de las cuentas publicitarias que tienen autorización para acceder a tu aplicación de Facebook. Puedes encontrar tus cuentas publicitarias autorizadas en Configuración de la aplicación > Avanzada y en la sección Cuentas avanzadas.connector.actionCollections: las colecciones de acciones son objetos que especifican los diferentes tipos de acciones que han realizado los usuarios en respuesta a tu anuncio. Para ver 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 de los datos de tus estadísticas. Estos desgloses determinan cómo se organizan los datos transferidos en las tablasAdInsightsyAdInsightsActions. Anuncios de Facebook solo permite determinadas combinaciones de desgloses. Para obtener más información sobre las combinaciones de desgloses permitidas, consulta Combinar desgloses.actionBreakdowns: especifica los desgloses de acciones de los datos de tus estadísticas. Estos desgloses determinan cómo se organizan los datos transferidos en las tablasAdInsightsyAdInsightsActions. Para obtener información sobre cómo combinar desgloses, consulta Combinar desgloses.
Por ejemplo, el siguiente comando crea una transferencia de datos de anuncios de Facebook en el proyecto predeterminado con todos los parámetros obligatorios:
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 proporciona una instancia del recurso TransferConfig.
Para ejecutar manualmente una transferencia de datos fuera de tu programación habitual, puedes iniciar una ejecución de rellenado.
Para obtener información sobre cómo se asignan los datos transferidos a los campos de la API de Meta, consulta Transformación de informes de anuncios de Facebook.
Colecciones de acciones
Las colecciones de acciones son objetos que especifican los diferentes tipos de acciones que han realizado los usuarios en respuesta a tu anuncio. Puedes especificar colecciones de acciones al configurar la transferencia.
Las colecciones de acciones representan los campos del tipo list<AdsActionStats> que están presentes en la respuesta del endpoint Ad Account, Insights.
Cuando se completa una transferencia, estas colecciones de acciones se rellenan en la AdInsightsActionstabla.
A continuación, se muestra una lista de las colecciones de acciones admitidas en una transferencia de datos de anuncios de Facebook:
ActionValuesActionsAdClickActionsAdImpressionActionsCatalogSegmentActionsCatalogSegmentValueCatalogSegmentValueMobilePurchaseRoasCatalogSegmentValueOmniPurchaseRoasCatalogSegmentValueWebsitePurchaseRoasConversionValuesConversionsConvertedProductQuantityConvertedProductValueCostPer15_secVideoViewCostPer2SecContinuousVideoViewCostPerActionTypeCostPerAdClickCostPerConversionCostPerOneThousandAdImpressionCostPerOutboundClickCostPerThruplayCostPerUniqueActionTypeCostPerUniqueConversionCostPerUniqueOutboundClickInteractiveComponentTapMobileAppPurchaseRoasOutboundClicksOutboundClicksCtrPurchaseRoasUniqueActionsUniqueConversionsUniqueOutboundClicksUniqueOutboundClicksCtrUniqueVideoView15_secVideo15_secWatchedActionsVideo30_secWatchedActionsVideoAvgTimeWatchedActionsVideoContinuous2SecWatchedActionsVideoP100_watchedActionsVideoP25WatchedActionsVideoP50WatchedActionsVideoP75WatchedActionsVideoP95WatchedActionsVideoPlayActionsVideoPlayCurveActionsVideoPlayRetentionGraphActionsVideoTimeWatchedActionsWebsiteCtrWebsitePurchaseRoas
Combinar desgloses
Anuncios de Facebook tiene restricciones sobre qué columnas se pueden seleccionar juntas. Si se usan estas combinaciones restringidas, la transferencia de datos fallará.
Para obtener más información sobre qué desgloses se pueden combinar, consulta Combinar desgloses.
Solucionar problemas de configuración de transferencias
Si tienes problemas para configurar una transferencia de datos de anuncios de Facebook, prueba a seguir estos pasos:
- Comprueba si tu token de acceso de usuario ha caducado con el depurador de tokens de acceso de Facebook. Los tokens de acceso de usuario de larga duración caducan al cabo de 60 días. Si tu token de acceso de usuario de larga duración ha caducado, ve a los detalles de la transferencia y haz clic en Editar para modificar la configuración de la transferencia. En la página de edición de la transferencia, sigue los mismos pasos que se indican en la sección Requisitos previos de los anuncios de Facebook para generar uno nuevo.
Comprueba que el token de acceso de usuario de larga duración se haya generado con los permisos necesarios:
ads_management,ads_readybusiness_management. Puedes comprobar los permisos de tu token de acceso de usuario de larga duración introduciendo el siguiente enlace en tu navegador:https://graph.facebook.com/me/permissions?access_token=TOKEN
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 siguiendo los pasos que se indican en la sección Requisitos previos de Facebook Ads.
Consulta la pestaña Acciones necesarias del panel de control de la aplicación de Facebook para ver los elementos que requieren tu atención.
Es posible que aparezcan los siguientes mensajes de error relacionados con los 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. - Solución: Comprueba que no haya flujos de trabajo paralelos que usen las mismas aplicaciones o credenciales. Si estos errores persisten, prueba a actualizar tus permisos a Acceso avanzado para obtener más cuota de limitación de frecuencia. Para obtener más información, consulta Limitación de la frecuencia de la API Marketing.
Mensajes de métricas de monitorización habituales
También puede consultar las métricas de monitorización de BigQuery Data Transfer Service
para determinar la causa de un fallo en la transferencia de datos. En la siguiente tabla se enumeran algunos mensajes ERROR_CODE habituales para las transferencias de datos de anuncios de Facebook.
| Error | Descripción |
|---|---|
INVALID_ARGUMENT |
La configuración proporcionada no es válida. También puede aparecer 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, consulte Combinar desgloses. |
PERMISSION_DENIED |
Las credenciales no son válidas |
UNAUTHENTICATED |
Se requiere autenticación |
SERVICE_UNAVAILABLE |
El servicio no puede gestionar esta transferencia de datos temporalmente |
DEADLINE_EXCEEDED |
La transferencia de datos no ha finalizado en el plazo máximo de seis horas |
NOT_FOUND |
No se encuentra un recurso solicitado |
INTERNAL |
El conector ha fallado por otro motivo |
RESOURCE_EXHAUSTED |
Se ha alcanzado el límite o la cuota de una fuente de datos |
Precios
Para obtener información sobre los precios de las transferencias de anuncios de Facebook, consulta los precios de Data Transfer Service.
Siguientes pasos
- Más información sobre BigQuery Data Transfer Service
- Más información sobre cómo trabajar con transferencias, como ver las configuraciones y el historial de ejecuciones.
- Consulta cómo cargar datos con operaciones entre nubes.