Integración con Meta

En esta página, se describen las configuraciones necesarias para incorporar datos de Meta (Facebook e Instagram Ads) como fuente de datos de la carga de trabajo de marketing de la Fundación de datos de Framework de Cortex.

Meta es una empresa de tecnología que posee varias plataformas en línea populares. Cortex Framework integra datos de anuncios de Instagram y Facebook para analizarlos, combinarlos con otras fuentes de datos y usar la IA para obtener estadísticas más detalladas y optimizar tu estrategia de marketing.

En el siguiente diagrama, se describe cómo los datos de marketing de Meta están disponibles a través de la carga de trabajo de marketing de Cortex Framework Data Foundation:

Fuente de metadatos

Figura 1. Fuente de datos de metamarketing.

Archivo de configuración

El archivo config.json configura los parámetros necesarios para conectarse a fuentes de datos y transferir datos desde varias cargas de trabajo. Este archivo contiene los siguientes parámetros para Meta:

   "marketing": {
        "deployMeta": true,
        "Meta": {
            "deployCDC": true,
            "datasets": {
                "cdc": "",
                "raw": "",
                "reporting": "REPORTING_Meta"
            }
        }
    }

En la siguiente tabla, se describe el valor de cada parámetro de marketing:

Parámetro Significado Valor predeterminado Descripción
marketing.deployMeta Meta de implementación true Ejecuta la implementación para la fuente de datos de Meta.
marketing.Meta.deployCDC Implementa secuencias de comandos de CDC para Meta true Genera secuencias de comandos de procesamiento de Meta CDC para ejecutarlas como DAG en Cloud Composer.
marketing.Meta.datasets.cdc Conjunto de datos de CDC para Meta Conjunto de datos de CDC para Meta
marketing.Meta.datasets.raw Conjunto de datos sin procesar para Meta Conjunto de datos sin procesar de Meta
marketing.Meta.datasets.reporting Conjunto de datos de informes para Meta "REPORTING_Meta" Conjunto de datos de informes de Meta.

Modelo de datos

En esta sección, se describe el modelo de datos de Meta con el diagrama de relaciones de entidades (ERD).

Diagrama de relaciones de entidades para Meta

Figura 2: Meta: Diagrama de relaciones de entidades.

Vistas básicas

Estos son los objetos azules del ERE y son vistas en tablas de CDC con transformaciones mínimas para descomprimir estructuras de datos complejas. Consulta las secuencias de comandos en src/marketing/src/Meta/src/reporting/ddls.

Vistas de informes

Estos son los objetos verdes del ERE y son vistas de informes que contienen métricas agregadas. Consulta las secuencias de comandos en src/marketing/src/Meta/src/reporting/ddls.

Conexión a la API

Las plantillas de transferencia de Cortex Framework para Meta usan la API de Meta Marketing para recuperar atributos y métricas de informes. Las plantillas actuales usan la versión v21.0.

Meta impone un límite de frecuencia dinámico cuando se consulta la API de Marketing. Cuando se alcanza el límite de frecuencia, es posible que los DAG de transferencia de datos de origen a sin procesar no se completen correctamente. En esos casos, puedes ver mensajes de error relevantes en el registro, y la siguiente ejecución de los DAG cargaría de forma retroactiva los datos faltantes.

La API de Meta Marketing tiene dos niveles de acceso: básico y estándar. El nivel estándar ofrece un límite mucho más alto y se recomienda si planeas usar la transferencia de fuente a sin procesar de forma extensa. Para obtener más detalles sobre estos límites y cómo obtener un nivel de acceso más alto, consulta la documentación de Meta.

Si tienes acceso al nivel estándar, puedes disminuir el valor del parámetro de configuración next_request_delay_sec en src/Meta/src/raw/pipelines/config.ini para obtener tiempos de carga más rápidos.

Acceso a la API y token de acceso

Los siguientes pasos son obligatorios en el Administrador de Negocio de Meta y en Play Console para transferir datos de Meta a Cortex Framework de forma correcta.

  1. Identifica una app para usar. Puedes crear una app nueva que esté conectada a la cuenta de la empresa. Asegúrate de que tu app sea del tipo Business.
  2. Configura los permisos de la app. Debes ser asignado a la app como administrador para poder crear tokens con ella. Consulta la documentación sobre los roles de las apps. Asegúrate de asignar los recursos (cuentas) relevantes a tu app.
  3. Crea un token de acceso. Los tokens de acceso son necesarios para acceder a la API de Meta Marketing y siempre se asocian con una app y un usuario. Puedes crear el token con un usuario del sistema o con tu propio acceso.

    1. Crea un usuario del sistema de administrador.
    2. Genera un token. Asegúrate de anotar el token en cuanto se genere, ya que no podrás volver a recuperarlo una vez que salgas de la página.
    3. Otorga los permisos ads_read y business_management a tu token para acceder a los objetos compatibles.
  4. Sigue la documentación de Cloud Composer para habilitar Secret Manager en Cloud Composer. Luego, crea un secreto llamado cortex_meta_access_token y almacena el token que generaste en el paso anterior como contenido.

Actualización y demora de los datos

Como regla general, la actualización de los datos de las fuentes de datos de Cortex Framework se limita a lo que permite la conexión upstream, así como a la frecuencia de la ejecución de tu DAG. Ajusta la frecuencia de ejecución de tu DAG para alinearla con la frecuencia upstream, las restricciones de recursos y las necesidades de tu empresa.

Con la API de Meta Marketing, la mayoría de los datos (excepto las conversiones) están disponibles casi en tiempo real, aunque se pueden ajustar hasta 28 días después del evento.

Permisos de conexiones de Cloud Composer

Crea las siguientes conexiones en Cloud Composer. Consulta más detalles en la documentación para administrar conexiones de Airflow.

Nombre de la conexión Purpose
meta_raw_dataflow Para la API de Meta Marketing > BigQuery Raw Dataset
meta_cdc_bq Para Conjunto de datos sin procesar > Transferencia de conjuntos de datos de CDC
meta_reporting_bq Para el conjunto de datos de los CDC > Transferencia de conjuntos de datos de informes

Permisos de la cuenta de servicio de Cloud Composer

Otorga permisos de Dataflow a la cuenta de servicio que se usa en Cloud Composer (como se configuró en la conexión meta_raw_dataflow). Consulta las instrucciones en la documentación de Dataflow. La cuenta de servicio también requiere el permiso Secret Manager Secret Accessor. Consulta los detalles en la documentación de control de acceso.

parámetros de solicitud

El directorio src/Meta/config/request_parameters contiene un archivo de especificación de solicitud de API para cada entidad que se extrae de la API de Meta Marketing. Cada archivo de solicitud contiene una lista de campos para recuperar de la API de Meta Marketing, un campo por fila. Obtén más información en la Referencia de la API de Meta Marketing.

Configuración de transferencia

Controla las canalizaciones de datos Source to Raw y Raw to CDC a través de la configuración del archivo src/Meta/config/ingestion_settings.yaml. En esta sección, se describen los parámetros de cada canalización de datos.

De fuente a tablas sin procesar

Esta sección tiene entradas que controlan qué entidades recuperan las APIs y cómo. Cada entrada corresponde a una entidad de la API de Meta Marketing. En función de esta configuración, Cortex Framework crea DAG de Airflow que ejecutan canalizaciones de Dataflow para recuperar datos con las APIs de Meta Marketing.

El archivo src/Meta/src/raw/pipelines/config.ini controla algunos comportamientos del DAG de Cloud Composer y cómo se consumen las APIs de Meta Marketing. Busca descripciones para cada parámetro en el archivo.

Los siguientes parámetros controlan la configuración de Source to Raw para cada entrada:

Parámetro Descripción
base_table Es la tabla del conjunto de datos sin procesar en la que se almacenan los datos recuperados (por ejemplo, customer).
load_frequency La frecuencia con la que se ejecuta un DAG para recuperar datos de Meta Para obtener más información sobre los valores posibles, consulta la documentación de Airflow.
object_endpoint Es la ruta de acceso del extremo de la API (por ejemplo, campaigns para el extremo /{account_id}/campaigns).
entity_type Es el tipo de tabla (debe ser fact, dimension o addaccount)).
object_id_column Son las columnas (separadas por comas) que forman un registro único para esta tabla. Solo es obligatoria cuando entity_type es fact.
breakdowns Opcional: Columnas de desglose (separadas por comas) para los extremos de estadísticas Solo es aplicable cuando entity_type es fact.
action_breakdowns Opcional: Columnas de desglose de acciones (separadas por comas) para los extremos de estadísticas Solo es aplicable cuando entity_type es fact.
partition_details Opcional: Si deseas que esta tabla se particione por motivos de rendimiento. Para obtener más información, consulta Partición de tablas.
cluster_details Opcional: Si deseas que esta tabla se agrupe por motivos de rendimiento. Para obtener más información, consulta Configuración del clúster.

De tablas sin procesar a tablas de CDC

En esta sección, se describen las entradas que controlan cómo se mueven los datos de las tablas sin procesar a las tablas de CDC. Cada entrada corresponde a una tabla sin procesar (que, a su vez, corresponde a la entidad de la API de Meta, como se mencionó).

Los siguientes parámetros controlan la configuración de Raw to CDC para cada entrada:

Parámetro Descripción
base_table Es la tabla en la que se replicaron los datos sin procesar. Una tabla con el mismo nombre en el conjunto de datos de CDC almacena los datos sin procesar después de la transformación de CDC (por ejemplo, campaign_insights).
row_identifiers Son las columnas (separadas por comas) que forman un registro único para esta tabla.
load_frequency La frecuencia con la que se ejecuta un DAG para esta entidad para propagar la tabla de CDC Para obtener más información sobre los valores posibles, consulta la documentación de Airflow.
partition_details Opcional: Si deseas que esta tabla se particione por motivos de rendimiento. Para obtener más información, consulta Partición de tablas.
cluster_details Opcional: Si deseas que esta tabla se agrupe por motivos de rendimiento. Para obtener más información, consulta Configuración del clúster.

Esquema de la tabla de CDC

En el caso de Meta, todos los campos se almacenan en formato de cadena en la capa sin procesar. En la capa de CDC, los tipos primitivos se convierten en tipos de datos empresariales relevantes, y todos los tipos complejos se almacenan en formato JSON de BigQuery.

Para habilitar esta conversión, el directorio src/Meta/config/table_schema contiene un archivo de esquema para cada entidad especificada en la sección raw_to_cdc_tables que explica cómo traducir correctamente cada tabla de BigQueryraw a la tabla de CDC.

Cada archivo de esquema contiene tres columnas:

  • SourceField: Es el nombre del campo de la tabla sin procesar de esta entidad.
  • TargetField: Es el nombre de la columna en la tabla de CDC de esta entidad.
  • DataType: Es el tipo de datos de cada campo de la tabla de cdc.

Configuración de informes

Puedes configurar y controlar cómo Cortex genera datos para la capa de informes final de Meta con el archivo de configuración de informes (src/Meta/config/reporting_settings.yaml). Este archivo controla cómo se generan los objetos de BigQuery de la capa de informes (tablas, vistas, funciones o procedimientos almacenados).

Para obtener más información, consulta Cómo personalizar el archivo de configuración de informes.

Próximos pasos