接入文档-JavaScript接入

适用于Laya,Creator等可直接调用JavaScript接口的引擎接入小游戏

对接流程

接入准备

域名加白

接入前请检查下述域名是否已加进域名配置白名单,配置项有request合法域名、socket合法域名、uploadFile合法域名、downloadFile合法域名等(根据具体使用到那些域名项进行配置,也可以通配)。

https://c.vigame.cn
https://p.vigame.cn
https://x.vimedia.cn
https://u.vigame.cn
https://r.vigame.cn
https://x.vigame.cn
https://a.vigame.cn 

配置登录参数以及支付回调参数

联系运营同学配置

动能参数

联系运营同学提供

H5动能内部appid
H5动能内部appKey

广告位配置

联系运营同学配置

游戏的广告位埋点

接入步骤与常用接口

将下载好的dnsdk.js文件放入游戏脚本目录下

import './dnsdk.js';

js_load事件上报(微信小游戏必接)

require('dnsdk-config.js');

dnsdk-config.js内容如下

var GameGlobal = window.GameGlobal || {};
window.GameGlobal = GameGlobal;
GameGlobal.DnsdkConfig = {};
GameGlobal.DnsdkConfig.appid = '动能appId'; 

示例截图

初始化(必接)

/**
 * sdk初始化
 * @param 初始化参数,object类型
 */
dnsdk.nativeInit = function (obj)

参数说明

属性
类型
默认值
必填
说明

appId

string

动能appid

appKey

string

动能appkey

offerId

string

""

米大师侧申请的应用ID

cloudEnv

string

""

云环境 ID

payRate

number

10

支付比例,小游戏平台配置支付时设置的比例(1:1、1:10、1:100)

gravityEngineToken

string

""

引力引擎 token

callBack

function

初始化回调

初始化示例

let obj = {
    appId: '动能appId',
    appKey: '动能appKey',
    callBack: function (ret, openid, usercode) {
        if (ret) {
            console.log('dnsdk初始化成功 openId = ' + openid + ', userCode = ' + usercode);
        } else {
            console.log('dnsdk初始化失败');
        }
    }
};
dnsdk.nativeInit(obj);

统计(必接)

1.1 自定义事件(必接)

其他自定义事件可以使用该接口上报

/**
 * 自定义事件上报
 * @param eventId 事件名称
 * @param data 上报数据object类型
 */
dnsdk.tjSendCustomEvent(eventId, data);

参数说明

属性
类型
默认值
必填
说明

eventId

string

事件ID

data

object

上报数据

使用示例

dnsdk.tjSendCustomEvent('eventId', {key1: 'value1', key2: 'value2'});

1.1.1 启动流程上报(必接)

事件定义
事件ID
上报方
触发时机
data

游戏loading页面(必接)

app_loading_show

游戏实现上报逻辑

游戏引擎初始化后就触发上报

非必填

游戏内首页(必接)

app_home_show

游戏实现上报逻辑

主页展示时

非必填

使用示例

dnsdk.tjSendCustomEvent("app_loading_show");
dnsdk.tjSendCustomEvent("app_home_show");

1.2 转化行为上报(必接)

/**
 * 转化行为上报
 * @param eventId 事件名称
 * @param data 上报数据object类型
 */
dnsdk.tjSendTrackingEvent(eventId, data);
事件定义
事件ID
上报方
触发时机
data

激活(必接)

active

游戏实现上报逻辑

首次进入主页触发

非必填

注册(必接)

active_register

游戏实现上报逻辑

完成角色创建后触发。如果没有角色创建过程,可跟active事件同时触发。

非必填

次留(必接)

next_day_open

游戏实现上报逻辑

用户激活后次日(第二个自然日)在互联网环境下打开微信小游戏

非必填

使用示例

dnsdk.tjSendTrackingEvent("active");
dnsdk.tjSendTrackingEvent("active_register");
dnsdk.tjSendTrackingEvent("next_day_open");

1.3 关卡统计上报(必接)

1.3.1 关卡开始

// 关卡开始
var data = {
    levelid: level //关卡id
}
dnsdk.tjSendLevelEvent("begin", data);

1.3.2 关卡获胜

// 关卡获胜
var data = {
    levelid: level, //关卡id
    score: score //关卡得分
}
dnsdk.tjSendLevelEvent("complete", data);

1.3.3 关卡失败

// 关卡失败
var data = {
    levelid: level, //关卡id
    score: score //关卡得分
}
dnsdk.tjSendLevelEvent("fail", data);

广告(必接)

1.1 打开广告

/**
 * 打开广告
 * @param {广告位名称} pos 
 * @param {自定义style} diyStyle 
 * @param {回调} callBack
 */
dnsdk.adManager.openAd = function (pos, diyStyle = "", callBack)

使用示例

// 打开激励视频广告
dnsdk.adManager.openAd("动能提供的激励视频广告位", "", (ret, data) => {
      console.log('打开视频广告 data = ' + JSON.stringify(data));
      if (ret == 0) {
        console.log("打开成功");
      } else {
        console.log("打开失败");
      }
});

// 打开插屏广告
dnsdk.adManager.openAd("动能提供的激励视频广告位", "", (ret, data) => {
      console.log('打开插屏广告 data = ' + JSON.stringify(data));
      if (ret == 0) {
        console.log("打开成功");
      } else {
        console.log("打开失败");
      }
});

// 打开banner广告
dnsdk.adManager.openAd("banner");

1.2 广告是否缓存好

/**
 * 广告是否已缓存
 * @param {广告位名称} adPos
 * @returns ture已缓存;false未缓存
 */
dnsdk.adManager.isAdReady = function (adPos)

1.3 某关卡是否可以打开该广告

/**
 * 某关卡是否可以打开该广告
 * @param {广告位名称} adPos
 * @param {关卡id} level 
 * @returns ture可以;false不可以
 */
dnsdk.adManager.isAdBeOpenInLevel = function (adPos, level)

1.4 关闭广告

/**
 * 关闭广告
 * @param {广告位名称} adPos
 */
dnsdk.adManager.closeAd = function (adPos)

分享(选接)

1.1 主动分享

分享接口调用后,不再返回用户是否分享完成事件

/**
 * 主动分享
 * @param {动能提供的分享参数} shareName
 * @param {自定义数据使用'&'拼接} userData
 * @param {抖音参数,微信无效} shareType
 */
dnsdk.core.shareAppMessage = function (shareName, userData, shareType, callBack)

使用示例

dnsdk.core.shareAppMessage("动能提供的分享参数","t1=1&t2=2", "", (ret, data) => {
    if(ret) {
        //微信无法监听用户是否真正的分享
        console.log("分享接口调用成功");
    } else {
        console.log("分享接口调用失败");
    }
});

1.2 点击右上角分享

点击右上角"..."进行分享触发,前提是要先主动调用设置分享监听OnShareAppMessage,触发右上角分享时才会调用下面的设置。

/**
 * 右上角分享
 * @param {动能提供的分享参数} shareName
 * @param {自定义数据使用'&'拼接} userData
 */
dnsdk.core.onShareAppMessage = function (shareName, userData)

使用示例

dnsdk.core.onShareAppMessage ("动能提供的分享参数", "t1=1&t2=2");

Last updated