微信小游戏 JS-SDK
为接入SDK平台的相关数据,平台提供了一个简单的微信小游戏SDK(DHMiniSDK),其中包含授权登录、支付、分享、数据上报、广告等功能,CP在打包的时候请注意使用环境哦,具体接入操作说明如下。
一、准备工作
1、添加安全域名
登录《微信公众平台》后台,进入“开发>开发管理>开发设置”,于“服务器域名(request合法域名)”一栏中添加如下安全域名。
域名请向SDK平台人员索要
2、微信端的 AppID 和 AppSecret 信息
登录《微信公众平台》后台获取小游戏的 AppID 和 AppSecret 提供给平台对接人员(请注意保管,如果秘钥发生变更,务必通知平台进行替换)。
3、SDK平台端的 AppID 等信息
向SDK平台索要小游戏的 appId、channel、mainChannel 和 secondChannel 等信息。
二、下载+初始化
1、下载
下载地址 | 类型 | 说明 |
---|---|---|
DHMiniSDK | UMD | 使用 import 导入 |
2、初始化
下载完SDK,并且拿到相应的参数后,可对SDK进行初始化操作,示例代码如下:
import DHMiniSDK from "./dhminisdk";
const sdk = new DHMiniSDK({
env: "test", // 接入环境,非必填,默认为 production(test:测试环境,除数据上报服务外,其它服务均请求测试环境接口;production:正式环境)
wxAppId: "wxcac8c2ce332e1ebc", // 微信小游戏AppID,必填
appId: 1296519244, // 小游戏在平台端的AppID,必填
appName: "com.qiyuan.lebinfen", // 小游戏应用包名,必填(1.0.3版本新增)
channel: 1398, // 渠道,必填
mainChannel: 100708, // 推广主渠道,非必填,默认将从启动参数中获取
secondChannel: 100709, // 推广次渠道,非必填,默认将从启动参数中获取
reyunAppKey: "xxx" // 热云管理后台创建产品时生成的AppKey,非必填,若填写此项则表示接入热云数据上报
});
console.log(sdk.wxAppId); // 读取微信小游戏AppID
console.log(sdk.wxSystem); // 读取微信系统信息
console.log(sdk.appId); // 读取小游戏在平台端的AppID
console.log(sdk.appName); // 读取小游戏应用包名
console.log(sdk.channel); // 读取渠道ID,如1398,(对应数据上报 from_ch 字段)
console.log(sdk.mainChannel); // 读取主渠道ID,如100708,(对应数据上报 ad_channel 字段)
console.log(sdk.secondChannel); // 读取次渠道ID,如100709,(对应数据上报 ad_subchannel 字段)
console.log(sdk.deviceId); // 读取设备唯一标识,(对应数据上报 dev_uuid 字段)
console.log(sdk.deviceOS); // 读取设备系统类型,(对应数据上报 dev_os 字段)
三、授权登录服务
1、授权登录
使用 sdk 实例的 authorize(options) 执行授权登录流程并拉取平台的用户信息,options 参数的详细说明如下所示:
选项 | 类型 | 说明 |
---|---|---|
success | Function | 执行成功的回调函数,返回平台的用户数据 |
fail | Function | 执行失败的回调函数,返回相关code码及错误消息 |
示例代码:
sdk.authorize({
success: function(response){
console.log("用户信息数据如下:");
console.log(response);
},
fail: function(error){
console.log(error);
}
});
四、支付服务
对于需要开通支付的小游戏,可以选择合适的支付方式进行接入,本文主要对平台支付进行简单概述说明。
1、支付环境
SDK 内置支付方式如下:
支付方式 | 说明 |
---|---|
customer-service | 跳转小游戏客服支付 |
miniprograme | 跳转小程序支付 |
midas | 米大师支付,仅支持安卓设备 |
由于微信策略限制,小游戏在iOS环境下不能直接进行支付,包括:
- iOS环境下小游戏无法直接发起虚拟支付(如米大师支付,安卓环境下无此限制);
- iOS环境下,使用跳转小程序进行支付,小程序一旦被限制打开,将导致无法充值。
如果小游戏内支付需对安卓或苹果等环境做区分处理,可根据sdk提供的sdk.wxSystem.platform返回值进行判断。
Platform 枚举值 | 说明 |
---|---|
android | Android微信 |
ios | iOS微信(包含 iPhone、iPad) |
windows | Windows微信 |
mac | macOS微信(macOS微信暂不支持打开小游戏,此枚举值可忽略) |
devtools | 微信开发者工具 |
2、准备事项
默认情况下,安卓采用米大师支付(启用米大师支付需要在后台配置),苹果采用小程序支付。如果安卓环境下不想采用米大师支付,相关的米大师配置可忽略;米大师支付需要相应的版号,若小游戏没有版号,建议直接使用小程序支付。
a. 登录《微信公众平台》后台添加如下安全域名。
请向SDK平台人员索要
b、需要在后台开通米大师虚拟支付,并且配置相关信息。
c、游戏在设置道具价格的时候,需要注意如下区别:
充值方式 | 充值额度 |
---|---|
米大师 | 根据微信小游戏官方API的有效价格进行设置 |
支付小程序 | 任意金额 |
跳转客服支付 | 任意金额 |
d、开通支付后,CP需要提供给平台如下信息(对接人员必须正确配置到相应后台中):
e、确认服务端的充值回调接口地址,请配置到后台中,确保付款成功后,实时更新订单数据。
f、如果支付采用了跳转小程序的形式,需要小游戏在game.json中配置navigateToMiniProgramAppIdList,将需要跳转的小程序微信AppID添加到允许列表中,现平台SDK支付服务支持的小程序如下(按需添加):
微信小程序AppID | 说明 |
---|---|
wxbfc111821fb999a0 | 乐缤纷相册 |
示例代码:
// game.json
{
"navigateToMiniProgramAppIdList": [
"wxbfc111821fb999a0"
]
}
3、调用支付
使用 sdk 实例的 payment(data, options) 方法调用支付,具体参数说明如下:
参数名 | 类型 | 说明 |
---|---|---|
data | Object | 支付数据对象(详见下文) |
options | Object | 支付方式及事件回调等配置 |
参数 data 的详细说明如下:
选项 | 类型 | 必填 | 说明 |
---|---|---|---|
wxPaymentAppId | String | 否 | 微信公众平台注册的支付小程序的AppID(不填时默认使用支付小程序“乐缤纷相册”) |
appId | Number | 否 | SDK平台创建当前小游戏产品时生成的AppID(不填时默认使用SDK初始化参数中的appId字段作为缺省值) |
mainChannel | Number | 否 | 主渠道(不填时默认使用SDK初始化参数中的mainChannel字段作为缺省值) |
secChannel | Number | 否 | 次渠道(不填时默认使用SDK初始化参数中的secondChannel字段作为缺省值) |
account | String | 否 | 用户在SDK平台的账号(通过sdk.authorize授权登录服务获取,不填时默认使用sdk.authorize授权登录方法获取的用户信息作为缺省值) |
accountId | Number | 否 | 用户在SDK平台的账号数字ID(通过sdk.authorize授权登录服务获取,不填时默认使用sdk.authorize授权登录方法获取的用户信息作为缺省值) |
wxOpenId | String | 否 | 用户的微信openid(通过sdk.authorize授权登录服务获取,不填时默认使用sdk.authorize授权登录方法获取的用户信息作为缺省值) |
areaId | Number | 是 | 游戏大区ID(默认为1) |
roleId | Number | 是 | 角色ID(默认为0) |
price | Number | 是 | 道具金额,单位分 |
currency | String | 否 | 货币单位(默认为CNY) |
productId | String | 是 | 道具ID |
productName | String | 是 | 道具名称 |
timestamp | Number | 是 | 时间戳 |
memo | String | 否 | 透传参数(默认为空) |
remark | String | 否 | 透传参数2(默认为空) |
参数 options 的详细说明如下:
选项 | 类型 | 说明 |
---|---|---|
android | String | Android微信使用的支付方式,可选值为 customer-service、miniprograme、midas,默认为 midas |
ios | String | iOS微信使用的支付方式,可选值为 customer-service、miniprograme,默认为 miniprograme |
success | Function | 调用成功的回调函数 |
fail | Function | 调用失败的回调函数,返回相关code码及错误消息 |
示例代码:
sdk.payment({
wxPaymentAppId: "wxbfc111821fb999a0",
appId: sdk.appId,
mainChannel: sdk.mainChannel,
secondChannel: sdk.secondChannel,
wxOpenId: sdk.userInfo.wxOpenId,
areaId: 1,
roleId: 0,
price: 600,
currency: "CNY",
productId: "com.qyyy.lebinfen.MLUPAY20501001",
productName: "测试道具",
timestamp: 1538212308,
memo: "",
remark: ""
}, {
android: "midas",
ios: "miniprogram",
devtools: "midas",
success: function(response) {
console.log(response);
},
fail: function(error) {
console.log(error.message);
}
});
五、分享服务
1、设置分享
调用 sdk 实例的 setShare(options) 可启用并自定义分享文案,下述图片链接和图片ID可在小游戏开发者后台上传「设置 - 游戏设置 - 自定义转发图片配置」,上传imageUrl
和imagePreviewUrl
图,待审核通过后复制过来即可,具体参数说明如下:
选项 | 类型 | 说明 |
---|---|---|
title | String | 分享标题,不传则默认使用当前小游戏的昵称 |
imageUrl | String | 分享时显示的图片链接,不传则默认使用当前小游戏的头像 |
imageUrlId | String | 审核通过的图片ID,与 imageUrl 一起使用 |
imagePreviewUrl | String | 分享到朋友圈的预览图,不传则默认使用当前小游戏的画面截图 |
imagePreviewUrlId | String | 审核通过的预览图片ID,与 imagePreviewUrl 一起使用 |
query | String | 自定义查询字符串,必须是 key1=val1&key2=val2 的格式。从这条转发消息进入后,可通过 wx.getLaunchOptionsSync() 或 wx.onShow() 获取启动参数中的 query |
示例代码:
sdk.setShare({
title: "乐缤纷",
imageUrl: "https://mmocgame.qpic.cn/wechatgame/PGr6EBJdWIKOjUyS3lleGHVchRvG9KRgO3afBRvNy3Y5BmJl6cSG3RHKbjclHn1j/0",
imageUrlId: "imSzfWYsSIGdbW7pWDHU/w==",
imagePreviewUrl: "https://mmocgame.qpic.cn/wechatgame/PGr6EBJdWII0ow0xeGYQVEe3wbjabf2UNAdghj0apQFxQk4wqgSSuQzMIofiadiax2/0",
imagePreviewUrlId: "6XIF2tp+Q+mX1QfbC1mtCg==",
query: "parm1=a&parm2=b"
});
六、客服系统
1、跳转客服系统
注意:跳转客服系统为 1.0.3 版本新增,使用该服务需要获取 appName 游戏应用包名,请务必在 SDK 初始化时配置该参数
使用 sdk 实例的 service(data, options) 方法使用客服系统,具体参数说明如下:
参数名 | 类型 | 说明 |
---|---|---|
data | Object | 跳转参数 |
options | Object | 事件回调等配置 |
参数 data 的详细说明如下:
选项 | 类型 | 必填 | 说明 |
---|---|---|---|
roleId | Number | 是 | 角色ID |
nickname | String | 是 | 角色昵称 |
level | Number | 是 | 角色等级 |
targetAppId | Number | 是 | 客服系统应用ID,可填 21658 |
参数 options 的详细说明如下:
选项 | 类型 | 说明 |
---|---|---|
success | Function | 调用成功的回调函数 |
fail | Function | 调用失败的回调函数,返回相关code码及错误消息 |
complete | Function | 调用成功的回调函数 |
示例代码:
sdk.service({
roleId: 1000010000,
nickname: "MESS",
level: 3,
targetAppId: 21658
}, {
success: function(response) {
console.log(response);
},
fail: function(error) {
console.log(error.message);
}
});
七、问卷调查
1、跳转问卷调查
注意:跳转问卷调查为 1.0.3 版本新增,使用该服务需要获取 appName 游戏应用包名,请务必在 SDK 初始化时配置该参数
使用 sdk 实例的 survey(data, options) 方法使用问卷调查,具体参数说明如下:
参数名 | 类型 | 说明 |
---|---|---|
data | Object | 跳转参数 |
options | Object | 事件回调等配置 |
参数 data 的详细说明如下:
选项 | 类型 | 必填 | 说明 |
---|---|---|---|
serverId | Number | 是 | 区服ID |
areaId | Number | 是 | 大区ID |
roleId | Number | 是 | 角色ID |
nickname | String | 是 | 角色昵称 |
level | Number | 是 | 角色等级 |
targetAppId | Number | 是 | 问卷调查应用ID,可填 21658 |
surveyId | Number | 是 | 问卷 |
参数 options 的详细说明如下:
选项 | 类型 | 说明 |
---|---|---|
success | Function | 调用成功的回调函数 |
fail | Function | 调用失败的回调函数,返回相关code码及错误消息 |
complete | Function | 调用成功的回调函数 |
示例代码:
sdk.service({
roleId: 1000010000,
nickname: "MESS",
level: 3,
targetAppId: 21658
}, {
success: function(response) {
console.log(response);
},
fail: function(error) {
console.log(error.message);
}
});
八、数据上报服务
数据上报目前支持上报到 OSSv2
和 热云广告监测平台
, 上报到 热云
时候需要运营人员提前填好相关配置信息,不清楚的请猛击 热云对接微信小程序使用说明。(✓表示支持上报)
注意:一定要先初始化数据,看大类二
,[1-4]
只上报到OSSv2
,[5]
只上报到热云
,[6,7]
既上报到OSSv2
又上报到热云
,[8]
为日志上报
,[9,10]
为自定义上报事件
,具体使用看下面说明。
1、用户未登录(OSSv2)
- OSSv2
- 热云
注意:支持上报到OSSv2
,外部无需调用,已封装到SDK内部,未登录时自动上报。
a、用途和用法
如果用户没有登录,待页面加载完成调用此方法进行数据上报。
b、接口调用
sdk.analytics.loaded(callback?);
c、参数 callback 说明
callback
上报完后的回调,可选。
d、示例
sdk.analytics.loaded();
2、用户创角(OSSv2)
- OSSv2
- 热云
注意:只支持上报到OSSv2
。
a、用途和用法
游戏内角色创建成功后,调用此方法进行数据上报。
b、接口调用
sdk.analytics.role(params, callback?);
c、参数 params 说明
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
accountId | 账号id | 必填 | 账号id(电魂id),全平台唯一,游客亦有唯一id,纯数字 |
roleId | 角色id | 必填 | 游戏内唯一(不同区服之间也不允许重复)纯数字,若游戏无角色概念,则填账号id |
zid | 游戏大区id | 非必填 | 游戏真实大区id,若无大区概念,可不填,默认值:1(初始大区编号) |
sid | 游戏服务器id | 非必填 | 大区的下一级,若游戏无服概念,可不填,默认值:1(初始服编号) |
soles | 总角色数 | 非必填 | 本次创角后玩家的总角色数(RPG游戏会有多角色的情况)默认值:1(表示首次创角) |
roleName | 角色名称 | 非必填 | 角色名称,默认为空 |
roleSex | 角色性别 | 非必填 | 角色性别,0: 男; 1: 女; 2: 其他(部分游戏无性别之分) 默认值:2 |
d、参数 callback 说明
callback
上报完后的回调,返回参数params
,可选。
e、示例
sdk.analytics.role({
accountId: 172463557,
roleId: 172463557,
zid: 1,
sid: 1,
soles: 1,
roleName: 'player1',
roleSex: 2
}, (params) => {
console.log(params);
});
3、广告上报(OSSv2)
- OSSv2
- 热云
注意:只支持上报到OSSv2
,外部无需调用,已封装到SDK内部,广告行为自动上报。
a、用途和用法
用于微信小游戏内植入广告,上报用户的操作行为,如:关闭广告、播放广告、点击广告、广告错误事件等,详细参数如下
b、接口调用
sdk.analytics.advert(params, callback?);
c、参数 params 说明
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
accountId | 账号id | 必填 | 账号id(电魂id),全平台唯一,游客亦有唯一id,纯数字 |
advertPlatform | 广告平台 | 必填 | 广告平台,例如:toutiao、weixin |
advertEvent | 事件名称 | 必填 | 事件名称值为:ad_close(关闭广告)、ad_play(播放广告)、 ad_inclick(广告内点击)、ad_error(广告错误事件) |
result | 事件结果 | 必填 | 值为:0(成功)、1(失败)、2(其他)。默认为 0 |
channelName | SDK内部渠道标识 | 非必填 | 一级市场渠道,与投放的应用市场有关,但有个例外是电魂官方,如dhunion、Xiaomi等,默认为 dhunion |
verifyType | 账号验证类型 | 非必填 | 值为:1(通过账号服务器端验证登录)、2(客户端本地认证登录)。默认为 1 |
advertType | 广告类型 | 非必填 | 值为:1(激励视频广告)。默认为 1 |
advertId | 广告ID | 非必填 | 预留参数,有就填写 |
advertPosition | 广告展示位置 | 非必填 | 预留参数,有就填写 |
playTime | 播放时长 | 非必填 | 单位:秒。仅播放结束时有值 |
message | 错误描述 | 非必填 | 当广告出现错误事件(result=1)时的描述信息,值需转为base64 |
d、参数 callback 说明
callback
上报完后的回调,返回参数params
,可选。
e、示例
sdk.analytics.advert({
accountId: 172463557,
advertPlatform: 'toutiao',
advertEvent: 'ad_close',
result: 0,
channelName: 'dhunion',
verifyType: 1,
advertType: 1,
advertId: '',
advertPosition: '',
playTime: '',
message: ''
}, (params) => {
console.log(params);
});
4、微信小游戏分享(OSSv2)
- OSSv2
- 热云
注意:只支持上报到OSSv2
,外部无需调用,已封装到SDK内部,分享后自动上报,开启调用查看上述分享服务
。
a、用途和用法
用于微信小游戏右上角分享,支持分享到朋友圈和发送给朋友,只需调用上述sdk.setShare()
方法即可。
b、接口调用
sdk.analytics.share(params, callback?);
c、参数 params 说明
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
shareType | 分享类型 | 必填 | 值为:1(发送给朋友)、2(分享到朋友圈)、3(其他) |
d、参数 callback 说明
callback
上报完后的回调,返回参数params
,可选。
e、示例
sdk.analytics.share({
shareType:1
}, (params) => {
console.log(params);
});
5、用户注册(热云)
- OSSv2
- 热云
注意:支持上报到热云
。
a、用途和用法
当有新用户注册时,注册成功后调用此方法,要确保 accountId
不能为空。
b、接口调用
sdk.analytics.register(params, callback?);
c、参数 params 说明
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
accountId | 账号id | 必填 | 账号id(电魂id),全平台唯一,游客亦有唯一id,纯数字 |
extendParams | 扩展参数 | 非必填 | JSON类型,自定义属性key只能为string类型,需要以英文字符开头,仅支持输入英文字符、数字、下划线;以“_”开头为内置属性,不可以使用。value支持字符串、数字、日期和布尔类型 |
d、参数 callback 说明
callback
上报完后的回调,返回参数params
,可选。
e、示例
sdk.analytics.register({
accountId: 172463557,
extendParams: {
age: 20,
gender: 'ale'
}
}, (params) => {
console.log(params);
});
6、用户已登录(OSSv2、热云)
- OSSv2
- 热云
注意:支持上报到OSSv2
和热云
,外部无需调用,已封装到SDK内部,在执行 sdk.authorize 进行授权登录并成功获取平台用户信息时自动上报。
a、用途和用法
如果用户已登录,调用此方法进行数据上报。
b、接口调用
sdk.analytics.logged(params, callback?);
c、参数 params 说明
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
platform | 需要上报的平台 | 必填 | 数组格式,1、['ossv2', 'reyun']表示上报到ossv2 和热云 ; 2、['reyun']表示只上报到热云 ; 3、[]或不填表示哪个平台都不上报 |
accountId | 账号id | 必填 | 账号id(电魂id),全平台唯一,游客亦有唯一id,纯数字 |
d、参数 callback 说明
callback
上报完后的回调,返回参数params
,可选。
e、示例
sdk.analytics.logged({
platform: ['ossv2', 'reyun'], // ['ossv2', 'reyun']表示上报到OSSv2和热云,若为['reyun']表示只上报到热云,[]表示都不上报
accountId: 172463557,
}, (params) => {
console.log(params);
});
7、用户充值(OSSv2、热云)
- OSSv2
- 热云
注意:支持上报到OSSv2
和热云
。
a、用途和用法
用于用户充值成功,统计充值数据,调用此方法进行数据上报。
b、接口调用
sdk.analytics.pay(params, callback?);
c、参数 params 说明
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
platform | 需要上报的平台 | 必填 | 数组格式,1、['ossv2', 'reyun']表示上报到ossv2 和热云 ; 2、['reyun']表示只上报到热云 ; 3、[]或不填表示哪个平台都不上报 |
accountId | 账号id | 必填 | 账号id(电魂id),全平台唯一,游客亦有唯一id,纯数字 |
orderId | 订单编号 | 必填 | 唯一确定订单标志,注意不要出现重复订单记录,只需要输出成功的记录 |
payAmount | 充值金额 | 必填 | 本次充值金额,整数 |
payType | 支付方式 | 必填 | 支付类型,例如支付宝(alipay),银联(unionpay),微信支付(weixinpay),易宝支付(yeepay),默认值 weixinpay |
currencyType | 货币类型 | 必填 | 货币类型,按照国际标准组织ISO 4217中规范的3位字母,例如人民币(CNY)、美金(USD)等,默认为 CNY |
roleId | 角色id | 必填 | 游戏内唯一(不同区服之间也不允许重复)纯数字,若游戏无角色概念,则填账号id |
itemId | 商品id | 必填 | 充值商品id |
payChannel | 支付渠道id | 非必填 | 默认值同 appStoreId(应用商店渠道id) |
zid | 游戏大区id | 非必填 | 游戏真实大区id,若无大区概念,可不填,默认值:1(初始大区编号) |
roleLevel | 角色等级 | 非必填 | 角色等级,默认值:1 |
vipLevel | vip等级 | 非必填 | vip等级,默认为空 |
d、参数 callback 说明
callback
上报完后的回调,返回参数params
,可选。
e、示例
sdk.analytics.pay({
platform: ['ossv2', 'reyun'], // ['ossv2', 'reyun']表示上报到OSSv2和热云,若为['reyun']表示只上报到热云,[]表示都不上报
accountId: 172463557,
orderId: 172463557,
payAmount: 399,
payType: 'weixinpay',
currencyType: 'CNY',
roleId: 123456,
itemId: 'com.dianhun.pay.01',
payChannel: 2023,
zid: 1,
roleLevel: 20,
vipLevel: 11
}, (params) => {
console.log(params);
});
8、日志上报
注意:上报到日志系统。
a、用途和用法
记录用户的操作行为,快速定位问题的根源、追踪程序执行的过程、数据的变化等,如:点击登录、下载等行为。
b、接口调用
sdk.analytics.log(params, callback?);
c、参数 params 说明
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
eventId | 事件ID | 必填 | 是已知提前定义好的值,查看事件ID规则 |
logContent | 日志内容 | 必填 | 日志上报描述 |
accountId | 账号id | 非必填 | 账号id(电魂id),全平台唯一,游客亦有唯一id,纯数字 |
subEventId | 子事件ID | 非必填 | 默认为 0 |
logLevel | 事件级别 | 非必填 | 值为 d(默认,表示正常流程或成功日志) 或 e(上报失败日志) |
d、参数 callback 说明
callback
上报完后的回调,返回参数params
,可选。
e、示例
sdk.analytics.log({
eventId: '530000::SDK_GOOGLE_LOGIN',
logContent: '谷歌登录日志上报',
accountId: 172463557,
subEventId: '0',
logLevel: 'd'
}, (params) => {
console.log(params);
});
9、自定义事件(OSSv2)
a、用途和用法
由于自定义事件名称格式、参数不一样,如果有需要请分别上报。
b、接口调用
sdk.analytics.event(params, callback?);
c、参数 params 说明
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
accountId | 账号id | 必填 | 账号id(电魂id),全平台唯一,游客亦有唯一id,纯数字 |
eventName | 自定义事件类型 | 必填 | 使用英文单词命名,如’levelUp’,‘joinCorp’ |
eventObj | 事件操作对象 | 非必填 | 如果是按钮点击事件,则对应按钮ID |
eventResult | 事件操作结果 | 非必填 | 如果是按钮点击事件,则返回按钮点击的结果,比如是调整到另外一个页面,就填写结果页ID |
eventCode | 事件操作原因 | 非必填 | 事件原因code |
dataMode | 数据统计方式 | 非必填 | 1. 按 eventName + eventObj + eventCode 聚合后统计人数次数; 2. 按 eventName + eventObj + eventCode 取每个用户最新记录,然后统计人数次数 |
extendParams | 扩展参数 | 非必填 | 格式为json字符串 ,如:JSON.stringify({ kills: 0, deaths: 0, assistant: 0 }); 参数最多20 个 |
d、参数 callback 说明
callback
上报完后的回调,返回参数params
,可选。
e、示例
sdk.analytics.event({
accountId: 172463557,
eventName: 'levelUp',
eventObj: '',
eventResult: '',
eventCode: '',
dataMode: '',
extendParams: ''
}, (params) => {
console.log(params);
});
10、自定义事件(热云)
a、用途和用法
由于自定义事件名称格式、参数不一样,如果有需要请分别上报。
b、接口调用
sdk.analytics.eventReyun(eventname, params);
c、参数说明
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
eventName | 自定义事件名称 | 必填 | 自定义事件名称,必须为event_1到event_30 |
params | 自定义参数JSON类型 | 非必填 | 自定义属性key只能为string类型,需要以英文字符开头,仅支持输入英文字符、数字、下划线;以“_”开头为内置属性,不可以使用。value支持字符串、数字、日期和布尔类型。 |
d、示例
sdk.analytics.eventReyun('event_1', { "age": 20 });
九、小游戏接入广告
a、用途和用法
用于小游戏内嵌入广告,目前仅支持微信激励视频广告,接入之前需在小游戏开发者后台创建广告并获取广告位ID,进入「推广 - 流量主 - 广告位管理」,请提前使用下述 create
方法创建广告,创建后广告视频会自动加载,且已接入上述广告上报
方法,数据自动上报。
注意:为了避免低版本微信不支持该方法,开发者需登录小程序管理后台,进入「设置 - 基本设置 - 基础库最低版本设置」进行配置,请设置最低支持为2.8.0,版本过低则无法正常打开小程序,且提示用户更新客户端版本。
b、接口调用
// 具体使用请参考下面的示例
const wxAd = sdk.ad.create(params);
wxAd.show(params?, callback?);
c、参数说明(params)
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
adUnitId | 广告位ID | 必填 | 在微信小游戏后台创建后获得 |
advertPlatform | 广告平台 | 非必填 | 广告平台,例如:toutiao、weixin等,默认为weixin |
advertPosition | 广告展示位置 | 非必填 | 用于展示广告位置信息 |
onLoad | 回调 | 非必填 | 视频加载成功后的回调,返回参数为当前广告位id |
onClose | 回调 | 非必填 | 点击关闭广告后的回调,返回参数为当前广告位id和state值,state: 1正常播放结束,可以下发游戏奖励/ 2播放中途退出,不下发游戏奖励 |
d、创建后 show 方法参数说明
wxAd.show(params?, callback?)
有两个参数 params
和 callback
,均为非必填,params
参数值如下:
参数名称 | 参数说明 | 状态 | 参数描述 |
---|---|---|---|
advertPosition | 广告展示位置 | 非必填 | 同一则广告在不同地方展示的位置信息,此属性会覆盖create 方法中的传递的属性并以此上报 |
e、示例
// 假如接入了两则广告
// 广告1 - 需提前创建
const wxAd01 = sdk.ad.create({
adUnitId: 'adunit-e567c8d56ff69c0e1',
avertPlatformd: 'weixin',
advertPosition: '',
onLoad: (args) => {
console.log(args); // { adUnitId: 'adunit-e567c8d56ff69c0e', advertPosition: '' }
},
onClose: (args) => {
console.log(args); // { adUnitId: 'adunit-e567c8d56ff69c0e', advertPosition: '', state: 1 } state: 1正常播放结束,可以下发游戏奖励/ 2播放中途退出,不下发游戏奖励
}
});
// show 用于显示视频,默认隐藏
wxAd01.show({ advertPosition: '' }, callback?); // callback为显示视频后的回调,可不传
// 广告2 - 需提前创建
const wxAd02 = sdk.ad.create({
adUnitId: 'adunit-e567c8d56ff69c0e2',
avertPlatformd: 'weixin',
advertPosition: '',
onLoad: (args) => {
console.log(args); // { adUnitId: 'adunit-e567c8d56ff69c0e', advertPosition: '' }
},
onClose: (args) => {
console.log(args); // { adUnitId: 'adunit-e567c8d56ff69c0e', advertPosition: '', state: 1 } state: 1正常播放结束,可以下发游戏奖励/ 2播放中途退出,不下发游戏奖励
}
});
// show 用于显示视频,默认隐藏
wxAd02.show({ advertPosition: '' }, callback?); // callback为显示视频后的回调,可不传