跳到主要内容
当前模块归因
AI-ready documentation

事件回调

说明如何配置事件回调,在用户触发指定事件时将事件数据与归因信息发送至业务服务器。

查看 Markdown

一、功能概述

事件回调功能用于当用户在你的应用内触发指定事件时,系统自动将事件数据及用户归因信息回传到你配置的服务器地址。

适用场景

  • 实时获取用户行为事件数据
  • 与自有 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_idstring引力平台分配的应用 ID
client_idstring客户唯一标识 ID
signstring签名,生成规则参考上方的签名生成
eventsarray事件列表,可同时包含多个事件
events[].eventstring事件名称(如 $UserAttribution$PayEvent
events[].timenumber事件发生时的毫秒级时间戳(Unix timestamp)
events[].propertiesobject事件的事件属性,根据事件类型动态变化
callback_paramsobject你在配置界面添加的宏参数和自定义参数

五、接入示例

回调请求示例

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 格式,或请求超时,系统将按照配置的重试次数进行重试。

本页内容