收藏
回答

部分机型创建了激励广告后onLoad和onError都不执行,代码是写在setup生命周期里的

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug createRewardedVideoAd 微信安卓客户端 8.0以上 3.0以上

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/ad/rewarded-video-ad.html

switch (data.type) {

case '激励广告':

if (uni.createRewardedVideoAd) {

// console.log("这里1");

videoAd = uni.createRewardedVideoAd({

adUnitId: data.adUnitId

})

// console.log("这里2", videoAd);

videoAd.onLoad(() => {

uni.hideLoading()

console.log("激励广告加载成功");

if (videoAd) {

videoAd.show().catch(() => {

// 失败重试

videoAd.load()

.then(() => videoAd.show())

.catch(err => {

console.error('激励视频 广告显示失败', err)

if (isResult.value) {

return

}

uni.showToast({

title: '广告显示失败,请重新进入页面',

icon: 'none'

});

handlerEmit('onAdResult', false)

})

})

} else {

uni.showToast({

title: '广告显示失败,请稍后再试',

icon: 'none'

});

console.log("广告显示失败,请稍后再试");

handlerEmit('onAdResult', false)

}

})

// console.log("这里3",videoAd);

videoAd.onError((err) => {

// console.log("这里4",videoAd);

uni.hideLoading()

console.error('激励视频光告加载失败', err)

handlerEmit('onAdResult', false)

switch (err.errCode) {

case 1000:

uni.showToast({

title: '后端接口调用失败',

icon: 'none'

});

break;

default:

uni.showToast({

title: '激励视频光告加载失败',

icon: 'none'

});

break;

}

})

videoAd.onClose((res) => {

// console.log("这里5",videoAd);

// 用户点击了【关闭广告】按钮

console.log("onClose", res);

videoAd.destroy()

if (res && res.isEnded) {

handlerEmit('onAdResult', true)

} else {

handlerEmit('onAdResult', false)

}

})

} else {

uni.hideLoading()

uni.showToast({

title: '广告加载失败,不支持激励广告',

icon: 'none'

});

}

break;

default:

uni.hideLoading()

handlerEmit('onAdResult', false)

uni.showToast({

title: '广告类型错误',

icon: 'none'

});

}


回答关注问题邀请回答
收藏

1 个回答

  • 微信广告运营专员-Lin
    微信广告运营专员-Lin
    04-17

    你好,需要主动调一下 videoAd.load() 来加载广告,否则遇到错误不会抛出来

    04-17
    有用
    回复
登录 后发表内容