AI-ready documentation
事件回调
说明如何配置事件回调,在用户触发指定事件时将事件数据与归因信息发送至业务服务器。
一、功能概述
事件回调功能用于当用户在你的应用内触发指定事件时,系统自动将事件数据及用户归因信息回传到你配置的服务器地址。
适用场景
- 实时获取用户行为事件数据
- 与自有 BI/数据系统进行打通
- 基于事件数据进行二次营销或分析
二、配置步骤
1. 开启事件回调开关
在后台应用管理页面找到事件回调配置模块,打开开关以启用功能。
2. 选择回调事件
在回调事件下拉框中,选择需要监听的事件类型(如激活、付费等)。
3. 配置回调地址
注意:请确保该地址为可公网访问的域名,且服务稳定。
在回调地址输入框中,填写你的服务端接收数据的 URL。
4. 配置回调参数(可选)
点击新增按钮,添加回调宏参数
系统会将这些参数追加到回调请求中,方便你在服务端进行识别。
| 参数类型 | 说明 | 示例 |
|---|---|---|
| 自定义参数 | 你自己定义的参数名 | turbo_app_id |
| 宏参数 | 系统预置宏参数变量,如引力 APPID | 引力 APPID |
5. 设置请求方式
回调方法:固定为 POST
6. 设置超时与重试
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 超时时长 | 2000 毫秒 | 服务端需在此时限内响应,否则视为超时 |
| 重试次数 | 1 次 | 请求失败后会自动重试的次数 |
三、签名生成
引力在触发事件回调时,会携带签名参数,您可以考虑校验该值来避免接口被滥用,计算签名的步骤如下:
import json
import hashlib
def get_sign(params: dict , access_token: str) -> str:
"""
@param params: 请求体参数
@param access_token: 引力 App 的 access_token(该参数在应用管理界面可以获取)
"""
param_list = []
for k, v in params.items():
if k == "sign":
continue
param_list.append(f"{k}={json.dumps(v,sort_keys=True)}")
param_list.sort()
sb = "&".join(param_list) + access_token
current_str = sb.replace("\"", "").replace(" ", "")
return hashlib.md5(current_str.encode("utf-8")).hexdigest()四、回调数据结构说明
当事件触发后,引力服务端会以 POST 方式向你配置的回调地址发送以下 JSON 格式数据:
请求体格式
{
"app_id": "your_app_id",
"client_id": "your_client_id",
"sign": "8bf4b8a9abadab70009b3f84cdd14eba",
"events": [
{
"event": "eventname",
"time": 1779439377000,
"properties": {}
}
],
"callback_params": {
"key1": "value1",
"key2": "value2"
}
}字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
app_id | string | 引力平台分配的应用 ID |
client_id | string | 客户唯一标识 ID |
sign | string | 签名,生成规则参考上方的签名生成 |
events | array | 事件列表,可同时包含多个事件 |
events[].event | string | 事件名称(如 $UserAttribution、$PayEvent) |
events[].time | number | 事件发生时的毫秒级时间戳(Unix timestamp) |
events[].properties | object | 事件的事件属性,根据事件类型动态变化 |
callback_params | object | 你在配置界面添加的宏参数和自定义参数 |
五、接入示例
回调请求示例
curl -X POST 'https://your-server.com/callback' \
-H 'Content-Type: application/json' \
-d '{
"app_id": "your_app_id",
"client_id": "your_client_id",
"sign": "8bf4b8a9abadab70009b3f84cdd14eba",
"events": [
{
"event": "eventname",
"time": 1779439377000,
"properties": {}
}
],
"callback_params": {
"key1": "value1",
"key2": "value2"
}
}'服务端响应要求
您的服务端收到回调后,应在超时时间内返回 HTTP 200 状态码,且响应结果为 JSON 格式 {"code":0},表示回调成功。若返回非 200 状态码、响应结果不是 JSON 格式,或请求超时,系统将按照配置的重试次数进行重试。