集成广告
当小程序的用户量达到一定数量时,就可以开通流量主。集成小程序广告,就可以获得收益。
为了增加一点收益,用于承担一些我的服务器费用支出。根据我的小程序特点,我集成了 3 类类型的广告。如果你喜欢我的文章,欢迎你浏览小程序观看广告。
-
封面广告,这个没有技术含量,在小程序后台开通即可。
-
Banner 广告,这个也没有技术含量,在界面中设置时注意和界面的其它元素不冲突,排版协调即可。
-
激励视频广告,这个有一点技术含量。官方文档中说在 onLoad 方法中加载广告的初始化。我发现这样设置的话,界面会不流畅。特别是多次返回再进入,页面迟滞现象严重。
为了优化,我也想了很多办法。最后的解决方法如下:
loadAd() {
const that = this;
vAd = wx.createRewardedVideoAd({
adUnitId: 'adunit-2ce6db3cb1e45a86',
})
vAd.onLoad(() => {
hasLoadAd = true
}),
vAd.onError((err) => {
console.error('激励视频广告加载失败,', err)
}),
vAd.onClose((res) => {
if (res && res.isEnded) {
that.doAdProfit();
} else {
wx.showToast({
title: '没有获得点数哟!',
})
}
})
},
playAd() {
const that = this;
wx.showLoading({
title: '加载广告中',
})
if (!hasLoadAd) {
that.loadAd();
}
// 用户触发广告后,显示激励视频广告
if (vAd) {
vAd.show().then(() => [
wx.hideLoading()
]).catch(() => {
// 失败重试
vAd.load()
.then(() => {
wx.hideLoading()
vAd.show()
})
.catch(err => {
wx.hideLoading()
wx.showToast({
title: '请重试一次',
})
console.error('激励视频 广告显示失败', err)
})
})
} else {
wx.hideLoading()
wx.showToast({
title: '请稍后重试',
})
}
},
进入页面后,不加载广告,只有当用户主动点击广告按钮时,才加载广告。在加载广告的时候,给用户显示 Loading,增加用户的体验。如果已经加载了广告,就直接播放。如果加载广告失败,再重新拉取一次。还报错,就只能显示给用户错误了。
通过上面的方法改进后,发现多次进入页面不会卡顿,发生页面迟滞现象。
小程序开发部分基本就完成了,后续有新的功能或者优化再开新的文章。
感谢您的观看!