最近的这个项目,需要在小程序里添加微信小程序广告,不只是广告,还有激励视频广告和插屏广告,而且很多页面都有。总结一下所遇到的问题及解决方案。
问题:多个页面都有插屏广告,切换页面提示:插屏广告并非当前页面调用,不允许展示插屏广告
原因:切换页面没有销毁,
解决方案:.(),这个不好用,一旦销毁就会提示:-ad has been 。于是我使用的是:=null;只不过要检测是否为null,是的话就要重新创建广告实例;我是将存起来,中赋值null,中展示的时候判断,为null就将存储的值赋值给;开发例子:
//onLoad中,判断条件分别是:能否创建实例;配置中是否有这个ID;是否缓存了这个实例;
if (wx.createInterstitialAd&&that.config.ad_dialog_pdd_index&&!that.ad_module.interstitialAd_pdd) {
interstitialAd = wx.createInterstitialAd({
adUnitId: that.config.ad_dialog_pdd_index
})
interstitialAd.onLoad(() => {})
interstitialAd.onError((err) => {})
interstitialAd.onClose(() => {})
//存起来
that.$store.dispatch('ad/setInterstitialAd',{name:'interstitialAd_pdd',param:interstitialAd});
}
//onShow,值为null就赋值
if (!interstitialAd) {
interstitialAd=this.ad_module.interstitialAd_pdd;
}
interstitialAd.show().catch((err) => {
console.error(err)
})
//onHide中
if(interstitialAd) {
//interstitialAd_pdd.destroy()
interstitialAd=null;
问题二:提示正在播放激励视频或插屏广告,不能重复播放;
原因:我删除了监听,因为觉的监听不做处理就没啥用;
问题三:-ad has been ,这个是因为我销毁了实例,.(),所以才找到问题一的解决方法
云衔科技是一家专注于企业数字化广告营销解决方案的服务商。公司凭借深厚的行业经验和专业技术能力,致力于为企业客户提供全方位、更高效的数字化广告营销与运营服务。