AI Cost 事件
X-BytePower-DeviceInfo
X-BytePower-DeviceInfo 是 AI 接口专用的 HTTP 请求 Header,用于携带设备标识和扩展数据。所有 AI 相关的 Client 端(/bp/ai/...)和 Server 端(/bp/server/user/{user_id}/ai/...)接口均支持该 Header。
编码规则
Header 值的编码流程:
- 构造 JSON 对象
- JSON 序列化(UTF-8)
- Base64 编码(标准编码)
Python 示例:
python
import json, base64
device_info = {
"extra_info": "my_custom_data",
"idfv": "xxxx-xxxx",
}
raw = json.dumps(device_info, separators=(',', ':'), ensure_ascii=False).encode('utf-8')
headers['X-BytePower-DeviceInfo'] = base64.b64encode(raw).decode('utf-8')支持的字段
| 字段 | JSON Key | 说明 |
|---|---|---|
| AppsFlyer ID | appsflyer_id | AppsFlyer 标识 |
| App Instance ID | app_instance_id | 应用实例 ID |
| CUID | cuid | 用户标识 |
| User ID | user_id | 用户 ID |
| IDFA | idfa | iOS 广告标识 |
| IDFV | idfv | iOS 供应商标识 |
| GAID | gaid | Google 广告 ID |
| UUID | uuid | 通用唯一标识 |
| OAID | oaid | 匿名设备标识 |
| IMEI | imei | 设备 IMEI |
| Extra Info | extra_info | 自定义扩展信息 |
所有字段均为 string 类型,均可按需选填。
数据流转
同步接口
请求时通过 Header 传入,服务端解析后直接随 ai_cost 事件上报。
客户端 → X-BytePower-DeviceInfo Header → 服务端解析 → ai_cost 事件上报异步接口
请求时通过 Header 传入,服务端将设备信息持久化到 ai_request 记录中。当异步任务完成(Webhook 回调)时,从数据库恢复设备信息,再随 ai_cost 事件上报。
客户端 → Header → 存入 ai_request → Webhook 回调 → 从 DB 恢复 → ai_cost 事件上报extra_info 字段
extra_info 是 X-BytePower-DeviceInfo 中的一个字段,最终会作为 ai_cost 事件的扩展数据上报,用于携带客户端自定义的业务信息。
特性:
- 类型为 string,服务端不做任何解析,原样透传至事件系统
- 如需传递结构化数据(如 JSON),需自行序列化为字符串后传入
传递 JSON 示例:
python
device_info = {
"extra_info": json.dumps({"source": "gallery", "version": 2}),
}