使用转化 API 发送线下事件

转化 API 是 Meta 推荐的集成方法,用于将线下事件和实体店铺事件发送到 Meta,以用于广告衡量、归因分析和定位。本页面详细介绍如何通过转化 API 直接集成或合作伙伴集成发送线下事件。

前提条件

数据集

通过转化 API 发送的线下事件必须与某个数据集关联。

Datasets allow advertisers to connect and manage event data from web, app, store and business messaging event sources to the Conversions API. Datasets may show event data from any of these integrations that you choose to set up:

  • Meta Pixel (website events)
  • App Events API (app events, including Facebook SDK for iOS or Android, mobile measurement partners (MMPs))
  • Offline Conversions API (Meta’s legacy API for offline events)
  • Messaging Events API (messaging events)

Datasets enable you to view all customer activities from a single interface. They also allow you to reduce the effort to build and maintain multiple API integrations.

In Events Manager, advertisers have different options to create a dataset depending on their starting point. Or you can create a brand new dataset in Events Manager by linking during offline event set creation or through an existing mobile app or during messaging event set creation information. Note that linking a dataset to an application is required before sending mobile app events to the Conversions API and only one application can be linked to a dataset. See more details and instructions here.

您可以向 https://graph.facebook.com/v16.0/{ads-pixel-id}/?fields=is_consolidated_container 发出 GET 调用,以检测广告主的数据集是否经过整合,以及是否符合使用转化 API 发送线下事件的条件。

权限

  • 如要以广告主的身份实现直接集成,请按照此处说明操作,了解各项前提条件和权限。

  • 如要在合作伙伴平台实现集成,请按照此处说明操作,了解各项前提条件和权限。

配置

1. 设置线下事件参数

广告主可以使用这里提到的设置,并使用当前可通过转化 API 发送的系列参数。如要发送线下事件和店铺事件,可以在有效负载中分享以下字段:

  • 对于所有线下事件和店铺事件,广告主在发送时需要将 action_sourcephysical_store。请注意,这个参数对于所有服务器事件类型而言均为必要项。使用转化 API,即表示您同意:据您所知,action_source 参数准确无误。
  • 必须按照要求提供转化 API 的所有必要服务器事件字段
  • 客户信息参数(请参阅下文,了解线下事件和店铺事件的相应参数列表)。
  • 自定义数据参数(请参阅下文,了解线下事件和店铺事件的相应参数列表)。
  • 可选参数:如果广告主使用旧版 API 发送线下事件,仍可以使用 upload_tag 参数上传线下事件。

客户信息参数

以下列表包含通常用于线下事件和店铺事件的客户信息参数:

参数名称 参数 是否必须进行散列处理

邮箱

email

手机号

phone

性别

gen

出生日期

db

姓氏

ln

名字

fn

城市

ct

美国的州

st

邮编

zip

国家/地区

country

Apple 广告标识符

madid

Android 广告编号

madid

第三方用户编号

external_id

强烈建议进行散列处理

线索广告的潜在客户编号

lead_id

无需进行散列处理

自定义数据参数

以下部分包含线下事件和店铺事件使用的常用自定义参数。如需使用更多自定义数据字段,请点击此链接,了解我们支持为转化 API 使用的字段的完整清单。

参数描述

event_time

类型:整数

必要

转化事件的 UNIX 时间戳。


示例:
'1456870055'


event_name
类型:字符串

必要

事件类型。


示例:
ViewContent, Search, AddToCart, AddToWishlist, InitiateCheckout, AddPaymentInfo, Purchase, Lead, Other


currency
类型:字符串

必要

以三个字母表示的此转化事件的 ISO 货币代码。对于 Purchase 事件,此参数为必要项。


示例
USD


value
类型:双精度浮点数

必要

转化事件的值。对于 Purchase 事件,此参数为必要项。


示例:
16.00


content_type 类型:字符串

可选

任何有效的进阶赋能型目录广告content_type


示例:
product


contents

类型:JSON 数组

可选。如果您要集成广告与目录,此参数为必要项。

必要项:idquantity


推荐项:pricebrandcategory

必要项:[ {id: "A", quantity: 1}, {id: "B", quantity: 2}, {id: "C", quantity: 1}]


推荐项:[ {id: "A", quantity: 1, brand: "Brand_A", category: "", price: 10.0}]


custom_data

类型:JSON 字典

可选

关于此转化事件的信息。

示例:{category: 'ICECREAM'}


order_id

类型:字符串

可选

线下事件集中每笔交易或每个订单的独立标识符。例如,对零售而言,这可以是收据编号。

示例:ATN10001123456


item_number

类型:字符串

可选

用于区分同一订单或交易中的事件的独立标识符。

示例:1a



2. 发送事件

如要发送新事件,请通过以下路径向转化 API 发出 POST 请求:https://graph.facebook.com/{API_VERSION}/{DATASET_ID}/events?access_token={TOKEN}

在您向此连线发出 POST 请求后,Meta 会新建线下事件和店铺事件。详情请参阅此开发者文档

下图简要介绍了各参数如何融入有效负载的整体架构中:

curl -X POST \
  -F 'data=[
       {
  "event_name": "Purchase",
  "event_time": 1674000041,
  "user_data": {
    "em": [
      "309a0a5c3e211326ae75ca18196d301a9bdbd1a882a4d2569511033da23f0abd"
    ],
    "ph": [
      "254aa248acb47dd654ca3ea53f48c2c26d641d23d7e2e93a1ec56258df7674c4",
      "6f4fcb9deaeadc8f9746ae76d97ce1239e98b404efe5da3ee0b7149740f89ad6"
    ]
  },
  "custom_data": {
    "currency": "usd",
    "value": 123.45,
    "contents": [{
      "id": "product123",
      "quantity": 1
    }]
  },
  "action_source": "physical_store"
}
]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v15.0/<DATASET_ID>/events

我们建议实时或每天上传,以获得最佳优化结果,从而有效匹配线下数据与您正在投放的任何广告的效果。

event_time 最长可比您向 Meta 发送事件的时间早 7 天。如果 data 中的任何 event_time 早于 7 天前,我们会为整个请求返回错误消息,而且不会处理任何事件。对于线下事件和实体店铺事件(action_sourcephysical_store),您应该在转化后的 62 天内上传发生的事件。

系统会实时处理您上传的数据,因此通常情况下,在您上传数据后即可查看结果。您可以参考帮助中心关于线下事件数据最佳实践的文档。

3. 设置去重

转化 API 事件和 Meta Pixel 像素代码事件之间的去重设置不同,线下事件只能针对其他线下事件进行去重。我们支持两种去重方法:基于 order_id 的方法或基于 user 方法。去重使用以下字段的组合:dataset_idevent_timeevent_nameitem_number 以及基于给定事件有效负载中方法的关键字段。

默认情况下,系统会将 order_id 与上述字段的组合搭配使用来实现去重。如果有效负载中没有 order_id,系统将使用基于 user 的去重逻辑。

例如,如果两个订单具有相同的 event_time,并且这些订单的 event_name 具有相同的 order_id 或具有相同的一组客户信息参数但没有 order_id,我们会将这些订单视为重复事件并采用第一个事件。基于 user 的去重方法仅适用于两个有效负载中具有相同客户信息参数的情况。

去重时间期限最长为 7 天。

4. 解决事件问题

您可以使用有效负载设置助手工具来生成有效负载数据:

  • 在适用情况下,选择 physical_store 操作来源。使用转化 API,即表示您同意:据您所知,action_source 参数准确无误。
  • 填写要发送到 Meta 的事件的相关信息
  • 这将生成事件有效负载,该有效负载可用作用于与转化 API 集成的模板

使用事件管理工具中的测试事件工具进行测试。请注意,测试事件工具仅支持网页事件和应用事件。