创建激励广告成功,但是显示不出来,加载也没反馈。
在开发者工具中的打印如下:
[TMG] [v-ad] createVideoAd success {errMsg: "createVideoAd:ok"}
load 之后就没有任何输出!麻烦帮忙看下!
没有资源的话,也要超时啊,不然很尴尬啊,直接卡死了。
/**
* 显示激励广告
* @param adId 广告单元 ID
* @param promiseFunc
* @returns
*/
showRewardedVideo(adUnitId: string, promiseFunc: IPromiseFunc<IResult<number>>): Promise<IResult<number>> {
// 用户触发广告后,显示激励视频广告
return promiseFunc(rs => {
const that = this;
let onceResolve = N_CALL(rs, 1);
// 延迟创建机制:如果没有激励视频,那么创建一个单例...
const videoAd = tt.createRewardedVideoAd({
adUnitId: adUnitId
});
videoAd
.load()
.then(() => {
console.log(`激励广告加载完毕`)
videoAd
.show()
.then(()=> {
console.log(`激励广告 show 完毕`)
})
.catch(() => {
console.log(`激励广告 show catch`)
onceResolve(result.FAIL(ETTADErrCode.AD_SHOW_FAIL));
})
})
.catch(() => {
console.log(`激励广告 load catch`)
rs(result.FAIL(ETTADErrCode.AD_LOAD_FAIL))
})
videoAd.onError(err => {
let DYErrCodeMap = {
1000: '后端接口调用失败',
1001: '参数错误',
1002: '广告单元无效',
1003: '内部错误',
1004: '无合适的广告',
1005: '广告组件审核中',
1006: '广告组件被驳回',
1007: '广告组件被封禁',
1008: '广告单元已关闭',
20002: '不支持 banner 广告 API',
120002: '广告发送次数已达当日上限',
}
console.log(`播放广告失败: ${err.errCode} `, DYErrCodeMap[err.errCode]);
onceResolve(result.FAIL(ETTADErrCode.AD_ERR_CODE));
});
videoAd.onClose(res => {
/**
* 展示过一次激励视频广告后,后续需要展示插屏广告的情况下,需要与激励视频广告的展示间隔60s。
* https://developer.open-douyin.com/docs/resource/zh-CN/mini-game/develop/api/ads/interstitial-ad/interstitial-ad-notice
*/
that._nextInterstitialADTs = that.timeService.ts + 60;
if (res && res.isEnded) {
// 正常播放结束,可以下发游戏奖励
onceResolve(result.SUCC(res.count));
} else {
// 播放中途退出,不下发游戏奖励
onceResolve(result.FAIL(ETTADErrCode.AD_EXIT_WITHOUT_REWARD));
}
})
});
}