数据埋点回传(玩家行为事件推送)
数据埋点回传是平台把玩家在活动内的行为数据(页面浏览 + 按钮点击)主动推送到你提供的接收地址,供你在自有系统做用户行为深度分析。属高级会员的 API 对接类高级功能,按需开通;开通后你只需实现一个接收端点,无需在活动内埋任何代码。
能力概览
- 页面埋点(
$pageview):玩家离开某个页面时回传该页面的浏览信息(含停留时长)。 - 触点埋点(
$WebClick):玩家点击页面中特定按钮时触发。 - 注意:每次按钮点击会同时触发一条离开页面的页面级事件和一条触点级事件。
回传契约
- 接收地址:由你(第三方)提供指定 URL,开通时配置到平台。
- 数据格式:JSON 事件对象(JSON Schema 见源文档,
$id: https://www.24haowan.com/track.schema.json),顶层字段:event(枚举$pageview/$WebClick)、properties(内容主体)、lib(SDK 固定信息)、type(固定"track")、time(客户端时间戳);distinct_id/original_id/server_time为保留字段未启用。
基础字段(properties 内)
| 字段 | 说明 |
|---|---|
event |
$pageview(页面浏览)/ $WebClick(按钮点击) |
page_type |
页面类型,枚举见下方附录 |
click_type |
按钮类型(仅点击事件),枚举见下方附录 |
chnl_name |
渠道:微信环境 WeChat_H5,非微信 notWeChat_H5 |
act_id |
活动 ID |
scene |
场景参数,无则空字符串 |
app_id |
当前玩家第三方绑定的 APPID(注意事项见下) |
用户信息
user_id(24好玩系统内玩家唯一 ID)、user_wechat_appid/user_openid(公众号身份)、user_app_id/app_uid(第三方登录身份)、current_id(优先 openid,其次 app_uid,都无则 not_get_yet)、nickname/sex/headimage(来源微信资料)、from_wx_work_uid(来源企业微信员工 ID)。取不到的字段默认 not_get_yet 或空字符串。
设备 / 网络位置 / 时间 / 分享来源
- 设备:
os、os_version、screen_height、screen_width、browser、browser_version、user_agent。 - 网络位置:
ip;country/province/city/area/latitude/longitude来源微信数据,缺失时为not_get_yet(area 为null)。 - 时间:
time= 客户端事件时间;server_time不提交(始终 0/未使用)。 - 分享来源:
share_id(分享人 24好玩玩家 ID,非分享进入则空)、share_openid、share_appuid;share_level目前始终为空字符串。
页面特有 / 点击特有字段
- 页面事件:
view_dur(页面停留毫秒数)、url_path(当前页 URL)、referrer(单页应用内传上一页面名)。 - 点击事件:
share_way(chat好友 /moments朋友圈,仅右上角分享时;JSSDK 升级后可能不可用)。
args 业务载荷
页面/事件的业务信息放在 args 字段(字符串化 JSON),无业务信息时为 {}:
- 报名表单页:提交/修改报名表单时回传
{"signUpInfo": {"姓名":"...","电话":"...", ...}},key/value 需 UrlEncode 以支持中文。 - 奖品详情页:点击查看详情时回传
{"record_id": 123456}(奖品在页面内的身份索引)。 - 问答类模板:答题提交时回传
{"question": {"question_index":1, "answer":1, "game_id":1}}。
APPID 绑定注意事项
app_id 是当前登录玩家第三方绑定的 APPID,不是(严格等于)活动创建者的 APPID:
- 大部分情况下两者一致;
- 若玩家此前通过其他创建者的活动完成过有效 APPUID 关联,回传的
app_id会是上一次绑定的 APPID; - 若回传时玩家尚无有效 APPID 绑定,该字段可能缺省。
按 act_id + user_id/current_id 归因活动与玩家,不要以 app_id 作为活动归属判断依据。
样例数据(浏览事件)
{
"event": "$pageview",
"lib": { "$lib": "js", "$lib_method": "code", "$lib_version": "1.8.10" },
"properties": {
"$os": "Android", "$os_version": "8.1",
"$screen_height": 818, "$screen_width": 393,
"$url_path": "/dfsh5/dss/",
"act_id": "693", "chnl_name": "2",
"country": "中国", "province": "北京市", "city": "北京",
"ip": "117.136.0.253", "latitude": "39.9289", "longitude": "116.3883",
"current_id": "o1jGi0urKB1uwVGjijQbrdvcrC7I",
"page_type": "signUp", "args": "{}",
"share_id": "", "share_level": "0", "share_way": "",
"user_agent": "Mozilla/5.0 (... MicroMessenger/6.7.3.1360 ...)",
"view_dur": 538
},
"type": "track",
"time": 1544603297752
}
点击事件结构相同,event 为 $WebClick,properties 内多 click_type(如 "share")。
附录:page_type 页面类型全表
| 页面 | 参数名称 | 回传触发时间 |
|---|---|---|
| 加载页 | LoadPage |
加载结束,自动触发 |
| 开始页 | StartPage |
点击开始按钮 |
| 活动规则页 | RulePage |
切换活动中心其他 Tab 或关闭活动中心 |
| 排行榜页 | RankPage |
切换活动中心其他 Tab 或关闭活动中心 |
| 我的奖品 | GiftPage |
切换活动中心其他 Tab 或关闭活动中心 |
| 活动页 | GamePage |
提交分数/结果,结束后自动触发 |
| 结束页 | OverPage |
点击再玩一次 |
| 奖品详情页 | GiftDetailPage |
关闭奖品详情页 |
| 报名信息页 | FeedbackPage |
关闭报名信息页 |
| 举报页 | ReportPage |
关闭举报页 |
| 二维码页面 | QrcodePage |
关闭奖品兑换二维码 |
附录:click_type 按钮类型全表
| 事件 | 参数 | 备注 |
|---|---|---|
| 开始游戏 | start |
|
| 再玩一次 | restart |
|
| 音乐按钮 | music |
|
| 悬浮按钮 | float |
|
| 关闭活动规则 | rule-close |
|
| 活动规则内举报 | report |
|
| 关闭投诉内容 | hide_report |
|
| 提交投诉内容 | send_report |
投诉页的提交按钮 |
| 跳转到奖品中心 | gift |
|
| 关闭奖品中心 | hide_gift |
|
| 跳转到排行榜 | rank |
|
| 关闭排行榜 | hide_rank |
|
| 跳转到活动规则 | rule |
|
| 关闭活动规则 | hide_rule |
|
| 底部横幅 | foot |
暂未处理 |
| 再玩一次 | again |
|
| 奖品中心内查看奖品详情 | giftDetail |
|
| 分享 | share |
右上角菜单内的分享按钮 |
| 点击模态框 | modals |
中奖后跳动的奖品图片 |
| 打开二维码 | qrcode |
奖品详情里的兑换二维码 |
| 关闭二维码 | hide_qrcode |
奖品详情里的兑换二维码 |
| 关掉奖品详情 | hide_giftDetail |
暂未使用字段:$is_first_day、$is_first_time、$title、$url、algorithm_id、freq_user_id(默认为空)。
要把活动数据同步到自有 BI,选哪种方式?
| 需求 | 用什么 | 说明 |
|---|---|---|
| 行为明细(浏览/点击流) | 本页的埋点回传(平台推送) | 高级会员按需开通即可 |
| 汇总数据/参与/中奖名单(拉取) | 渠道数据接口 /open/data/analyse/*(JWT) |
仅 OEM 渠道可用,见渠道模式开放接口 |
⚠️ 非 OEM 的普通高级会员没有 API 拉数接口:数据出口只有埋点回传(推送)与后台手工导出 CSV。规划 BI 方案时先确认自己的档位。
实时性与漏发怎么办?
事件在触发后即时推送(准实时)。平台侧未承诺失败重试/补发机制——接收端应按"尽力送达"设计:做好去重(按事件字段幂等)、容忍缺口,关键对账数据(如中奖名单)以后台导出或渠道数据接口为准,不要以埋点流水做唯一账本。