热力引擎 ( SolarEngine ) 是面向移动开发者提供的帮助产品持续增长的一站式智能营销服务平台,在报表方面提供固定分析报表服务和高度自定义的数据分析服务,系统在数据埋点、属性设置、报表创建、看板配置等多方面都支持开发者按需求进行个性化配置。
本文档为热力引擎 ( SolarEngine ) App 内行为事件通过接口上报的 API 接口说明,帮助您进行数据接入。
隐私权政策:https://www.solar-engine.com/privacyPolicy.html
在正式开始数据接入之前,需要提前准备一些接入过程中需要的参数,下面说明如何获取这些信息。
报送数据需要 userCode 及 Appkey,负责人账号管登录热力引擎系统系统后可自行查询。
userCode 查询路径:账户管理-账号信息-密钥-16 位 userId(即user Code)。
Appkey 查询路径:资产管理-应用管理-16位 Appkey(即应用 ID)。
用户作为分析过程中的主体,正确进行用户标识是得出准确的分析结果的关键。为了便于在接入过程中理解热力引擎的用户体系,以便您进行正确的设置和标识,以下针对用户标识进行说明。
设备 ID 即 _distinct_id,指设备的唯一标识参数,在上报埋点时必须报送该属性。
Android :建议报送设备的 AndroidId 作为 _distinct_id,如果 AndroidId 获取不到则获取随机的 UUID + 当前时间 13 位时间戳作为 _distinct_id。
iOS:建议报送设备的 IDFV 作为 _distinct_id,如果 IDFV 获取不到则获取随机的 UUID + 当前时间 13 位时间戳作为 _distinct_id。
访客 ID 即 _visitor_id,指用户在设备上安装了应用之后,登录状态之前该用户的唯一标识。
但大多数休闲游戏或一些工具类应用没有用户注册和登录体系,访客 ID 将是标识用户最重要的 ID。
账号 ID 即 _account_id,指用户在应用中注册之后,应用为该用户分配的用户 ID。
中重度游戏及大部分应用都有用户注册和登录体系。通过账号 ID,应用可以跨设备、跨平台识别同一用户,从而建立起用户的全平台行为轨迹,因此账号 ID 是多平台识别用户的 ID。
注:热力引擎中标识用户,会以账号 ID 优先进行识别;账号 ID 为空时会以访客 ID 进行识别。
数据报送地址:
海外版本报送地址请参考: https://vg-api-receiver.detailroi.com/datareceiver/receive/v3/sapi
国内版本报送地址请参考 https://api-receiver.detailroi.com/datareceiver/receive/v3/sapi
测试地址(测试地址提供上报数据错误明细信息,调试完成后请切换为上方正式地址)
请求参数:
timestamp(时间戳)、sign
验签规则:
1、timestamp 30分钟内有效,
2、验签
sign = Md5(appkey+timestamp)
说明:
Demo:
https://api-receiver.detailroi.com/datareceiver/receive/v3/sapi?timestamp={}&sign={}
appKey:"f499a4bdc9097b12"
timestamp:1648702202000
加密前字符串:"f499a4bdc9097b121648702202000"
md5后 sign:18c55727422f35e66a8765c1f4e5e546
若您需要开启谷歌投放与配置数据回调,请务必上报 _app_version 和 _os_version 属性,否则谷歌会拒收数据
https://localhost:8008/datareceiver/receive/v3/sapi?timestamp=1648702202000&sign=8010b5be154a31cefe6762c78ba09312
[
{
"_oaid": "",
"_one_id": "92692c8213c1ecc3770ad174c58430e5",
"_event_id": "43e0f9ac-9c63-4aff-8340-64ccef8fed5f",
"_type": "event",
"_visitor_id": "",
"_distinct_id": "3e4416a9d42f4566",
"_package_type":2,//中国大陆产品传1,非中国大陆产品传2
"_event_name": "_appEnd1",
"_appkey": "1ef820c432fde099",
"_ua": "Dalvik/2.1.0 (Linux; U; Android 9; MIX 3 MIUI/V10.0.12.0.PEECNFH)",
"_uuid": "11e37840-2a9b-4acc-97fb-ef2de369e0d4",
"_imei": "8698100361257575",
"_session_id": "22119e2858154084b15301dd8351fde1",
"_account_id": "",
"_imei2": "869810036127576",
"_android_id": "6dd78f842f095ab4",
"_source_type": "api",
"_ip":"102.249.1.212",
"properties": {
"_language": "zh",
"_referrer_title": "",
"_screen_height": 2210,
"_manufacturer": "Xiaomi",
"_referrer_name": "",
"_app_version": "2.0.0",
"_page_name": "com.xxx.xxx",
"ad_network": "topon",
"_is_first_time": false,
"_duration": "",
"_channel": "common",
"_app_version_code": "2",
"_lib_version": "1.0.2",
"_screen_width": 1080,
"_os_version": "9",
"_browser": "",
"_lib": 1,
"_time_zone": "GMT+08:00",
"_platform": 1,
"_log_count": 922,
"_device_type": 1,
"_density": 2.75,
"_app_name": "xxx",
"_browser_version": "",
"_device_model": "XiaomiMIX 2",
"_is_first_day": true,
"_network_type": 9,
"_package_name": "com.xxx.xxx.xxx"
},
"_ts": 1646295420763,
"_gaid": ""
}
]
上报的事件主要分为以下 3 类:
以下为每个事件都有的字段参数,其中设备标识类字段用于固定报表的数据串联,用来进行收入、成本、ROI 等指标的计算,为了保证计算处理的准确性,请您尽量完整的报送。
部分预定义事件还会包含一些该事件所特有的字段,会在对应的事件说明列出。
在oppo vivo 华为 小米投放应用时,_oaid 为媒体要求的必传属性,如果 _oaid 无法获取请填写 _distinct_id
属性名 | 说明 | 示例 | 类型 | 是否必传 |
_appkey | 应用的 16 位 Appkey | 546279e4b8514d56 | string | 是 |
_event_name | 事件标识 | _appInstall | string | 是,不超过40字符,支持字母、数字、下划线,不能含空格 |
_source_type | 数据来源,通过 API 报送时传 api | api | string | 是 |
_type | 数据类型,事件类传 event | event | string | 是 |
_distinct_id | 用户设备ID iOS:建议传入 IDFV Android:建议传入 AndroidID Web:cookie_id (通过当前时间戳+屏幕宽高+uuid随机数+UA 值 md5 后生成) 小程序/小游戏:建议传入 openid(抖音优先传入openid,其次anonymousopenid) 鸿蒙:建议传入 ODID | 3e4416a9d42f4566 | string | 是 |
_distinct_id_type | 小程序/小游戏: 当 _distinct_id 为openid时传1101。 当 _distinct_id 为anonymousopenid时传1102。 当 _distinct_id 为其它ID时传1103。 Web: 当 _distinct_id 为默认取值时该值为 1001 当 _distinct_id 为兜底取值时该值为 1002 当 _distinct_id_type 为自定义值时该值为 1003 | number | 小程序/小游戏/WEB必填 | |
_account_id | 账号 ID,为用户登录您的 App 后标识用户的 ID | aid25491084 | string | 与访客id至少传1个,不超过128字符 |
_visitor_id | 访客 ID,为用户未登录 App 时标识用户的 ID | vid8709901241 | string | 与账号id至少传1个,不超过128字符 |
_session_id | 启动 ID,即从一次启动开始到启动结束 (即退出) 的标识 | 3e4a4f9d2258cc41ee86dd09132bc61c | string | 否 |
_event_id | 标识数据唯一性的 ID,用于重复数据排重处理 | 56e3704cf535e5e6dccdc421e37b201e | string | 否 |
_ts | 数据产生时的13位时间戳 | 1631790831000 | long | 是,13字符 |
_idfa | iOS 设备的 IDFA | 1e2dfa89-496a-47fd-9941-df1fc4e6484a | string | 否,iOS建议传 |
_idfv | iOS 设备的 IDFV | 599f9c00-92dc-4b5c-9464-7971f01f8370 | string | 否,iOS建议传 |
_uuid | Android 通过系统 API 生成的 UUID | 99ae3a5b-750c-4f5f-aeb9-f128ab8a0ea0 | string | 否,Android 建议传 |
_package_type | 数据存储区域为中国大陆:1 数据存储区域为非中国大陆:2 | 1或2 | number | 必传 |
_imei | Android 设备的 IMEI | 861886043826831 | string | 否,Android 建议传, |
_imei2 | Android 设备的 IMEI | 861886043826849 | string | 否,Android 建议传 |
_gaid | Android 设备的 GAID | bd4b382b-2eeb-4aea-90c4-02b7f28a04b3 | string | 否,Android 建议传 |
_oaid | Android 设备的 OAID | fdebebfd-c64f-e6c5-7eea-b7f73da79380 | string | 否,Android 建议传 |
_android_id | Android 设备 AndroidID | 55ae62239e982d88 | string | 否,Android 建议传 |
_unionid | 同一开发者下的不同小程序,用户唯一ID | string | 否 | |
_ua | 设备 UA 信息 | Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) | string | 是 |
_ip | 用户设备 IP | 1.119.175.47 | string | 是 |
_ipv6 | 用户设备 IPv6 | 2001:0db8:3c4d:0012:0000:0000:0a8b:2a2b | string | 否 |
properties | 以下属性全部需要位于 properties 内层上报 | |||
_caid | iOS 系统的 CAID | [{"version":"20220111","caid":"912ec803b2ce498d495ab570"},{"version":"20211207","caid":"e332a76c2b31ced090c7"}] | string | 否 |
_openid | 当前小程序内,用户唯一ID | string | 否 | |
_anonymous_openid | 抖音专属,当前小程序内,匿名用户唯一ID | string | 否 | |
_country | 用户所在国家,未传值时服务端将根据 IP 地址生成,遵循《ISO 3166-1 国际标准》中两字母代码关系,如 CN、US | CN | string | 否 |
_province | 用户所在省份,未传值时服务端将根据 IP 地址生成 | HB | string | 否 |
_city | 用户所在城市,未传值时服务端将根据 IP 地址生成 | SJZ | string | 否 |
_language | 用户设备设置的语言 | zh-han | string | 否 |
_time_zone | 用户设备设置的时区 | GMT+08:00 | string | 否 |
_manufacturer | 用户设备的制造商,如 Apple,vivo 等 | Apple | string | 否 |
_platform | 平台,枚举值: 0:Other 1:Android 2:iOS 3:Windows 4:Mac 8:devtools 11:HarmonyOS 12:Linux | 2 | number | 是 |
_mp_type | 小程序的平台类型: douyin kwai | string | 小程序、小游戏必传 | |
_app_platform | SE的创建应用的系统平台,小程序\小游戏必传;枚举值:web\android\ios\miniprogram\minigame;小程序\小游戏枚举值为miniprogram\minigame | miniprogram | string | 小程序、小游戏必传 |
_os_version | 最细粒度的系统版本号,如 iOS 14.3.1、Android 10.0.0 等,若您需要开启谷歌投放与配置数据回调,请务必上报该属性,否则谷歌会拒收数据 | 14.3.1 | string | 否 |
_resolution | 用户设备的分辨率 | 1080*1920 | string | 否 |
_screen_height | 用户设备的屏幕高度 | 1920 | number | 否 |
_screen_width | 用户设备的屏幕高度 | 1080 | number | 否 |
_density | 用户设备的像素密度 | 480 | number | 否 |
_device_model | 最细粒度的设备型号标识,如 iPhone9,1 , M2102J2SC 等 | iPhone9,1 | string | 否 |
_device_name | 用户设备的名称 MD5 值 | 867E57BD062C7169995DC03CC0541C19 | string | 否 |
_device_type | 用户的设备类型,枚举值: 0:Other 1:Android Phone 2:Android Pad 3:iPhone 4:iPad 5:Mac 6:PC 8:tv 9:Harmony Phone 10:Harmony Pad | 3 | number | 否 |
_network_type | 上传数据时的网络状态,枚举值: 0:无网络 1:unknown 2:2G 3:3G 4:4G 5:5G 6:6G或下一代网络 9:WIFI 10:bluetooth(快应用) 11:others(快应用) | 4 | number | 否 |
_carrier | 用户设备的网络运营商 | cmcc | string | 否 |
_app_version | App 的版本,若您需要开启谷歌投放与配置数据回调,请务必上报该属性,否则谷歌会拒收数据 | 1.0.10.404 | string | 否 |
_app_version_code | App Build 版本号 | 819 | string | 否 |
_package_name | App 包名或者进程名 | com.aike.dashenguilai.ad | string | Android、iOS、HarmonyOS必传 |
_app_name | 系统中应用的名称 | string | 否 | |
_channel | App 渠道包名称 | 头条 | string | 否 |
_lib | 接入的 SDK 类型,枚举值: 0:Other 1:Android 2:iOS 3:Js 4:小程序 5:小游戏 6:快应用 9:Harmony 10:快游戏 11:Mac 12:Windows 13:Linux | 2 | number | 否 |
_lib_version | 接入的 SDK 的版本 | 1.6.6 | string | 否 |
_duration | 事件时长,单位:毫秒需要调用计时功能接口 timeEvent,记录事件发生时长 | 71 | number | 否 |
_is_first_day | 首日事件标记,安装首日的全部事件均为 true,非安装日的全部事件均为 false true:是首日事件 false:非首日事件 | true | boolean | 安装事件必传 |
_is_first_time | 首次事件标记,仅每种事件的首次事件为 true,不限定首次是否在首日发生 true:是首次事件 false:非首次事件 | true | boolean | 安装事件必传 |
_browser | 使用的浏览器类型,如 Chrome,Firefox 等 | Chrome | string | 否 |
_browser_version | 使用的浏览器的版本,如 Chrome 61.0,Firefox 57.0 等 | Chrome 61.0 | string | 否 |
_page_title | 当前页面的标题Android:Activity 的 android:label 属性值iOS:ViewController 的 title 或 titleView 上的文本信息 | 购物车 | string | 否 |
_page_name | 当前页面的地址Android:Activity 或 Fragment 对应的包名、类名iOS:ViewController 的类名 | com.aike.dashenguilai.android.cart | string | 否 |
_referrer_title | 跳转前页面的标题 | 首页 | string | 否 |
_referrer_name | 跳转前页面的地址 | com.aike.dashenguilai.android.index | string | 否 |
_ad_personalization_enabled | 用户是否允许Google将其数据用于个性化广告 | true/false | boolean | 否 |
_ad_user_data_enabled | 用户是否同意将其数据发送到Google | true/false | boolean | 否 |
_adservices_token | 请求apple获取的asa token | string | 否 |
事件的属性是一个 JSON 对象,其中每个 key-value 代表一个属性。
自定义属性需全部位于 properties 内层报送。
key 为该属性的名称
value 为该属性的值
自定义属性的属性类型
一个自定义属性的存储数据类型,会以第一次上报数据的格式自动由系统进行识别,一旦确定无法修改。
数据类型 | 说明 | 示例 |
数值型-number | 数据范围是 -9E15 至 9E15 | 不带引号的数值,如:1234,12.34 |
字符型-string | 上限 2KB | "dashen","北京"带引号的数值也会被识别为字符 |
时间型-date | "yyyy-MM-dd HH:mm:ss.SSS"或"yyyy-MM-dd HH:mm:ss",如需表示日期,可使用"yyyy-MM-dd 00:00:00" | "2021-03-01 12:34:56","2021-03-01 12:34:56.789""2021-03-01 00:00:00" |
布尔型-boolean | true 或 false | true,false带引号的 true 或 false 会被识别为字符 |
列表型-array | 列表中的元素都会转变为字符串类型 | ["a","1","true"] |
注:属性的存储数据类型,决定了在分析模型中可以选择的分析逻辑,比如数值型可以进行最大值、最小值、求和等计算,布尔型可以进行为真数、为假数的计算,所以报送数据的格式,需要考虑分析场景和业务需求,制定完整的埋点方案,并按埋点方案进行格式确定。
以自定义事件为例,以下为请求示例
若您需要开启谷歌投放与配置数据回调,请务必上报 _app_version 和 _os_version 属性,否则谷歌会拒收数据
[{
"_appkey": "c7d6914e9f4b423c",
"_source_type": "api",
"_type": "event", //事件类数据上报
"_event_name": "addCart", //自定义事件标识
"_account_id": "aid25491084",
"_package_type":2, //中国大陆产品传1,非中国大陆产品传2
"_visitor_id": "vid8709901241",
"_distinct_id": "3e4416a9d42f4566",
"_session_id": "100092419802",
"_event_id": "56e3704cf535e5e6dccdc421e37b201e",
"_ts": "1631790831000",
"_idfa": "1e2dfa89-496a-47fd-9941-df1fc4e6484a",
"_idfv": "599f9c00-92dc-4b5c-9464-7971f01f8370",
"_ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X)",
"_ip": "1.119.175.47",
"properties": {
"_manufacturer": "Apple",
"_app_version": "1.0.10.404",
"regtime": "2021-03-01 12:34:56.789", //自定义属性
"roleName": "dashen", //自定义属性
"_log_count": 25,
"_platform": 1,
"_package_name": "com.xxx.xxx.xxx"
}
}]
注:在报文中,字段表中 _ipv6 及之前的参数请置于 properties 外层报送,其它的全部字段置于内层报送。
返回示例:
成功 {"status":0}
安装事件为预置事件。每次安装后首次打开时报送该事件。
安装事件的 _event_name 为
APP 端: _appInstall
小程序/小游戏:_mpInstall
Web 端:_webInstall
启动事件为预置事件。建议 iOS 端每次打开、或从后台进入前台时,Android 每次打开、或退出后台 30s 再进入前台时报送。
启动事件的 _event_name 为
APP 端: _appStart
小程序/小游戏:_mpStart
Web 端:_webStart
退出事件为预置事件。建议 iOS 端应用退到后台时,Android 应用退出、或退到后台超过 30s 时报送。
退出事件的 _event_name 为
APP 端: _appEnd
小程序/小游戏:_mpEnd
Web 端:_webEnd
变现广告展示事件为预定义事件。App 内变现广告展示时报送,用于进行广告展示及变现收入分析。使用发行中心功能、自定义分析变现指标时,必须报送该事件。
广告展示事件的 _event_name 请传
APP 端: _appImp
小程序/小游戏:_mpImp
Web 端:_webImp
变现广告展示事件需要上报的属性:
(各聚合平台对应传值字段参见: ROI-三方账户管理-聚合平台-其他聚合平台 )
属性名 | 说明 | 示例 | 类型 | 限制 |
_ad_platform | 变现平台,前面为应传值,后面为平台名称 例如:变现平台为快手时,只需要传入 kuaishou csj:穿山甲国内版 pangle:穿山甲国际版 tencent:腾讯优量汇 baidu:百度百青藤 kuaishou:快手 oppo:OPPO vivo:vivo mi:小米 huawei:华为 applovin:Applovin sigmob:Sigmob mintegral:Mintegral oneway:OneWay vungle:Vungle facebook:Facebook admob:AdMob unity:UnityAds is:IronSource adtiming:AdTiming klein:游可赢 fyber:Fyber(DT Exchange) chartboost:Chartboost adcolony:Adcolony inmobi:Inmobi wechat_mini:微信小程序/小游戏 douyin_mini:抖音小程序/小游戏 bigo:BIGO | csj | string | 必传 |
_ad_appid | 变现平台的应用 ID | 5043562 | string | |
_mediation_platform | 聚合平台标识,常见聚合平台枚举如下,若您使用的聚合平台不在如下枚举值,您可以自定义命名,并控制字符数在32位。没有聚合平台标识,请设置为 "custom"。 max ironsource admob hyperbid topon cas Tradplus Tobid | gromore | string | 必传 |
_ad_id | 变现平台的变现广告位 ID | 943508343 | string | 必传 |
_ad_type | 本次展示广告的类型 例如:adType 为激励视频时,只需要传入 1 1:激励视频 2:开屏 3:插屏 4:全屏视频 5:Banner 6:信息流 7:短视频信息流 8:大横幅 9:视频贴片 10:MREC 0:其它 | 1 | number | 必传 |
_ad_ecpm | 本次广告展示的ecpm,单位:元 | 34.00 | number | 必传 |
_currency_type | 展示收益的货币种类,遵循《ISO 4217 国际标准》,如 CNY、USD | CNY | string | 必传 |
_is_rendered | 广告是否渲染成功,具体枚举值如下: 例如:成功时,只需要传入 true true:成功 false:失败 如果不需要统计该指标,请传 true | true | boolean | 必传 |
变现广告点击事件为预定义事件。App 内变现广告被点击时报送,用于进行广告点击的分析。
广告展示事件的 _event_name 请传
APP 端: _appClick
小程序/小游戏:_mpClick
Web 端:_webClick
变现广告点击事件需要上报的属性:
属性名 | 说明 | 示例 | 类型 | 限制 |
_ad_platform | 变现平台,前面为应传值,后面为平台名称 csj:穿山甲国内版 pangle:穿山甲国际版 tencent:腾讯优量汇 baidu:百度百青藤 kuaishou:快手 oppo:OPPO vivo:vivo mi:小米 huawei:华为 applovin:Applovin sigmob:Sigmob mintegral:Mintegral oneway:OneWay vungle:Vungle facebook:Facebook admob:AdMob unity:UnityAds is:IronSource adtiming:AdTiming klein:游可赢 fyber:Fyber(DT Exchange) chartboost:Chartboost adcolony:Adcolony inmobi:Inmobi | csj | string | 必传 |
_mediation_platform | 聚合平台标识,常见聚合平台枚举如下,若您使用的聚合平台不在如下枚举值,您可以自定义命名,并控制字符数在32位。没有聚合平台标识,请设置为 "custom"。 max ironsource admob hyperbid topon cas Tradplus Tobid | gromore | string | 必传 |
_ad_id | 变现平台的变现广告位 ID | 943508343 | string | 必传 |
_ad_type | 本次展示广告的类型 1:激励视频 2:开屏 3:插屏 4:全屏视频 5:Banner 6:信息流 7:短视频信息流 8:大横幅 9:视频贴片 10:其它 | 1 | number | 必传 |
App 内付费事件为预定义事件。App 内付费购买时报送,用于进行购买及内购收入分析。需要完整统计 App 收入,或后期使用系统提供的预测服务时,必须报送该事件。
应用内购买事件的 _event_name 请传
APP 端: _appPur
小程序/小游戏:_mpPur
Web 端:_webPur
应用内购买事件需要上报的属性:
属性名 | 说明 | 示例 | 类型 | 限制 |
_order_id | 本次购买由系统生成的订单 ID | 2021111918032157001921 | string | 非必传,否,投放荣耀商推、网易有道、豆瓣和oppo时必填 |
_pay_amount | 本次购买支付的金额,单位:元 | 128.00 | number | 必传 |
_currency_type | 支付的货币种类,遵循《ISO 4217 国际标准》,如 CNY、USD | CNY | string | 必传 |
_pay_type | 支付方式:如 alipay、weixin、applepay、paypal 等 | alipay | string | 非必传 |
_product_id | 购买商品的ID | 1700923511 | string | 非必传 |
_product_name | 商品名称 | 礼包 1 | string | 非必传 |
_product_num | 购买商品的数量 | 1 | number | 非必传 |
_pay_status | 支付状态,例如:成功时,只需要传入 1 1:成功 2:失败 | 1 | number | 必传 |
_fail_reason | 支付失败的原因 | BANK_ERROR | string | 非必传 |
上报示例
[
{
"_appkey": "1405a",
"_source_type": "api",
"_type": "event",
"_package_type": 2,
"_event_name": "_appPur",
"_event_id": "bf269822",
"_ts": 1719993598637,
"_distinct_id": "bxbbcb22534b4",
"_account_id": "123456",
"_ip": "13.1.1.1",
"_ua": "131",
"properties": {
"_order_id": "20230606180554",
"_pay_amount": 9.99,
"_currency_type": "BRL",
"_platform": 1,
"_pay_status": 1,
"_package_name": "com.ove",
"_pay_type": "GooglePay"
}
}
]
App 内付费订单事件为预定义事件。App 产生付费订单时上报。
应用内购买事件的 _event_name 请传
APP 端: _appOrder
小程序/小游戏:_mpOrder
Web 端:_webOrder
付费订单事件需要上报的属性:
属性名 | 说明 | 示例 | 类型 | 限制 |
_order_id | 订单 ID | 2341242342676398724 | string | 非必传;不超过128 字符 |
_pay_amount | 订单金额,单位:元 | 128.00 | number | 必传 |
_currency_type | 货币类型,遵循《ISO 4217 国际标准》,如 CNY、USD | CNY | string | 必传 |
_pay_type | 支付方式:如 alipay、weixin、applepay、paypal 等 | Alipay | string | 非必传,不超过 32 字符 |
_status | 订单状态 | success | string | 非必传 |
用户注册事件为预定义事件。用户产生注册行为时上报。
注册事件的 _event_name 请传
APP 端: _appReg
小程序/小游戏:_mpReg
Web 端:_webReg
属性名 | 说明 | 示例 | 类型 | 限制 |
_reg_type | 注册类型如 WeChat、QQ 等自定义值 | string | 必传;不超过 32 字符 | |
_status | 注册状态 | success | string |
用户登录事件为预定义事件。用户产生登录行为时上报。
注册事件的 _event_name 请传
APP 端: _appLogin
小程序/小游戏:_mpLogin
Web 端:_webLogin
属性名 | 说明 | 示例 | 类型 | SDK校验 |
_login_type | 登录类型如 WeChat、QQ 等自定义值 | string | 必传;不超过32 字符 | |
_status | 登录状态 | success | string |
自归因事件为预定义事件,开发者自定义触发时机。
自归因事件的 _event_name 为
APP 端: _appAttr
小程序/小游戏:_mpAttr
Web 端:_webAttr
属性名 | 说明 | 示例 | 类型 | 校验 |
_is_attr | 是否自主归因 true:是自归因 fales:非自归因 | true | boolean | 非必传,缺省值 true |
_adnetwork | 投放广告的渠道 ID,需要与发行平台匹配 | toutiao | string | 必传 |
_sub_channel | 投放广告的子渠道 | 103300 | string | |
_adaccount_id | 投放广告的投放账号 ID | 1655958321988611 | string | |
_adaccount_name | 投放广告的投放账号名称 | xxx科技全量18 | string | |
_adcampaign_id | 投放广告的广告计划 ID | 1680711982033293 | string | |
_adcampaign_name | 投放广告的广告计划名称 | 小鸭快冲计划157-1024 | string | |
_adoffer_id | 投放广告的广告单元 ID | 1685219082855528 | string | |
_adoffer_name | 投放广告的广告单元名称 | 小鸭快冲单元406-1024 | string | |
_adcreative_id | 投放广告的广告创意 ID | 1680128668901378 | string | |
_adcreative_name | 投放广告的广告创意名称 | 自动创建20210901178921 | string | |
_attribution_platform | 监测平台 | string | 必传 |
除了以上已经列出的有明确定义的事件外,开发者可以根据自己的分析需求,进行自定义事件的上报
自定义事件,即事件的 _event_name 由开发者自定义。
事件名称要求:
在热力引擎中的接口中,专门提供了针对用户属性设置数据的上报方法,针对用户的属性添加或变更,您可以通过该方法进行上报。
建议您将与用户相关的不变的、或变化频率比较低、或保存价值比较高的属性,比如年龄、创建角色时间、等级、所在地、首次付费时间、总付费金额等属性设置为用户属性,其它变化频率比较高的属性通过事件进行上报和记录。
用户属性设置分为以下几种方式:userUpdate、userInit、userAdd、userUnset、userAppend、userDelete,由开发者调用,对用户属性进行设置。
注:用户属性格式要求与事件属性保持一致。
以下为用户设置类数据的通用字段参数,其中 _account_id 及 _visitor_id 为查找用户的标识 ID,为了保证计算处理的准确性,请您尽量完整的报送。
属性名 | 说明 | 示例 | 类型 | 限制 |
_appkey | 应用的 16 位 Appkey | 546279e4b8514d56 | string | 必传 |
_source_type | 数据来源,通过 API 报送时传 api | api | string | 必传 |
_type | 数据类型,用户设置类传 userset | userset | string | 必传 |
_package_type | 数据存储区域为中国大陆:1 数据存储区域为非中国大陆:2 | 1或2 | number | 必传 |
_userset_type | 用户设置类型 | userInit | string | 必传仅可传:userUpdate、userInit、userAdd、userUnset、userAppend、userDelete |
_account_id | 账号 ID,为用户登录您的 App 后标识用户的 ID | aid25491084 | string | 与访客id至少传1个,不超过128字符 |
_visitor_id | 访客 ID,为用户未登录 App 时标识用户的 ID | vid8709901241 | string | 与账号id至少传1个,不超过128字符 |
_event_id | 标识数据唯一性的 ID,用于重复数据排重处理 | 56e3704cf535e5e6dccdc421e37b201e | string | |
_ts | 数据产生时的13位时间戳 | 1631790831000 | long | 13字符,必传 |
_idfa | iOS 设备的 IDFA | 1e2dfa89-496a-47fd-9941-df1fc4e6484a | string | 仅 iOS 传 |
_idfv | iOS 设备的 IDFV | 599f9c00-92dc-4b5c-9464-7971f01f8370 | string | 仅 iOS 传 |
_uuid | Android 通过系统 API 生成的 UUID | 99ae3a5b-750c-4f5f-aeb9-f128ab8a0ea0 | string | 仅 Android 传 |
_imei | Android 设备的 IMEI | 861886043826831 | string | 仅 Android 传 |
_imei2 | Android 设备的 IMEI | 861886043826849 | string | 仅 Android 传 |
_gaid | Android 设备的 GAID | bd4b382b-2eeb-4aea-90c4-02b7f28a04b3 | string | 仅 Android 传 |
_oaid | Android 设备的 OAID | fdebebfd-c64f-e6c5-7eea-b7f73da79380 | string | 仅 Android 传 |
_android_id | Android 设备 AndroidID | 55ae62239e982d88 | string | 仅 Android 传 |
_meid | Android 设备的 MEID | 3e4a4f9d2258cc41ee86dd09132bc61c | string | 仅 Android 传 |
_mac | 设备的 MAC | B8:37:65:34:D7:4D | string | |
_ua | 设备 UA 信息 | Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) | string | |
_ip | 用户设备 IP | 1.119.175.47 | string | 与 _country 至少传 1 个 |
_ipv6 | 用户设备 IPv6 | 2001:0db8:3c4d:0012:0000:0000:0a8b:2a2b | string | |
properties | 其它内层属性 | string |
事件的属性是一个 JSON 对象,其中每个 key-value 代表一个属性。
自定义属性需全部位于 properties 内层报送。
key 为该属性的名称
value 为该属性的值
自定义属性的属性类型
自定义用户属性数据类型的识别规则,与事件的自定义属性相同,处理方法也相同,即会以第一次上报数据的格式自动由系统进行识别,一旦确定无法修改。相同产品的属性类型在第一次上报时进行确定。后续不同SDK、不同事件上报的同名属性只有类型与第一次一致才会入库。而属性的存储数据类型,决定了在分析模型中可以选择的分析逻辑,所以报送数据的格式,需要考虑分析场景和业务需求,制定完整的埋点方案,并按埋点方案进行格式确定。
用户设置操作的数据格式与事件上报的格式相似,不同之外在于:
[{
"_appkey": "c7d6914e9f4b423c",
"_type": "userset", //用户属性设置类数据上报
"_userset_type": "userInit", //用户属性设置方式
"_account_id": "aid25491084",
"_visitor_id": "vid8709901241",
"_ts": "1631790831000",
"_idfa": "1e2dfa89-496a-47fd-9941-df1fc4e6484a",
"_ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X)",
"properties": {
"_platform":8,
"regtime": "2021-03-01 12:34:56.789", //自定义属性
"roleName": "dashen" //自定义属性
}
}]
如果您要上传一批用户属性,其中已经存在的用户属性不去更新属性值、不存在的属性进行创建并保存属性值,则可以调用 userInit 来进行设置。
对于一般的用户属性,您可以调用 userUpdate 来进行设置,使用该接口上传的属性将会覆盖原有的属性值,如果之前不存在该用户属性,则会新建该用户属性,类型与传入属性的类型一致。
当您要上传数值型的属性时,您可以调用 userAdd 来对该属性进行累加操作,如果该属性还未被设置,则会赋值 0 后再进行计算,可传入负值,等同于相减操作。
当您要清空用户的用户属性值时,您可以调用 userUnset 来对指定属性(字符串数组)进行清空操作,如果该属性还未在集群中被创建,则 不会 创建该属性。
您可以调用 userAppend 对数组类型的用户属性进行追加操作。如果该属性不存在,则会新建该属性。
如果您要删除某个用户,可以调用 userDelete 将这名用户删除。用户删除后,您将无法再查询该名用户的用户属性,但该用户产生的事件仍然可以被查询到。
————————————
2022-01-20