更新记录
1.2.0(2024-08-16)
- andorid 更新SDK版本为6.16.3(最新版)
1.1.0(2023-06-15)
本次主要更新:
- 更新andorid版本的SDK为: 6.14.1 2.增加andorid版本的相关方法和参数
1.0.1(2022-11-03)
新版首发
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 14.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | 适用版本区间:11 - 17 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
KJ-RangersAppLog
巨量广告移动应用SDK上报数据(ios、andorid)
注意事项
1. 本人没有账号测试,只是封装了SDK里方法,请试用合适再购买
巨量广告移动应用SDK 官网文档:https://open.oceanengine.com/labels/7/docs/1696710651039744
使用
<template>
<view class="content">
<button type="primary" @click="init">初始化</button>
<view class="title">----上报行为日数据-必传埋点-----</view>
<button type="primary" @click="registerEvent">注册</button>
<button type="primary" @click="purchaseEvent">支付</button>
<view class="title">----上报行为日数据-其它预定义事件-----</view>
<button type="primary" @click="loginEvent">登录</button>
<button type="primary" @click="accessAccount">绑定社交账号</button>
<button type="primary" @click="questEvent">进行任务</button>
<button type="primary" @click="updateLevelEvent">升级</button>
<button type="primary" @click="createGameRoleEvent">创建角色</button>
<button type="primary" @click="viewContentEvent">查看内容/商品详情</button>
<button type="primary" @click="addCartEvent">加入购买/购物车</button>
<button type="primary" @click="checkoutEvent">提交购买/下单</button>
<button type="primary" @click="accessPaymentChannelEvent">添加支付渠道</button>
<button type="primary" @click="addToFavouriteEvent">添加至收藏</button>
<view class="title">----上报行为日数据-其它预定义事件 插件v1.1.0版本新增 andorid才有</var>-----</view>
<button type="primary" @click="adButtonClick">广告按钮点击</button>
<button type="primary" @click="adShow">广告开始展示</button>
<button type="primary" @click="adShowEnd">广告结束展示</button>
<button type="primary" @click="levelUp">(总等级)升级和经验</button>
<button type="primary" @click="startPlay">开始玩法</button>
<button type="primary" @click="endPlay">结束玩法</button>
<button type="primary" @click="getCoins">获得游戏币</button>
<button type="primary" @click="costCoins">消耗游戏币</button>
<button type="primary" @click="gameInitInfo">初始化信息</button>
<view class="title">----上报行为日数据-自定义埋点事件-----</view>
<button type="primary" @click="eventV3">日志上报,在初始化之后设置才能调用</button>
<view class="title">----设置用户唯一标识(可选)-----</view>
<button type="primary" @click="setCurrentUserUniqueID">设置用户唯一标识(可选)</button>
<button type="primary" @click="clearUserUniqueID">清除用户唯一标识(ios)</button>
</view>
</template>
<script>
/**
* 注意所有方法回调:{"result":true},是执行完sdk里方法成功之后的,而不是sdk方法的返回值(ios setCurrentUserUniqueID 方法除外)
* */
const KJRangersAppLog = uni.requireNativePlugin('KJ-RangersAppLog');
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {
},
methods: {
init() {
var dic;
if (plus.os.name == 'Android') {
dic = {
/**InitConfig类**/
"appID": "",
"channel": "",
"imeiEnable": false, //建议关停获取IMEI(出于合规考虑)
"autoTrackEnabled": true, // 全埋点开关,true开启,false关闭
"logEnable": true, // true:开启日志,参考4.3节设置logger,false:关闭日志
"enablePlay": false, // 是否开启游戏模式,游戏APP建议设置为 true
/**插件v1.1.0版本新增**/
"macEnable": true, //设备的mac地址采集,默认开启
"androidIdEnabled": true, //设备的Android ID采集,默认开启
"autoActive": true, //是否自动激活
/**以下参数,是官网文档没有说明,是我在源码里找的,不知道什么意思**/
// "abEnable": true,
// "aliyunUdid": "",
// "anonymous": true,
// "appImei": "",
// "appName": "",
// "autoStart": true,
// "autoTrackEventType": 1,
// "congestionControlEnable": true,
// "dbName": "",
// "eventFilterEnable": true,
// "gaidEnabled": true,
// "googleAid": "",
// "h5BridgeAllowAll": true,
// "h5BridgeEnable": true,
// "h5CollectEnable": true,
// "handleLifeCycle": true,
// "harmonyEnable": true,
// "imeiEnable": true,
// "macEnable": true,
// "metaSecEnabled": true,
// "migrateEnabled": true,
// "monitorEnabled": true,
// "notRequestSender": true,
// "oaidEnabled": true,
// "operatorInfoEnabled": true,
// "reportOaidEnable": true,
// "screenOrientationEnabled": true,
// "silenceInBackground": true,
// "trackEventEnabled": true,
/**AppLog类**/
"encryptAndCompress": true,
"clipboardEnabled": true,
"privacyMode": true,
"googleAid": "",
"userAgent": "",
"userUniqueID": "",
"headerInfo": {
"key": ""
},
"isDelayInit": false, //是否延迟初始化 为true的话对应官网文档 4.3延迟初始化
};
} else {
dic = {
"appID": "",
"channel": "",
"trackEventEnabled": true, //是否开启事件上报,默认YES,关闭后任何事件包括用户自定义事件都不会上报
"autoTrackEnabled": true, // 全埋点开关,true开启,false关闭
"H5AutoTrackEnabled": true, // 当无埋点开关开启时,是否采集H5页面的无埋点事件,默认开(YES)
"screenOrientationEnabled": false, // 是否采集屏幕方向,默认不采集(NO)
"trackGPSLocationEnabled": false, // 是否采集GPS,默认不采集(NO)
"gameModeEnable": false, //游戏模式,开启游戏模式会默认上报游戏心跳事件
"autoActiveUser": true, //是否自动激活。默认YES,一般情况请不要修改
"logNeedEncrypt": true, //日志上报是否加密。用于debug情况可以抓包调试
"autoFetchSettings": true, //是否自动拉配置。默认YES,一般情况请不要修改。仅私有化部署情况,可能不需要自动拉取配置
"abEnable": true, //是否开AB。默认YES,一般情况请不要修改
};
}
KJRangersAppLog.init(dic, (res) => {
console.log("init:" + JSON.stringify(res));
});
},
registerEvent() {
var dic = {
"method": "wechat", //注册方式,@"wechat"、@"qq"
"isSuccess": true //是否成功
};
KJRangersAppLog.registerEvent(dic, (res) => {
console.log("registerEvent:" + JSON.stringify(res));
});
},
purchaseEvent() {
var dic = {
"contentType": "", //内容类型
"contentname": "", //内容名
"contentID": "", //内容id
"contentNumber": 0, //内容数量
"channel": "", //支付渠道
"currency": "", //币种
"isSuccess": true, //是否成功
"amount": 0, //货币金额,不能为0
};
KJRangersAppLog.purchaseEvent(dic, (res) => {
console.log("purchaseEvent:" + JSON.stringify(res));
});
},
loginEvent() {
var dic = {
"method": "wechat", //登录方式,@"wechat"、@"qq"
"isSuccess": true //是否成功
};
KJRangersAppLog.loginEvent(dic, (res) => {
console.log("loginEvent:" + JSON.stringify(res));
});
},
accessAccount() {
var dic = {
"type": "wechat", //账号类型
"isSuccess": true //是否成功
};
KJRangersAppLog.accessAccount(dic, (res) => {
console.log("accessAccount:" + JSON.stringify(res));
});
},
questEvent() {
var dic = {
"questID": "wechat", //任务id
"questType": "wechat", //任务类型
"questName": "wechat", //教学/任务/副本名
"questNumer": 1, // 第几个任务
"description": "wechat", //其他描述
"isSuccess": true //是否成功
};
KJRangersAppLog.questEvent(dic, (res) => {
console.log("questEvent:" + JSON.stringify(res));
});
},
updateLevelEvent() {
var dic = {
"roleID": "", //当前等级
};
KJRangersAppLog.updateLevelEvent(dic, (res) => {
console.log("updateLevelEvent:" + JSON.stringify(res));
});
},
createGameRoleEvent() {
var dic = {
"level": 1, //角色id
};
KJRangersAppLog.createGameRoleEvent(dic, (res) => {
console.log("createGameRoleEvent:" + JSON.stringify(res));
});
},
viewContentEvent() {
var dic = {
"contentType": "", //内容类型
"contentName": "", //内容名
"contentID": "" //内容id
};
KJRangersAppLog.viewContentEvent(dic, (res) => {
console.log("viewContentEvent:" + JSON.stringify(res));
});
},
addCartEvent() {
var dic = {
"contentType": "", //内容类型
"contentName": "", //内容名
"contentID": "", //内容id
"contentNumber": 1, //内容数量
"isSuccess": true //是否成功
};
KJRangersAppLog.addCartEvent(dic, (res) => {
console.log("addCartEvent:" + JSON.stringify(res));
});
},
checkoutEvent() {
var dic = {
"contentType": "", //内容类型
"contentName": "", //内容名
"contentID": "", //内容id
"contentNumber": 1, //内容数量
"isVirtualCurrency": false, //是否使用的是虚拟货币
"virtualCurrency": "", //虚拟币币种
"currency": "", //真实货币类型
"currency_amount": 1, //货币金额
"isSuccess": true //是否成功
};
KJRangersAppLog.checkoutEvent(dic, (res) => {
console.log("checkoutEvent:" + JSON.stringify(res));
});
},
accessPaymentChannelEvent() {
var dic = {
"channel": "", //支付渠道
"isSuccess": true //是否成功
};
KJRangersAppLog.accessPaymentChannelEvent(dic, (res) => {
console.log("accessPaymentChannelEvent:" + JSON.stringify(res));
});
},
addToFavouriteEvent() {
var dic = {
"contentType": "", //内容类型
"contentName": "", //内容名
"contentID": "", //内容id
"contentNumber": 1, //内容数量
"isSuccess": true //是否成功
};
KJRangersAppLog.addCartEvent(dic, (res) => {
console.log("addCartEvent:" + JSON.stringify(res));
});
},
adButtonClick() {
/**
广告按钮点击:gt_ad_button_click ad_type string
广告类型:激励视频、插屏、banner等,直接使用汉字或者英文进行标识 ad_position_type string
广告点位类型:按照提供分类接入 ad_position string
广告点位:复活、翻倍、试用、buff、奖励道具、新道具、减CD等,直接使用文字或者英文进行标识
触发条件:用户点击app内各广告位button时。
*/
var dic = {
"ad_type": "",
"ad_position_type": "",
"ad_position": "",
"otherParams": {
"key": "value"
}
};
KJRangersAppLog.adButtonClick(dic, (res) => {
console.log("adButtonClick:" + JSON.stringify(res));
});
},
adShow() {
/**
广告开始展示:gt_ad_show ad_type string
广告类型:激励视频、插屏、banner等,直接使用汉字或者英文进行标识 ad_position_type string
广告点位类型:按照提供分类接入 ad_position string
广告点位:复活、翻倍、试用、buff、奖励道具、新道具、减CD等,直接使用文字或者英文进行标识
触发条件:用户点击并观看广告时。穿山甲广告有回调,可以直接获取。
*/
var dic = {
"ad_type": "",
"ad_position_type": "",
"ad_position": "",
"otherParams": {
"key": "value"
}
};
KJRangersAppLog.adShow(dic, (res) => {
console.log("adShow:" + JSON.stringify(res));
});
},
adShowEnd() {
/**
广告结束展示:gt_ad_show_end ad_type string
广告类型:激励视频、插屏、banner等,直接使用汉字或者英文进行标识 ad_position_type string
广告点位类型:按照提供分类接入 ad_position string
广告点位:复活、翻倍、试用、buff、奖励道具、新道具、减CD等,直接使用文字或者英文进行标识 result string
广告观看结果:跳过、成功、失败等,使用英文进行标识. 跳过标记为skip, 成功标记为success,失败为fail 触发条件:用户观看广告结束时。
*/
var dic = {
"ad_type": "",
"ad_position_type": "",
"ad_position": "",
"result": "",
"otherParams": {
"key": "value"
}
};
KJRangersAppLog.adShowEnd(dic, (res) => {
console.log("adShowEnd:" + JSON.stringify(res));
});
},
levelUp() {
/**
(总等级)升级和经验:gt_levelup lev int
当前玩家等级 get_exp int
获得经验 method string
获得经验途径:闯关成功、引导完成、领取奖励等,使用汉字或者英文进行标识 aflev int
用户获得经验后等级,如获得经验未导致升级,则lev=aflev,如导致升级,则lev
触发条件:用户获得经验或者等级发生变化时。
*/
var dic = {
"lev": 1,
"get_exp": 1,
"method": "",
"aflev": 1,
"otherParams": {
"key": "value"
}
};
KJRangersAppLog.levelUp(dic, (res) => {
console.log("levelUp:" + JSON.stringify(res));
});
},
startPlay() {
/**
开始玩法:gt_start_play ectype_name string
针对闯关性质玩法,标注关卡名称 触发条件:用户开始玩法时。
*/
var dic = {
"ectype_name": "",
"otherParams": {
"key": "value"
}
};
KJRangersAppLog.startPlay(dic, (res) => {
console.log("startPlay:" + JSON.stringify(res));
});
},
endPlay() {
/**
结束玩法:gt_end_play ectype_name string
针对闯关性质玩法,标注关卡名称 result string
玩法的结果:未完成、成功、失败等,使用英文进行标识. 未完成标记为uncompleted, 成功标记为success,失败为fail duration int
消耗时间,单位秒 触发条件:用户结束玩法时,涵盖中途退出、完成但失败和完成且成功。
*/
var dic = {
"ectype_name": "",
"result": "", //FAIL SUCCESS UNCOMPLETED
"duration": 1,
"otherParams": {
"key": "value"
}
};
KJRangersAppLog.endPlay(dic, (res) => {
console.log("endPlay:" + JSON.stringify(res));
});
},
getCoins() {
/**
获得游戏币:gt_get_coins coin_type string
货币类型:元宝、绑元、金币、银币等,使用文字或者英文进行标识 method string
获得途径:观看激励视频、闯关成功、活动奖励等,使用文字或者英文进行标识 coin_num int
获得数量 触发条件:用户获得游戏币,导致游戏币增加时
*/
var dic = {
"coin_type": "",
"method": "",
"coin_num": 1,
"otherParams": {
"key": "value"
}
};
KJRangersAppLog.getCoins(dic, (res) => {
console.log("getCoins:" + JSON.stringify(res));
});
},
costCoins() {
/**
消耗游戏币:gt_cost_coins coin_type string
货币类型:元宝、绑元、金币、银币等,使用文字或者英文进行标识 method string
消耗途径:复活、购买道具、解锁关卡等,使用文字或者英文进行标识 coin_num int
消耗数量 触发条件:用户消耗游戏币,导致游戏币减少时。
*/
var dic = {
"coin_type": "",
"method": "",
"coin_num": 1,
"otherParams": {
"key": "value"
}
};
KJRangersAppLog.costCoins(dic, (res) => {
console.log("costCoins:" + JSON.stringify(res));
});
},
gameInitInfo() {
/**
初始化信息:gt_init_info lev int
玩家等级 coin_type string
获得货币的类型 coin_left int 用户身上剩余的货币数量 触发条件:用户启动游戏,初始化完成时上报
*/
var dic = {
"lev": 1,
"coin_type": "",
"coin_left": 1,
"otherParams": {
"key": "value"
}
};
KJRangersAppLog.gameInitInfo(dic, (res) => {
console.log("gameInitInfo:" + JSON.stringify(res));
});
},
eventV3() {
var dic = {
"event": "test", //事件名称,不能为nil或空字符串
"params": { //事件参数。可以为空或者nil
"key": ""
}
};
KJRangersAppLog.eventV3(dic, (res) => {
console.log("eventV3:" + JSON.stringify(res));
});
},
setCurrentUserUniqueID() {
var dic = {
"userUniqueID": "test" //用户id,如无特殊需求,请勿传 空字符串 或者 全是空格的字符串。若为nil或空字符串则登出,相当于调用`clearUserUniqueID`。
};
KJRangersAppLog.setCurrentUserUniqueID(dic, (res) => {
console.log("setCurrentUserUniqueID:" + JSON.stringify(res));
});
},
clearUserUniqueID() {
KJRangersAppLog.clearUserUniqueID((res) => {
console.log("clearUserUniqueID:" + JSON.stringify(res));
});
},
getSsid() {
KJRangersAppLog.getSsid((res) => {
console.log("getSsid:" + JSON.stringify(res));
});
},
getDid() {
KJRangersAppLog.getDid((res) => {
console.log("getSsid:" + JSON.stringify(res));
});
},
getIid() {
KJRangersAppLog.getIid((res) => {
console.log("getSsid:" + JSON.stringify(res));
});
}
}
}
</script>
<style>
.title {
text-align: center;
margin-top: 8px;
margin-bottom: 8px;
color: red;
font-size: 20px;
}
</style>