专业的编程技术博客社区

网站首页 > 博客文章 正文

微信小程序开发之——插屏广告开发

baijin 2025-02-27 14:10:31 博客文章 9 ℃ 0 评论

最近的这个项目,需要在小程序里添加微信小程序广告,不只是banner广告,还有激励视频广告和插屏广告,而且很多页面都有。总结一下所遇到的问题及解决方案。

问题:多个页面都有插屏广告,切换页面提示:插屏广告并非当前页面调用,不允许展示插屏广告

原因:切换页面没有销毁,

解决方案:InterstitialAd.destroy(),这个不好用,一旦销毁就会提示:interstitial-ad has been destroyed。于是我使用的是:InterstitialAd=null;只不过要检测InterstitialAd是否为null,是的话就要重新创建广告实例;我是将InterstitialAd存起来,onHide中赋值null,onShow中展示的时候判断InterstitialAd,为null就将存储的值赋值给InterstitialAd;uniapp开发例子:

//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;
		

问题二:提示正在播放激励视频或插屏广告,不能重复播放;

原因:我删除了监听,因为觉的监听不做处理就没啥用;

问题三:interstitial-ad has been destroyed,这个是因为我销毁了实例,InterstitialAd.destroy(),所以才找到问题一的解决方法

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表