激励广告
激励广告
此章节将演示如何请求在APICloud
环境下请求与展示激励广告
激励广告是用户通过观看短视频,获取应用内奖励(游戏的复活,任务奖励,游戏金币)等,具体场景由开发者定义。
请求并展示
pages/ad/reward_video.stml
/* 请求并自动播放激励广告(推荐) */
loadRewardVideo() {
isRewardVideoAdAvaliable = false
// 防止用户的重复点击导致广告多次加载播放
api.showProgress({
modal: true
})
var zjSdk = api.require("zjSdk")
// String posId -> 广告位ID | String uid -> 用户ID | String extra -> 透传信息(默认不需要设置)
// boolean volumeOn -> 是否开启视频声音,默认开启
var params = { posId: ZJSdkPosId.rewardVideo, uid: ZJSdkPosId.uid, volumeOn: true }
zjSdk.loadRewardVideo(params, function (ret) {
api.hideProgress()
switch (ret.event) {
case ZJSdkEvent.EVENT_AD_ERROR: {
api.toast({
msg: "激励广告出错:" + ret.msg,
})
console.log(ZJSdkEvent.EVENT_AD_ERROR + ": " + ret.code + " | " + ret.msg)
break
}
case ZJSdkEvent.EVENT_SHOW: {
console.log("激励广告展示成功")
break
}
case ZJSdkEvent.EVENT_CLICK: {
console.log("激励广告点击")
break
}
case ZJSdkEvent.EVENT_REWARD: {
console.log("激励广告获取奖励")
break
}
case ZJSdkEvent.EVENT_CLOSE: {
console.log("激励广告关闭")
break
}
}
})
}
激励广告预加载
激励广告预加载可以提前加载激励广告,当用户点击的时候,可以快速展示激励广告,提升用户体验。
pages/ad/reward_video.stml
/* 激励广告预加载,需要配合 #showRewardVideo 方法播放 */
preloadRewardVideo() {
api.showProgress({
modal: true
})
var zjSdk = api.require("zjSdk")
// String posId -> 广告位ID | String uid -> 用户ID | String extra -> 透传信息(默认不需要设置)
// boolean volumeOn -> 是否开启视频声音,默认开启 | boolean isPreLoad -> 是否为预加载
var params = { posId: ZJSdkPosId.rewardVideo, uid: ZJSdkEvent.uid, volumeOn: false, isPreLoad: true }
zjSdk.loadRewardVideo(params, function (ret) {
api.hideProgress()
if (ret.event == ZJSdkEvent.EVENT_AD_ERROR) {
api.toast({
msg: "激励广告预加载失败:" + ret.msg,
})
console.log(ZJSdkEvent.EVENT_AD_ERROR + ": " + ret.code + " | " + ret.msg)
} else if (ret.event == ZJSdkEvent.EVENT_LOAD_SUCCESS) {
// 仅指定 isPreload==true 预加载请求时回调加载成功
console.log("激励广告预加载成功")
isRewardVideoAdAvaliable = true;
}
})
},
// 展示激励广告,预加载请求回调 zkSdkEvent.EVENT_LOAD_SUCCESS 后调用,否则返回错误
// 非预加载请求不需要调用,SDK会自动播放
showRewardVideo() {
if (isRewardVideoAdAvaliable) {
isRewardVideoAdAvaliable = false
var zjSdk = api.require("zjSdk")
zjSdk.showRewardVideo({}, function (ret) {
switch (ret.event) {
case ZJSdkEvent.EVENT_AD_ERROR: {
api.toast({
msg: "激励广告展示出错:" + ret.msg,
})
console.log(ZJSdkEvent.EVENT_AD_ERROR + ": " + ret.code + " | " + ret.msg)
break
}
case ZJSdkEvent.EVENT_SHOW: {
console.log("激励广告展示成功")
break
}
case ZJSdkEvent.EVENT_CLICK: {
console.log("激励广告点击")
break
}
case ZJSdkEvent.EVENT_REWARD: {
console.log("激励广告获取奖励")
break
}
case ZJSdkEvent.EVENT_CLOSE: {
console.log("激励广告关闭")
break
}
}
})
} else {
api.toast({
msg: '请先预加载广告'
})
}
}