# 服务器端追踪（Conversions API）说明

> BCL如何从自己的服务器把购买发送到Meta、TikTok和Google Analytics，发送哪些事件，以及什么时候发送。
>
> Source: https://docs.bcl.my/zh/conversion-api/

服务器端追踪的意思是，BCL的服务器直接把购买告诉Meta、TikTok或Google Analytics，而不是只靠顾客浏览器里的Pixel。即使顾客使用广告拦截器、在App内置浏览器付款，或在收据加载前关闭页面，它仍然有效。

## 各平台支持什么

每个平台的服务器端追踪在不同的地方设置：

| 平台 | 服务器端功能 | 在哪里开启 |
| --- | --- | --- |
| **Meta (Facebook)** | Conversions API | 每个表单：**Advanced** → **Facebook Pixel** → **Enable Facebook Conversions API** |
| **TikTok** | Events API | 每个表单：**Advanced** → **TikTok Pixel** → **Enable TikTok Events API** |
| **Google Analytics 4** | Measurement Protocol | 为账号设置一次：**Platform Setup** → **Integrations** → **Google** |
| **Google Ads** | 没有 | 只有浏览器端，在表单的**Google Ads**标签页设置 |

付款链接有自己的**Enable Facebook API**和**Enable TikTok API**开关，在**Platform Setup** → **Link Configuration** → **Pixel Settings**下。

*(Screenshot: Enable Facebook Conversions API已开启，token栏位已标示)*

*(Screenshot: Enable TikTok Events API已开启，token栏位已标示)*

## BCL发送哪些事件

浏览器里的Pixel发送访问和结账事件。购买事件可以来自浏览器，也可以来自BCL的服务器：

| 平台 | 表单打开时 | 顾客点击付款时 | 订单付款后 |
| --- | --- | --- | --- |
| **Meta** | PageView、ViewContent | InitiateCheckout（lead表单上是Lead） | Purchase |
| **TikTok** | Pageview、ViewContent | InitiateCheckout（lead表单上是SubmitForm） | CompletePayment |
| **Google Analytics 4** | page_view | begin_checkout（lead表单上是generate_lead） | purchase（只有服务器端） |
| **Google Ads** | page_view、view_item | begin_checkout | conversion（只有浏览器端） |

服务器端的购买事件会包含订单号码、金额、货币和表单名称。为了帮助平台把这笔销售对应到广告点击，BCL还会加上顾客的电邮、手机号码和名字（已哈希处理，无法读取）、IP地址和浏览器，以及表单访问时的追踪cookie（例如Meta的fbp和fbc、TikTok的ttp和Google的_ga）。

## 购买什么时候发送

每笔订单在每个平台只发送一次购买：

1. **在线付款成功**。Bayarcash一确认付款，BCL的服务器就在后台发送购买（如果出错，最多重试3次）。如果收据页面先打开，就由浏览器Pixel发送。先发送的那一个会被记录，另一个会被跳过。
2. **COD和手动银行转账**。订单会保持待处理，直到你确认收到付款。只有开启**Trigger Purchase Event on Pending**，Meta和TikTok才会在下单时收到购买；否则要等你把订单标为已付才收到（只从服务器端发送，所以必须开启Conversions API或Events API）。Google Ads总是在下单时计算。Google Analytics 4只在订单已付时计算。
3. **付款失败或取消**。不会发送任何事件。

## 如何开启

先设置Pixel，再添加服务器端的token：

1. Meta：按照[为表单添加Meta（Facebook）Pixel](/zh/facebook-pixel/)操作，并添加你的**Facebook Conversions API Token**。
2. TikTok：按照[为表单添加TikTok Pixel](/zh/tiktok-pixel/)操作，并添加你的**TikTok Events API Token**。
3. Google Analytics 4：按照[在Google Analytics 4追踪购买](/zh/google-analytics/)操作，并添加你的**Measurement Protocol API secrets**值。

## 小贴士

几个做法，让你充分利用服务器端追踪：

- **查看Method列**。在**Tools** → **Marketing Logs**，每笔购买都显示**Browser**或**Server**。Server那一行还会在**Response Payload**下显示平台的回复，让你看到错误，例如token已过期。请看[Marketing Pixel Logs](/zh/marketing-pixel-logs/)。
- **用TEST_CODE测试，然后清除它**。把Meta或TikTok的测试事件代码粘贴到**Facebook TEST_CODE**或**TikTok TEST_CODE**，就能在平台的测试工具里看到服务器事件。之后记得清除它，就像栏位下方的警告所说。
- **affiliate可以使用自己的token**。affiliate可以在他们的affiliate仪表板，为你的表单添加自己的Meta或TikTok Pixel和token（请看[分享你的affiliate链接](/zh/affiliate-promotion-links/)）。BCL会另外为他们发送一次购买，仅限他们推荐的成功销售。

## 常见问题

### 开启Conversions API后，还需要Pixel吗？

需要。Conversions API是在Pixel设置里开启的，Pixel仍然负责追踪访问和结账。API只是多加一个服务器端的Purchase。

### Meta会不会把购买算两次，浏览器一次，服务器一次？

不会。BCL每笔订单只发送一次Purchase，看哪一边先到，而且两边使用同一个事件ID，让Meta可以配对。

### 已经安装了Pixel，为什么Meta或TikTok还是少了购买？

广告拦截器、App内置浏览器，以及在收据加载前就关闭页面的顾客，都会让浏览器Pixel发送不了。服务器端追踪在这些情况下也会从BCL发送购买。
