与 Meta 集成
本页介绍了将 Meta(Facebook 和 Instagram 广告)数据作为 Cortex Framework Data Foundation 营销工作负载的数据源所需的配置。
Meta 是一家科技公司,拥有多个热门在线平台。 Cortex Framework 可集成来自 Instagram 和 Facebook 的广告数据,以便进行分析、与其他数据源相结合,并使用 AI 获得更深入的数据洞见,从而优化您的营销策略。
下图介绍了如何通过 Cortex Framework Data Foundation 的营销工作负载获取 Meta 营销数据:

配置文件
config.json 文件用于配置连接到数据源所需的设置,以便从各种工作负载转移数据。此文件包含以下 Meta 参数:
"marketing": {
"deployMeta": true,
"Meta": {
"deployCDC": true,
"datasets": {
"cdc": "",
"raw": "",
"reporting": "REPORTING_Meta"
}
}
}
下表介绍了每个营销参数的值:
| 参数 | 含义 | 默认值 | 说明 |
marketing.deployMeta
|
部署 Meta | true
|
执行 Meta 数据源的部署。 |
marketing.Meta.deployCDC
|
为 Meta 部署 CDC 脚本 | true
|
生成 Meta CDC 处理脚本,以在 Managed Airflow 中作为 DAG 运行。 |
marketing.Meta.datasets.cdc
|
Meta 的 CDC 数据集 | Meta 的 CDC 数据集。 | |
marketing.Meta.datasets.raw
|
Meta 的原始数据集 | Meta 的原始数据集。 | |
marketing.Meta.datasets.reporting
|
Meta 的报告数据集 | "REPORTING_Meta"
|
Meta 的报告数据集。 |
数据模型
本部分使用实体关系图 (ERD) 介绍了 Meta 的数据模型。
基本视图
这些是 ERD 中的蓝色对象,是 CDC 表的视图,通过最少的转换来解封复杂的数据结构。请参阅 src/marketing/src/Meta/src/reporting/ddls 中的脚本。
报告数据视图
这些是 ERD 中的绿色对象,属于包含汇总指标的报告视图。请参阅 src/marketing/src/Meta/src/reporting/ddls 中的脚本。
API 连接
Cortex Framework for Meta 中的提取模板使用 Meta Marketing API 来检索报告属性和指标。当前模板使用版本 v25.0。
在查询 Marketing API 时,Meta 会施加动态速率限制。达到速率限制后,Source to Raw 提取 DAG 可能无法成功完成。 在这种情况下,您可以在日志中看到相关错误消息,并且 DAG 的下一次执行会追溯性地加载所有缺失的数据。
Meta Marketing API 有两个访问权限层级:基本和标准。标准层级提供的限制要高得多,如果您计划广泛使用“来源到原始数据”提取,建议使用此层级。如需详细了解这些限制以及如何获得更高级别的访问权限,请参阅 Meta 的文档。
如果您拥有标准层级访问权限,可以降低 src/Meta/src/raw/pipelines/config.ini 中 next_request_delay_sec 设置的值,以缩短加载时间。
API 访问权限和访问令牌
若要成功将 Meta 中的数据导入 Cortex Framework,您需要在 Meta Business Manager 和开发者控制台中执行以下步骤。
- 确定要使用的应用。您可以创建与商家账号相关联的新应用。确保您的应用属于
Business类型。 - 设置应用权限。您必须先被分配为应用的管理员,然后才能使用该应用创建令牌。请参阅应用角色文档。 确保您已为应用分配相关资产(账号)。
创建访问令牌。访问 Meta Marketing API 需要访问令牌,并且访问令牌始终与应用和用户相关联。您可以使用系统用户或自己的登录信息创建令牌。
按照 Managed Airflow 文档中的说明在 Managed Airflow 中启用 Secret Manager。然后,创建一个名为
cortex_meta_access_token的 Secret,并将您在上一步中生成的令牌存储为内容。
数据新鲜度和延迟
一般来说,Cortex Framework 数据源的数据新鲜度受上游连接允许的范围以及 DAG 执行频率的限制。调整 DAG 执行频率,使其与上游频率、资源限制和业务需求保持一致。
借助 Meta Marketing API,大多数数据(转化数据除外)都可以近乎实时地获取,不过这些数据可能会在事件发生后 28 天内进行调整。
Managed Service for Apache Airflow 连接权限
在 Managed Airflow 中创建以下连接。如需了解详情,请参阅管理 Airflow 连接文档。
| 连接名称 | 目的 |
meta_raw_dataflow
|
对于 Meta Marketing API > BigQuery 原始数据集 |
meta_cdc_bq
|
对于原始数据集 > CDC 数据集转移 |
meta_reporting_bq
|
对于 CDC 数据集 > 报告数据集转移 |
Managed Airflow 服务账号权限
向 Managed Airflow 中使用的服务账号(如 meta_raw_dataflow 连接中所配置)授予 Dataflow 权限。请参阅 Dataflow 文档中的说明。服务账号还需要具有 Secret Manager Secret Accessor 权限。如需了解详情,请参阅访问权限控制文档。
请求参数
目录 src/Meta/config/request_parameters 包含从 Meta Marketing API 中提取的每个实体的 API 请求规范文件。每个请求文件都包含一个要从 Meta Marketing API 中提取的字段列表,每行一个字段。如需了解详情,请参阅 Meta Marketing API 参考文档。
内容提取设置
通过文件 src/Meta/config/ingestion_settings.yaml 中的设置控制 Source to Raw 和 Raw to CDC 数据流水线。
本部分介绍了每个数据流水线的参数。
从来源到原始表的转换
此部分包含用于控制 API 提取哪些实体以及如何提取实体的条目。每个条目都对应一个 Meta Marketing API 实体。根据此配置,Cortex Framework 会创建 Airflow DAG,这些 DAG 会运行 Dataflow 流水线,以使用 Meta Marketing API 获取数据。
文件 src/Meta/src/raw/pipelines/config.ini 控制着 Managed Airflow DAG 的某些行为,以及 Meta Marketing API 的使用方式。
您可以在该文件中找到每个参数的说明。
以下参数可控制每个条目的 Source to Raw 的设置:
| 参数 | 说明 |
base_table
|
用于存储所提取数据的原始数据集中的表(例如,customer)。
|
load_frequency
|
相应 DAG 运行以从 Meta 获取数据的频率。如需详细了解可能的值,请参阅 Airflow 文档。 |
object_endpoint
|
API 端点路径(例如,/{account_id}/campaigns 端点的 campaigns)。
|
entity_type
|
表类型(应为 fact、dimension 或 addaccount) 之一)。
|
object_id_column
|
构成相应表的唯一记录的列(以英文逗号分隔)。仅在 entity_type 为 fact 时为必需。
|
breakdowns
|
可选:用于分析洞见端点的细分列(以英文逗号分隔)。仅在 entity_type 为 fact 时适用。
|
action_breakdowns
|
可选:用于分析洞见端点的操作细分列(以英文逗号分隔)。仅在 entity_type 为 fact 时适用。
|
partition_details
|
可选:如果您希望对该表进行分区以提高性能。如需了解详情,请参阅表分区。 |
cluster_details
|
可选:如果您希望出于性能考虑而对该表进行聚类。如需了解详情,请参阅集群设置。 |
从原始表到 CDC 表
本部分介绍了用于控制如何将数据从原始表移至 CDC 表的条目。每个条目都对应一个原始表(该表又对应于上述 Meta API 实体)。
以下参数可控制每个条目的 Raw to CDC 的设置:
| 参数 | 说明 |
base_table
|
已复制原始数据的表。CDC 数据集中具有相同名称的表存储 CDC 转换后的原始数据(例如 campaign_insights)。
|
row_identifiers
|
构成相应表的唯一记录的列(以英文逗号分隔)。 |
load_frequency
|
相应实体的 DAG 运行以填充 CDC 表的频率。如需详细了解可能的值,请参阅 Airflow 文档。 |
partition_details
|
可选:如果您希望对该表进行分区以提高性能。如需了解详情,请参阅表分区。 |
cluster_details
|
可选:如果您希望出于性能考虑而对该表进行聚类。如需了解详情,请参阅集群设置。 |
CDC 表架构
对于 Meta,所有字段都以字符串格式存储在原始层中。在 CDC 层中,原始类型会转换为相关的商家数据类型,所有复杂类型都会以 BigQuery JSON 格式存储。
为了实现此转换,目录 src/Meta/config/table_schema 包含 raw_to_cdc_tables 部分中指定的每个实体的一个架构文件,用于说明如何将每个 BigQuery 原始表正确转换为 CDC 表。
每个架构文件包含三列:
SourceField:相应实体的原始表的字段名称。TargetField:相应实体的 CDC 表中的列名称。DataType:每个 CDC 表字段的数据类型。
报告设置
您可以使用报告设置文件 (src/Meta/config/reporting_settings.yaml) 配置和控制 Cortex 如何为 Meta 最终报告层生成数据。此文件控制报告层 BigQuery 对象(表、视图、函数或存储过程)的生成方式。
如需了解详情,请参阅自定义报告设置文件。
接下来怎么做?
- 如需详细了解其他数据源和工作负载,请参阅数据源和工作负载。
- 如需详细了解生产环境中的部署步骤,请参阅 Cortex Framework Data Foundation 部署前提条件。
