菜单

微信小游戏 SDK

1、简介

热力引擎 ( SolarEngine ) 是面向移动开发者提供的帮助产品持续增长的一站式智能营销服务平台,在报表方面提供固定分析报表服务和高度自定义的数据分析服务,系统在数据埋点、属性设置、报表创建、看板配置等多方面都支持开发者按需求进行个性化配置。

本文档将针对 微信小游戏  SDK 端的数据上报进行说明,帮助您进行数据接入。

隐私权政策:https://www.solar-engine.com/privacyPolicy.html


2、集成前的准备工作

在正式开始数据接入之前,需要提前准备一些接入过程中需要的参数、准备 SDK 包,下面说明如何获取这些信息。

2.1、获取 userCode

报送数据需要 userCode 及 Appkey,负责人账号管登录热力引擎系统系统后可自行查询。

userCode 查询路径:账户管理-账号信息-密钥-16 位 userId(即 user Code)。

2.2、获取 Appkey

Appkey 查询路径:资产管理-应用管理-16位 Appkey(即应用 ID)。

2.3、获取 SDK

SDK下载地址(提供umd和es两种格式包)

https://sdk.solar-engine.com/MiniWx/SolarEngine-MiniWx-CN-SDK-1.3.0.zip  

2.4、微信后台配置

  • 获取APPID和AppSecret

登录微信公众平台,并进入首页。选择左侧导航中的“开发管理”,选择页面中的“开发设置”,在“开发者ID”中复制APPID(小程序ID)和AppSecret(小程序密钥)粘贴到SE后台创建应用。

微信后台截图:SE后台截图:

  • 服务器域名配置:

登录微信公众平台,并进入首页。选择左侧导航中的“开发管理”,选择页面中的“开发设置”,在“服务器域名”中的“request合法域名”里面填写 https://api-receiver.detailroi.com 和 https://rule.detailroi.com 进行配置,具体如下图所示:


  • IP白名单配置:

登录微信公众平台,并进入首页。选择左侧导航中的“开发管理”,选择页面中的“开发设置”,在“开发者ID”中的“IP白名单”中:如未开启ip白名单保护,则不需要配置SE固定IP。如已开启ip白名单保护,则需要配置SE固定IP:71.132.0.102、52.81.1.45、52.54.188.146、34.196.30.48。

  • 如果需要接入腾讯小游戏广告SDK,请参考文档中3.1准备工作中的内容进行配置。  

3、SDK 集成

3.1、SDK初始化

建议在小游戏项目中的入口js中引入SDK并初始化,以保证数据初始化的准确性。SDK初始化之前,需要先进行预初始化, 调用prevInit方法,传入应用的 appKey。

注意:一个小游戏中只能引入1次SDK,app.js中引入SDK后建议挂载到全局(比如globalThis)上供其他地方使用。

如果是ES Modules的开发环境,请引入es格式文件,否则请引入umd格式文件。

// game.js
import SESDK from './miniwx-cn-sesdk-umd.js';

// 某些平台可能仅支持commonjs方式引入,则需要使用require方式引入
//  const SESDK = require('./miniwx-cn-sesdk-umd.js')

// 预初始化
SESDK.prevInit('appKey'); 
// 初始化
SESDK.init(initParams);
// 挂载到全局(比如globalThis)上供其他地方使用
globalThis.SESDK = SESDK;

initParams参数说明:

参数类型是否必填说明
userIdstring账户的 userCode
appKeystring应用的 appKey
unionidstring小游戏unionid
openidstring小游戏openid, 如不传则由SDK主动获取openid(必须在SE后台应用管理中填写AppID和AppSecret;并前往微信后台进行配置,详见2.4微信后台配置)
configConfig初始化相关的配置信息


初始化配置Config参数说明:

参数类型是否必填说明
debugModelboolean是否开启调试,默认false不开启
logEnabledboolean是否控制台打印sdk日志,默认false不开启
isInitTencentAdvertisingGameSDKboolean是否初始化腾讯小游戏广告SDK,默认false不开启
tencentAdvertisingGameSDKfunction腾讯小游戏广告SDK的引用类,参考腾讯小游戏广告SDK接入文档下载。如果是基于CocosCreator平台开发的小游戏,请手动下载umd格式文件来引入(下载地址)
reportingToTencentSdknumber启动事件是否上报给腾讯,默认3。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
tencentAdvertisingGameSDKInitParamstencentSDKInitParams腾讯小游戏广告SDK初始化必需参数。
tencentSdkIsAutoTrackboolean腾讯SDK是否自动采集,默认true


tencentSDKInitParams参数说明

类型参数类型是否必填说明
user_action_set_idnumber数据源ID
secret_keystring加密key
appidstring微信小游戏APPID,wx开头

调用示例:

// 加载腾讯小游戏广告SDK
import { SDK } from './dn-sdk-minigame/index.js';

SESDK.prevInit('666666');
SESDK.init({
  appKey: '666666',
  userId: '888888',
  openid: 'xxxxxxxxxxx',
  config: {
    logEnabled: true,
    isInitTencentAdvertisingGameSDK: true,
    tencentAdvertisingGameSDK: SDK,
    tencentAdvertisingGameSDKInitParams: {
       user_action_set_id: 'xxx',
       secret_key: 'xxx',
       appid: 'xxx'
    }
  },
});

// CocosCreator平台下引入
import TencentSDK from './dn-sdk-minigame/index.umd.js';
SESDK.prevInit('666666');
SESDK.init({
  appKey: '666666',
  userId: '888888',
  openid: 'xxxxxxxxxxx',
  config: {
     logEnabled: true,
     isInitTencentAdvertisingGameSDK: true,
     tencentAdvertisingGameSDK: TencentSDK.SDK,
     tencentAdvertisingGameSDKInitParams: { 
        user_action_set_id: 'xxx', 
        secret_key: 'xxx', 
        appid: 'xxx'
     } 
  },
});

由于SDK的初始化逻辑是异步进行的,如果业务场景中需要依赖SDK初始化完成之后的执行逻辑,可调用ready方法

SESDK.ready(callback);

SDK初始化过程中,如需加载SDK插件,可调用use方法

SESDK.use(sdkPlugin);


3.2、访客 ID

访客 ID 即 _visitor_id,是用户在设备上安装了应用之后,登录状态之前该用户的唯一标识。

我们提供访客 ID 自定义设置的接口,如果您有自己的访客管理体系需要替换访客 ID,应在 SDK 初始化之前进行设置

数据上报时仅以最后一次传入的访客 ID 为准,应避免多次调用造成多个非正常访客 ID 先后上报数据的情况。

3.2.1、设置访客 ID

调用 setVisitorId: 来设置访客 ID:

SESDK.setVisitorId('vid8709901241')

注:

该调用仅为向 SDK 传入访客 ID,不会上报用户设置事件。

开发者设置的访客ID长度不能超过128个字符,否则会设置失败。

开发者设置后会存储在本地存储中。

3.2.2、获取访客 ID

如果您需要获取当前访客 ID,可以调用 getVisitorId 获取:

SESDK.getVisitorId()


3.3、账号 ID

指用户在应用中登录之后,登录账号在应用中的唯一标识。登录之前将以访客 ID 作为用户标识。

在账户 ID 设置完成后,在调用 logout 清除账号 ID之前,设置的账号 ID 将一直保留,并作为用户身份识别 ID。清除账号 ID 的操作请在有真实退出登录状态行为时进行,关闭 App、退至后台运行时无需调用。

数据上报时仅以最后一次传入的账号 ID 为准,应避免多次调用造成多个非正常账号 ID 先后上报数据的情况。

3.3.1、设置账号 ID

调用 login 来设置用户的账号 ID:

SESDK.login('aid25491084');

注:

该调用仅为向 SDK 传入账号 ID,不会上报用户登录事件。

开发者设置的账号 ID 长度不能超过 128 个字符,否则会设置失败。

开发者设置后会存储在本地存储中。


3.3.2、获取账号 ID

调用 getAccountId 来获取用户的账号 ID:

SESDK.getAccountId();


3.3.3、清除账号 ID

调用 logout 来清除账号 ID:

SESDK.logout();

注:该调用仅为通知 SDK 清除账号 ID,不会上报用户登出事件。


3.4、设置公共事件属性

公共事件属性指的是每个事件都会带有的属性,对于一些重要的属性,如用户的来源渠道、转化的广告 ID 等,这些属性需要设置在每个事件中,这些属性可以被设置为公共事件属性。

公共事件属性设置的方法最好放在SDK的初始化方法之前,这样可以保证所有的上报事件中都能存在我们已经设置好的公共事件属性。

您可以调用 setSuperProperties 来设置公共事件属性,我们推荐您在发送事件前,先设置公共事件属性。

公共事件属性的格式要求与事件属性一致,见“事件上报-自定义属性要求

SESDK.setSuperProperties({
   key:  value
});

如果您需要删除某个公共事件属性,可以调用 unsetSuperProperty 清除其中一个公共事件属性;

SESDK.unsetSuperProperty(key);

如果您想要清空所有公共事件属性,则可以调用 clearSuperProperties

SESDK.clearSuperProperties();

注:

如果调用 setSuperProperties 上传了先前已设置过的公共事件属性,则会覆盖之前的属性。

如果公共事件属性和事件上报上传的某个属性的 key 重复,则该事件的属性会覆盖公共事件属性。

开发者设置后会存储在本地存储中。


3.5、设置预置事件属性

热力引擎 SDK 支持开发者对启动、安装、退出三个预置事件设置自定义属性,通过这些自定义属性,开发者可以更方便地统计和分析数据。

SESDK.setPresetEvent(eventType, properties);
参数名称参数含义参数类型是否必传
eventType预置事件枚举,具体如下:mpInstall(安装事件)、mpStart(启动事件)、mpEnd(退出事件)、all(全部预置事件,即包含安装、启动、退出事件)string
properties自定义属性object(具体要求见事件上报-自定义属性要求)

注:

  1. 设置预置事件自定义属性的方法必须在热力引擎SDK初始化之前设置,这样设置的属性会适用于所有后续SDK产生的预置事件,如果在SDK初始化之后再设置,在此之前产生的预置事件不会包含这些设置的自定义属性。
  2. 预置事件设置的自定义属性不会被缓存,每次设置都会覆盖前一次的设置,多次设置同一个预置事件只有最后一次生效。
  3. 如果设置了 eventType 的枚举为 all,会覆盖通过mpInstall、mpStart、mpEnd 这三种枚举设置的自定义属性,如果多次设置,只有最后一次生效。
  4. 给预置事件设置的自定义属性支持清空,可以调用对应的枚举清空,如下:SESDK.setPresetEvent('mpInstall', null); 上述方法可以用来清空启动事件的自定义属性,安装与退出事件只需更改对应的枚举值即可。
  5. 另外,热力引擎 SDK 也支持全局清除预置事件的自定义属性,如下:SESDK.setPresetEvent('all', null); 上述方法可以清空所有预置事件的自定义属性,通过 mpInstall、mpStart、mpEnd 这三种枚举设置的自定义属性会被一并清空。

调用示例:

SESDK.setPresetEvent('mpInstall', {
  k1: 'v1',
  k2: 'v2'
});


3.6、设置其他上报属性

3.6.1、设置渠道名称

调用 setChannel 方法设置渠道名称_channel

SESDK.setChannel('channel');      

3.6.2、设置小游戏来源页面title信息

调用 setReferrerTitle 方法设置来源页面title信息_referrer_title

SESDK.setReferrerTitle('title');      

3.6.3、设置小游戏当前页面title信息

开发者调用 setXcxPageTitle 方法设置当前页面title信息_page_title

SESDK.setXcxPageTitle('title');      


3.7、获取distinct_id和distinct_id_type

开发者调用getDistinct方法可获取到distinct_id和distinct_id_type,该方法返回一个Promise对象。

SESDK.getDistinct().then(data => {
   // data.result.distinct_id
   // data.result.distinct_id_type
})
distinct_id_type说明
1101openid
1103uuid
优先级:openid>uuid

3.8、获取归因结果

3.8.1、设置监听归因结果回调

开发者设置监听归因结果回调。仅可调用一次。该方法返回一个Promise对象。

SESDK.setOnAttributionListener().then(res => {
   // res.result   归因结果信息
})

3.8.2、主动获取归因结果

开发和主动获取归因结果信息。可多次调用。该方法返回一个Promise对象。

SESDK.getAttribution().then(res => { 
     // res.result 归因结果信息
})


归因结果示例

归因结果返回数据示例

如果用户有拉活归因结果,会展示在 re_data 中

{
            //拉新归因结果
            "account_id": "",
            "ad_type": "",
            "adcreative_id": "",
            "adcreative_name": "",
            "adcreative_type": "",
            "adgroup_id": "",
            "adgroup_name": "",
            "adplan_id": "",
            "adplan_name": "",
            "attribution_time": "2023-08-31 11:16:35",
            "attribution_touch_type": "",
            "attribution_type": "",
            "callback_id": "",
            "channel_id": "-1",
            "channel_name": "自然量",
            "click_id": "",
            "conversion_id": "",
            "custom_params_1": "",
            "custom_params_10": "",
            "custom_params_2": "",
            "custom_params_3": "",
            "custom_params_4": "",
            "custom_params_5": "",
            "custom_params_6": "",
            "custom_params_7": "",
            "custom_params_8": "",
            "custom_params_9": "",
            "impression_id": "",
            "install_time": "2023-08-31 11:16:32",
            "placement_id": "",
            "report_time": "2023-08-31 11:16:34",
            "request_id": "",
            "ry_touchpoint_ts": "",
            "site_id": "",
            "site_name": "",
            "turl_campaign_id": "",
            "turl_campaign_name": "",
            "turl_id": "",
            "re_data": {
                //拉活归因结果
                "account_id": "",
                "ad_type": "",
                "adcreative_id": "",
                "adcreative_name": "",
                "adcreative_type": "",
                "adgroup_id": "",
                "adgroup_name": "",
                "adplan_id": "",
                "adplan_name": "",
                "attribution_time": "2023-08-31 11:16:35",
                "attribution_touch_type": "",
                "promotion_objectives": "",
                "callback_id": "",
                "channel_id": "-1",
                "channel_name": "自然量",
                "click_id": "",
                "conversion_id": "",
                "custom_params_1": "",
                "custom_params_10": "",
                "custom_params_2": "",
                "custom_params_3": "",
                "custom_params_4": "",
                "custom_params_5": "",
                "custom_params_6": "",
                "custom_params_7": "",
                "custom_params_8": "",
                "custom_params_9": "",
                "impression_id": "",
                "install_time": "2023-08-31 11:16:32",
                "placement_id": "",
                "report_time": "2023-08-31 11:16:34",
                "request_id": "",
                "ry_touchpoint_ts": "",
                "site_id": "",
                "site_name": "",
                "turl_campaign_id": "",
                "turl_campaign_name": "",
                "turl_id": ""
            }
        }

attributionData 中归因字段


参数描述
attribution_touch_typeclick,impression归因触点类型
ry_touchpoint_ts归因的展示or点击的时间,年月日时分秒归因触点时间
install_time设备激活的时间,年月日,时分秒激活时间
attribution_time2022/5/11 15:00:03归因时间
turl_campaign_id3e0a9bad8455d685eaaf91bad71bdeb2监测链接id
turl_campaign_nameMintegral_tracking监测链接名称
turl_idUfeE7za短链id
channel_id1234渠道id
channel_namemintegral归因的渠道名称
attribution_typeuaUA(标识拉新)
account_id,渠道推广账号ID
adgroup_id,渠道推广广告组ID
adgroup_name,渠道推广广告组名称
adplan_id,渠道推广计划ID
adplan_name,渠道推广计划名称
adcreative_id,渠道推广使用素材ID
adcreative_name,渠道推广使用素材名称
adcreative_type,渠道推广使用素材类型
site_id,子渠道ID
site_name,子渠道名称
ad_type,渠道推广广告类型
placement_id,渠道推广广告位ID
conversion_id,广告位id
click_id,渠道推广点击唯一ID
impression_id,渠道推广展示唯一ID
request_id 广告请求id
callback_idEJiw267wvfQCGKf2g74ZIPD89-vIATAMOAFCIjIwMTkxM
TI3MTQxMTEzMDEwMDI2MDc3MjE1MTUwNTczNTBIAQ==,
custom_params_1 渠道推广自定义参数1-10
custom_params_2 渠道推广自定义参数1-10
custom_params_3 渠道推广自定义参数1-10
custom_params_4 渠道推广自定义参数1-10
custom_params_5 渠道推广自定义参数1-10
custom_params_6 渠道推广自定义参数1-10
custom_params_7 渠道推广自定义参数1-10
custom_params_8 渠道推广自定义参数1-10
custom_params_9 渠道推广自定义参数1-10
custom_params_10 渠道推广自定义参数1-10


4、事件上报

在 SDK 初始化完成之后,就可以通过调用方法来进行数据的上报。

上报的数据主要分为以下 4 类:

  • 预置事件:该类事件由 SDK 按规则自行触发上报,无需开发者调用。有确定的 _event_name ,如安装、启动、退出等事件。
  • 预定义事件:该类事件已经在系统中明确定义了事件意义,有确定的 _event_name 。需要在对应的事件发生时,由开发者触发上报,如变现广告展示、应用内付费等。
  • 自定义事件:即系统未明确定义意义的事件,开发者可按分析需要自行定义并埋点进行上报。
  • 时长事件:需要记录某个事件的持续时长,用来进行相关的分析。

注:事件名支持大小写中英文、数字、下划线,长度不超过 40。


下面将对每种事件的上报规则进行一一说明。

4.1、预置事件

4.1.1、安装

每次安装后首次打开自动报送该事件。(删除小游戏后,再次打开小游戏时算一次安装)

安装事件的 _event_name 为 _mpInstall。

4.1.2、启动

每次打开小游戏、或小游戏从后台进入前台时,自动报送该事件。

启动事件的 _event_name 为 _mpStart。

4.1.3、退出

小游戏从前台进入后台时,自动报送该事件。

退出事件的 _event_name 为 _mpEnd。


4.2、预定义事件

4.2.1、变现广告展示事件

变现广告展示时,报送该事件,用于进行广告展示及变现收入分析, _event_name 为 _mpImp

SESDK.trackAdImpression(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
adNetworkPlatform变现平台,前面为应传值,后面为平台名称
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
chartboost:Chartboost
adcolony:Adcolony
wechat_mini:微信小程序/小游戏
string
adType展示广告的类型1:激励视频2:开屏3:插屏4:全屏视频5:Banner6:信息流7:短视频信息流8:大横幅 9:视频贴片10:中等尺寸横幅0:其它number
adNetworkAppID变现平台的应用 IDstring
adId变现平台的变现广告位 IDstring
mediationPlatform聚合平台标识,常见聚合平台枚举如下,若您使用的聚合平台不在如下枚举值,您可以自定义命名,并控制字符数在32位。没有聚合平台标识,请设置为 "custom"。
max
ironsource
admob
hyperbid
topon
cas
Tradplus
Tobid
string
ecpm广告ECPM(广告千次展现的变现收入,0或负值表示没传),单位:元number
currency展示收益的货币种类,遵循《ISO 4217国际标准》如 CNY、USDstring
rendered广告是否渲染成功,具体枚举值如下:
例如:成功时,只需要传入 true
true:成功
false:失败
如果不需要统计该指标,请传 true
boolean
customProperties自定义属性,见“自定义属性要求”object

调用示例:

SESDK.trackAdImpression({
  adNetworkPlatform: 'oppo',
  adType: 1,
  adNetworkAppID: '123',
  adId: '123',
  mediationPlatform: 'custom',
  ecpm: 13.140001,
  currency: 'USD',
  rendered: true,
  customProperties: {
    one: '1',
  }
})


4.2.2、变现广告点击事件

变现广告点击时,报送该事件,用于进行广告点击数据分析, _event_name 为 _mpClick。

SESDK.trackAdClick(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
adNetworkPlatform变现平台,前面为应传值,后面为平台名称csj:穿山甲国内版pangle:穿山甲国际版tencent:腾讯优量汇baidu:百度百青藤kuaishou:快手oppo:OPPOvivo:vivomi:小米huawei:华为applovin:Applovinsigmob:Sigmobmintegral:Mintegraloneway:OneWayvungle:Vunglefacebook:Facebookadmob:AdMobunity:UnityAdsis:IronSourceadtiming:AdTimingklein:游可赢fyber:Fyberchartboost:Chartboostadcolony:Adcolonystring
adType展示广告的类型,1:激励视频2:开屏3:插屏4:全屏视频5:Banner6:信息流7:短视频信息流8:大横幅9:视频贴片0:其它number
adId变现平台的变现广告位 IDstring
mediationPlatform聚合平台标识,常见聚合平台枚举如下,若您使用的聚合平台不在如下枚举值,您可以自定义命名,并控制字符数在32位。没有聚合平台标识,请设置为 "custom"。
max
ironsource
admob
hyperbid
topon
cas
Tradplus
Tobid
string
customProperties自定义属性,见“自定义属性要求”object

调用示例:

SESDK.trackAdClick({
  adNetworkPlatform: 'oppo',
  adType: 1,
  adId: '123',
  mediationPlatform: 'custom',
  customProperties: {
    one: '1',
  }
})


4.2.3、应用内购买事件

付费购买时,报送该事件,用于进行购买及内购收入分析, _event_name 为 _mpPur。

SESDK.trackIAP(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
reportingToTencentSdk上报事件给腾讯。如果初始化时,设置初始化腾讯广告SDK, 则此参数必填。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
number
orderId本次购买由系统生成的订单 IDstring
payAmount本次购买支付的金额,单位:元number
currencyType支付的货币类型,遵循《ISO 4217国际标准》,如 CNY、USDstring
payType支付方式:如 alipay、weixin、applepay、paypal 等string
productID购买商品的IDstring
productName商品名称string
productCount购买商品的数量number
payStatus支付状态1:success成功2:fail失败3:restored恢复number
failReason支付失败的原因string
customProperties自定义属性,见“自定义属性要求”object


注:支付失败原因 failReason 参数仅在 payStatus 参数为 fail 支付失败时才会传入,其他状态传""即可。

调用示例:

SESDK.trackIAP({
  reportingToTencentSdk: 1,
  orderId: '12345678',
  payAmount: 1234.5678,
  currencyType: 'USD',
  payType: 'alipay',
  productID: '12345678',
  productName: 'this is product name',
  productCount: 10,
  payStatus: 1,
  failReason: 'this is fail reason',
  customProperties: {
    one: '1',
  }
})
自归因安装事件


4.2.4、增加归因安装事件

支持统计归因数据,满足客户使用三方归因或者自归因之后的结果数据回传到自定义分析,上报时机支持开发者自定义触发。

自归因事件的 _event_name 为 _mpAttr。

SESDK.trackAppAttr(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
adNetwork投放广告的渠道 ID,需要与发行平台匹配string
subChannel投放广告的子渠道string
adAccountID投放广告的投放账号 IDstring
adAccountName投放广告的投放账号名称string
adCampaignID投放广告的广告计划 IDstring
adCampaignName投放广告的广告计划名称string
adOfferID投放广告的广告单元 IDstring
adOfferName投放广告的广告单元名称string
adCreativeID投放广告的广告创意 IDstring
adCreativeName投放广告的广告创意名称string
attributionPlatform监测平台string
customProperties开发者传入的自定义属性,见“自定义属性要求”object

示例代码:

SESDK.trackAppAttr({
  adNetwork: '123456',
  subChannel: '123456',
  adAccountID: '123456',
  adAccountName: '123456',
  adCampaignID: '123456',
  adCampaignName: '123456',
  adOfferID: '123456',
  adOfferName: '123456',
  adCreativeID: '123456',
  adCreativeName: '123456',
  attributionPlatform: '123456',
  customProperties: {
  	one: '1',
  }
})


4.2.5、订单事件

用于进行订单数据分析, _event_name 为 _mpOrder。

SESDK.trackOrder(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
orderID订单 IDstring否,不超过 128 字符
payAmount订单金额,单位:元number
currencyType展示货币类型,遵循《ISO 4217国际标准》,如 CNY、USDstring
payType支付方式:如 alipay、weixin、applepay、paypal 等string否,不超过 32 字符
status订单状态string
customProperties自定义属性,见“自定义属性要求”object

调用示例:

SESDK.trackOrder({
  orderId: '12345678',
  payAmount: 1234.5678,
  currencyType: 'USD',
  payType: 'alipay',
  status: 'this is fail status',
  customProperties: {
    one: '1',
  }
})


4.2.6、注册事件

用户注册时,报送该事件,用于进行用户注册数据分析, _event_name 为 _mpReg。

SESDK.trackRegister(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
reportingToTencentSdk上报事件给腾讯。如果初始化时,设置初始化腾讯广告SDK, 则此参数必填。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
number
regType注册类型如 "WeChat"、"QQ" 等自定义值string是,不超过 32 字符
registerStatus注册状态 如 "success"string
customProperties自定义属性,见“自定义属性要求”object

调用示例:

SESDK.trackRegister({
  reportingToTencentSdk: 1,
  regType: 'WeChat',
  registerStatus: 'success',
  customProperties: {
    one: '1',
  }
})


4.2.7登录事件

用户登录时,报送该事件,用于进行用户登录数据分析, _event_name 为 _mpLogin。

SESDK.trackLogin(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
loginType登录类型如 "WeChat"、"QQ" 等自定义值string是,不超过 32 字符
loginStatus登录状态 如 "success"string
customProperties自定义属性,见“自定义属性要求”object

调用示例:

SESDK.trackLogin({
  loginType: 'WeChat',
  loginStatus: 'success',
  customProperties: {
    one: '1',
  }
})


4.2.8、沉默唤起

已经注册的小游戏用户变为沉默用户后,再次进入小游戏,定义为沉默唤起行为,建议的沉默唤起周期为 7、14、30  天,如果业务目前使用其他回流周期也支持传任意 N 值(数字,单位天), _event_name 为 _mpReActive。

SESDK.trackReActive(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
reportingToTencentSdk上报事件给腾讯。如果初始化时,设置初始化腾讯广告SDK, 则此参数必填。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
number
backFlowDay回流天数number
customProperties自定义参数object

调用示例:

SESDK.trackReActive({
  reportingToTencentSdk: 1,
  backFlowDay: 7,
  customProperties: {
    one: '1',
  }
})

4.2.9、收藏小游戏

在用户收藏小游戏的时候上报,包括收藏、添加到我的小程序、添加到桌面以及小游戏自己定义的收藏逻辑, _event_name 为 _mpAddToWishlist。

SESDK.trackAddToWishlist(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
reportingToTencentSdk上报事件给腾讯。如果初始化时,设置初始化腾讯广告SDK, 则此参数必填。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
number
addToWishlistType收藏类型, 可选类型枚举值:普通收藏(default)/添加到我的小程序(my)/添加到桌面(desktop)/其他(others)string
customProperties自定义参数object

调用示例:

SESDK.trackAddToWishlist({
  reportingToTencentSdk: 1,
  addToWishlistType: 'default',
  customProperties: {
    one: '1',
  }
})

4.2.10、分享小游戏

在用户分享小游戏的时候上报,需区分是【转发给朋友】还是【分享到朋友圈】, _event_name 为 _mpShare。

SESDK.trackShare(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
reportingToTencentSdk上报事件给腾讯。如果初始化时,设置初始化腾讯广告SDK, 则此参数必填。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
number
mpShareTarget分享类型, 可选类型枚举值:转发给朋友(APP_MESSAGE)/分享到朋友圈(TIME_LINE)string
customProperties自定义参数object

调用示例:

// 1、转发给朋友 
wx.onShareAppMessage(() => {
  // sdk.track('SHARE', {
  //   target: 'APP_MESSAGE'
  // });
  SESDK.trackShare({
      reportingToTencentSdk: 1,
      mpShareTarget: 'APP_MESSAGE',
      customProperties: {
        one: '1',
      }
  })
});

// 2、分享到朋友圈
wx.onShareTimeline(() => {
  // sdk.track('SHARE', {
  //   target: 'TIME_LINE'
  // });
  SESDK.trackShare({
      reportingToTencentSdk: 1,
      mpShareTarget: 'TIME_LINE',
      customProperties: {
        one: '1',
      }
  })
});

// 3、主动拉起转发时上报一条分享行为(先执行上报后呼起分享上报成功率更高)
// sdk.track('SHARE', {
//     target: 'APP_MESSAGE'
// });
SESDK.trackShare({
    reportingToTencentSdk: 1,
    mpShareTarget: 'APP_MESSAGE',
    customProperties: {
      one: '1',
    }
})
wx.shareAppMessage();

4.2.11、创建角色

用户在小游戏内创建角色成功后上报 CREATE_ROLE 行为,可添加创建角色相关的自定义参数,如角色名等, _event_name 为 _mpCreateRole。

SESDK.trackCreateRole(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
reportingToTencentSdk上报事件给腾讯。如果初始化时,设置初始化腾讯广告SDK, 则此参数必填。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
number
mpRoleName角色名称string
customProperties自定义参数object

调用示例:

SESDK.trackCreateRole({
  reportingToTencentSdk: 1,
  mpRoleName: '角色名称',
  customProperties: {
          one: '1',
        }
})

4.2.12、完成新手指引

在用户完成游戏新手指引教程或者完成教程关卡后上报 TUTORIAL_FINISH 行为, _event_name 为 _mpTutorialFinish。

SESDK.trackTutorialFinish(data)

data 为object类型,参数说明:

参数名称 参数含义参数类型是否必传
reportingToTencentSdk上报事件给腾讯。如果初始化时,设置初始化腾讯广告SDK, 则此参数必填。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
number
customProperties自定义参数object

调用示例:

SESDK.trackTutorialFinish({
  reportingToTencentSdk: 1,
  customProperties: { 
  one: '1',
   }
})

4.2.13、游戏等级提升

用户在小游戏内的完成游戏等级提升时上报 UPDATE_LEVEL 行为,可添加自定义参数,如当前游戏等级、游戏能量等, _event_name 为 _mpUpdateLevel。

SESDK.trackUpdateLevel(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
reportingToTencentSdk上报事件给腾讯。如果初始化时,设置初始化腾讯广告SDK, 则此参数必填。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
number
beforeUpgrade提升前等级number
afterUpgrade提升后等级number
customProperties自定义参数object

调用示例:

SESDK.trackUpdateLevel({
  reportingToTencentSdk: 1,
  beforeUpgrade:1,
  afterUpgrade:2,
  customProperties: {
    one: '1',
  }
})

4.2.14、浏览商城页面

用户在小游戏内浏览商城页面时上报, _event_name 为 _mpViewContentMall。

SESDK.trackViewContentMall(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
reportingToTencentSdk上报事件给腾讯。如果初始化时,设置初始化腾讯广告SDK, 则此参数必填。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
number
customProperties自定义参数object

调用示例:

SESDK.trackViewContentMall({
  reportingToTencentSdk: 1,
  customProperties: {
    one: '1',
  }
})

4.2.15、浏览游戏活动

用户在小游戏内浏览商城页面时上报, _event_name 为 _mpViewContentActivity。

SESDK.trackViewContentActivity(data)

data 为object类型,参数说明:

参数名称参数含义参数类型是否必传
reportingToTencentSdk上报事件给腾讯。如果初始化时,设置初始化腾讯广告SDK, 则此参数必填。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
number
customProperties自定义参数object

调用示例:

SESDK.trackViewContentActivity({
  reportingToTencentSdk: 1,
  customProperties: {
    one: '1',
  }
})

4.3、自定义事件

除了以上已经列出的有明确定义的事件外,开发者可以根据自己的分析需求,进行自定义事件的上报

自定义事件,即事件的 _event_name 由开发者自定义。

您可以调用 track(eventName, data) 来上报事件,建议您根据先前梳理的文档来设置事件的属性以及发送信息的条件。

事件名称要求:

  • string 类型
  • 只能以字母开头,其余字符可包含数字、小写字母和下划线"_"
  • 长度最大为 40 个字符
  • 仅支持小写字母


调用示例:

SESDK.track('test', {
  one: '1',
});


4.4、自定义属性要求

事件的属性是一个 object 对象,其中每个元素代表一个属性。

4.4.1、key 为该属性的名称

  • string 类型
  • 只能以字母开头,其余字符可包含数字、小写字母和下划线"_"
  • 长度最大为 40 个字符
  • 仅支持小写字母

4.4.2、value 为该属性的值

  • 支持 string、number 、boolean和 array
  • 对于 array 的元素,只支持字符串类型
  • 对于其他类型都将强制转为字符串存储

4.4.3、自定义属性的属性类型

一个自定义属性的存储数据类型,会以第一次上报数据的格式自动由系统进行识别,一旦确定无法修改。相同产品的属性类型在第一次上报时进行确定。后续不同SDK、不同事件上报的同名属性只有类型与第一次一致才会入库。

数据类型说明示例
数字-number数字类型如:1234,12.34
字符串-string上限 2KB"dashen","北京"带引号的数值也会被识别为字符串
日期-string"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"
布尔类型-booleantrue 或 falsetrue,false带引号的 true 或 false 会被识别为字符串
数组类型-array数组中的元素都会转变为字符串类型["a","1","true"]


注:属性的存储数据类型,决定了在分析模型中可以选择的分析逻辑,比如数值型可以进行最大值、最小值、求和等计算,布尔型可以进行为真数、为假数的计算,所以报送数据的格式,需要考虑分析场景和业务需求,制定完整的埋点方案,并按埋点方案进行格式确定。


4.5、时长事件

如果您需要记录某个事件的持续时长,可以调用 eventStart(eventName) 来开始计时,配置您想要计时的事件名称,当您结束该事件时,需要调用 eventFinish(eventName, data),它将会自动在您的事件属性中加入 _duration 这一属性来表示记录的时长,单位为毫秒。需要注意的是,同一个事件名只能有一个在计时的任务。

SESDK.eventFinish('testEvent', {
  one: '1',
});

注:在上报预置事件 _appEnd 时,会默认上报由上一次 _appStart 开始计时的时长,即退出事件的时长无需配置开始计时,会默认赋值。



5、用户属性设置

在热力引擎中,专门提供了针对用户属性设置数据的上报方法,针对用户的属性的添加或变更,您可以通过该方法进行上报。

建议您将与用户相关的不变的、或变化频率比较低、或保存价值比较高的属性,比如年龄、创建角色时间、等级、所在地、首次付费时间、总付费金额等属性设置为用户属性,其它变化频率比较高的属性通过事件进行上报和记录。

用户属性设置分为以下几种方式:userUpdate、userInit、userAdd、userUnset、userAppend、userDelete,由开发者调用,对用户属性进行设置。


注:用户属性格式要求与事件属性保持一致。

5.1、userInit

如果您要上传一批用户属性,其中已经存在的用户属性不去更新属性值、对不存在的属性进行创建并保存属性值,则可以调用 userInit 来进行设置。

调用示例:

SESDK.userInit({
  regtime: "2021-03-01 12:34:56.789", // 自定义属性
  rolename: "engineer", // 自定义属性
  age: 29, // 自定义属性
});


5.2、userUpdate

对于一般的用户属性,您可以调用 userUpdate 来进行设置,使用该接口上传的属性将会覆盖原有的属性值,如果之前不存在该用户属性,则会新建该用户属性,类型与传入属性的类型一致。

调用示例:

SESDK.userUpdate({
  rolename: "leader", // 自定义属性
});


5.3、userAdd

当您要上传数值型的属性时,您可以调用 userAdd 来对该属性进行累加操作,如果该属性还未被设置,则会赋值 0 后再进行计算,可传入负值,等同于相减操作。

调用示例:

SESDK.userAdd({
  age: 1, // 自定义属性
});

userAdd 设置的属性类型以及 Key 值的限制与 userUpdate 一致,但 Value 只允许 number 类型。


5.4、userUnset

当您要清空用户的属性值时,您可以调用 userUnset 来对指定属性(字符串数组)进行清空操作,如果该属性还未在集群中被创建,则 不会 创建该属性。

调用示例:

SESDK.userUnset(["age"]);

userUnset 传入的参数是用户属性的属性名,类型是字符串数组。


5.5、userAppend

您可以调用 userAppend 对数组类型的用户属性进行追加操作。如果该属性不存在,则会新建该属性。

调用示例:

SESDK.userAppend({
  location: ["BeiJing"], // 自定义属性
});


5.6、userDelete

如果您要删除某个用户,可以调用 userDelete 将这名用户删除。用户删除后,您将无法再查询该名用户的用户属性,但该用户产生的事件仍然可以被查询到。

调用示例:

SESDK.userDelete(deleteType);

// 通过AccountId删除用户 
SESDK.userDelete('userDeleteByAccountId'); 

// 通过VisitorId删除用户 
SESDK.userDelete('userDeleteByVisitorId');
参数名称参数含义参数类型是否必传
deleteType通过什么类型删除userDeleteByAccountId: 通过AccountId删除用户
userDeleteByVisitorId:通过VisitorId删除用户



6、渠道SDK兼容说明

6.1、腾讯广告

  • 方案简述:在集成了SE_SDK之后,需要引入腾讯广告SDK。一旦您完成了SE的初始化方法,系统会自动触发腾讯广告SDK的初始化。当您上报注册、付费等关键事件时,系统会根据您的配置自动将这些事件信息报送给腾讯广告,以完成归因分析和数据回传工作。
  • 操作流程简述:
    • 加载腾讯小游戏广告SDK import { SDK } from './dn-sdk-minigame/index.js';
    • 将腾讯广告SDK传给SE(tencentAdvertisingGameSDK)
    • 开启初始化腾讯广告SDK(isInitTencentAdvertisingGameSDK)
    • 填写初始化腾讯广告SDK的必要参数(tencentAdvertisingGameSDKInitParams)
    • 选择当前事件上报腾讯的数据类型(reportingToTencentSdk)。
    • 初始化方法中,配置Config新增参数(详见3.1 SDK初始化,请参考代码示例):
isInitTencentAdvertisingGameSDKboolean是否初始化腾讯小游戏广告SDK,默认false不开启
tencentAdvertisingGameSDKfunction腾讯小游戏广告SDK的引用类,参考腾讯小游戏广告SDK接入文档下载。
reportingToTencentSdknumber启动事件是否上报给腾讯,默认3。
1:全量上报给腾讯
2:非全量上报给腾讯
3:不上报给腾讯
tencentAdvertisingGameSDKInitParamstencentSDKInitParams腾讯小游戏广告SDK初始化必需参数。
tencentSdkIsAutoTrackboolean腾讯SDK是否自动采集,默认true

tencentSDKInitParams参数说明:

类型参数类型是否必填说明
user_action_set_idnumber数据源ID
secret_keystring加密key
appidstring微信小游戏APPID,wx开头
    • 您可以为「启动事件」和「每个预定义事件」单独设置配置字段“reportingToTencentSdk”。以下是目前支持的预定义事件列表(详情请参考本文):
      • 4.2.3 付费
      • 4.2.6 注册
      • 4.2.8 沉默唤起
      • 4.2.9 收藏小游戏
      • 4.2.10 分享小游戏
      • 4.2.11 创建角色
      • 4.2.12 完成新手教程
      • 4.2.13 游戏等级提升
      • 4.2.14 浏览商城页面
      • 4.2.15 浏览游戏活动
      • 注:以上事件建议主动上报。
    • 对于这些事件,您可以根据需要为每个事件单独配置“reportingToTencentSdk”字段,以实现更精细的控制和数据回传。
    • reportingToTencentSdk字段说明:
      • 方案一(推荐):由腾讯广告负责归因匹配,将所有用户的事件信息回传至腾讯广告平台。请配置字段“reportingToTencentSdk”为1。
      • 方案二:由热力引擎负责归因匹配,将归因至腾讯广告用户的信息回传至腾讯广告平台。请配置字段“reportingToTencentSdk”为2。注:腾讯广告 API 归因下线后,将无法通过热力引擎归因,请使用方案一。
      • 方案三(不推荐):由热力引擎负责归因匹配,不将用户的信息回传至腾讯广告平台。请配置字段“reportingToTencentSdk”为3。
      • 注:非腾讯广告的渠道仍然由热力引擎归因匹配,并通过API事件回传,您无需在SDK中进行额外的配置。
  • QA:

————————————

SDK 更新记录

2025-03-14 1.3.0

• 事件上报逻辑优化


2025-03-13 1.2.9

• 事件上报逻辑优化


2025-02-13 1.2.8

• 修复接入腾讯广告SDK的报错问题


2025-01-03 1.2.7

• 付费事件上报优化


2024-12-31 1.2.6

• 内部初始化逻辑优化


2024-12-10 1.2.4

• 兼容CocosCreator平台编译构建


2024-11-29 1.2.3

  • 新增支持腾讯广告小游戏
  • 归因数据结果结构调整


2024-11-11 1.2.2

• 优化事件上报逻辑


2024-10-31 1.2.1

•增加sdk内部日志上报


2024-08-14 1.1.9

•上报场景值_launch_scene类型由数值型变更为字符串型


2024-05-22 1.1.8

修复微信小游戏的install事件上报多次的问题


2024-04-22 1.1.7

• 优化事件上报逻辑


2024-04-16 1.1.6

• 优化事件上报逻辑


2024-04-01 1.1.5

  • 修复极端场景下已上报事件不能被删除的问题
  • 小程序下ready钩子触发时机优化


2024-03-15 1.1.4

• A/B试验请求新增参数


2024-03-01 1.1.3

• 修复A/B试验初始化参数问题


2024-01-22 1.1.2

• 修复内部日志上报问题


2023-12-06 1.1.1

  • 增加getDistinct方法获取获取distinct_id和distinct_id_type
  • 增加setOnAttributionListener方法设置监听归因结果回调
  • 增加getAttribution方法主动获取归因结果信息
  • 初始化init方法增加unionid参数
  • 事件上报上线验签


2023-11-02 1.1.0

  • 支持预定义属性、自定义属性设置
  • 支持预定义事件、自定义事件上报
  • 支持用户属性设置
  • 支持A/B测试插件



最近修改: 2025-06-23Powered by