上报事件
用户行为事件用于记录用户在什么时间,什么环境,做了什么行为,如何做的,为什么这么做等关键信息。
上报用户事件必须基于 EUID 进行创建
调用地址
POST /v1/event/report
调用验证
EngageLab REST API 采用 HTTP 基本认证 的验证方式:HTTP Header(头)里加 Authorization:
Authorization: Basic ${base64_auth_string}
上述 base64_auth_string 的生成算法为:base64(api_key:api_secret)
- Header 名称是 "Authorization",值是 base64 转换过的 "username:password" 对(中间有个冒号)。
- 在 MA API 的场景里,username 是 APIKey,password 是 APISecret。请在数据来源中添加 API 类型的数据源获得 APIKey 与 API Secret。
请求示例
请求头
> POST /v1/event/report
> Content-Type: application/json
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
请求体
{
"app_key": "96441e4d73207a6517abfbbc",//应用的 AppKey,选填
"data": [
{
"euid": 10000091198, //发生该行为事件的EUID
"event_name": "sign_up", //事件名称,项目中唯一标识事件的信息
"itime": 1654076420772, //事件发生的具体时间戳
"random_id": "5b102148-0d28-4a6a-8658-483f7d1c735e", //事件上报id。选填
"properties": {
"propertyA": "a", // 事件属性的字段名:属性值
"propertyB": 2
}
},
{
"euid": 10000091199,
"event_name": "login",
"itime": 1654076420235,
"properties": {
"propertyC": "a",
"propertyD": 3,
"propertyJ": "true",
"propertyK": 169,
"propertyL": [
"test1",
"20231025"
]
}
}
]
}
请求参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
app_key | String | 否 | App 或 Web 应用的 AppKey 值,可以用来表示该事件是由哪一个应用产生 |
data | Array | 是 | 行为事件列表 |
euid | Long | 是 | 发生行为事件的用户唯一 ID |
event_name | String | 是 | 事件的名称 |
itime | Long | 是 | 行为事件发生的具体时间戳,要求是 13 位的毫秒级时间戳 |
random_id | String | 否 | 事件上报 id,用于校验事件唯一性;若未填写该字段,EngageLab 将会自动生成。 |
properties | JSON Object | 否 | 事件属性,key 是属性名,value 是属性值。 |
在同一个 MA 项目下,如果上报的事件 app_key、event_name、itime, euid, random_id 全部一致时,会视为同一个事件上报,EngageLab 平台会做去重处理(去重处理为离线计算,延时不超过3天)。
返回参数
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
code | Int | 是 | 接口调用是否成功,0 表示成功或者部分成功,其他值代表失败 |
message | String | 是 | 接口调用结果描述,对返回码的说明 |
全部成功
{
"code": 0,
"message": "success"
}
全部失败
{
"code": 40050,
"message": ""
}
错误码
|错误码| 描述| 详细说明 | | ----- | -------- | ----------------------- | -------------------------- | | 40050 | I接口鉴权失败| 确认项目ID和项目密钥是否正确 | | 40007 | EUID为空| 请检查 EUID 的值| | 50031 | 项目 ID 非法|请检查 APIKey 和 APISecret 是否正确| | 50034 | 项目 ID 不存在|请检查 APIKey 和 APISecret 是否正确,检查项目是否已被删除| | 50074 | API 数据源不存在|请检查 APIKey 和 APISecret 是否正确,请检查 API 数据源是否已被删除| | 55004 | 业务参数不合法|请检查请求参数字段是否正确| | 55101 | 用户标识个数超限|确认用户标识的值的数量是否超过 100 个| | 55102 | 存在无效的用户属性名称|确认属性名称是否符合命名要求,是否为空/用到了保留字符/超过长度限制 | 55103 | 用户属性值不能为空|确认请求体中用户属性的值是否为空| | 55105 | 用户标识的 value 值不能超过 256 个字符|确认用户标识的值是否超过256个字符| | 55106 | 用户标识的名称不在支持范围内|确认用户标识的名称是否是 user_id、 anonymous_id、registration_id| | 55107 | 用户标识的 value 值为空|确认请求体中用户标识的值是否为空| | 55108 | 无效的 EUID|请检查 EUID 的值| | -1 | 服务器内部错误|请联系 EngageLab 技术支持|