微信小程序今年新上线了插屏广告,设置和在代码库中接入都非常方便。详细可见微信小程序官方文档。
大体的流程就是在小程序后台新建广告位,获取到广告位的adUnitId
并嵌入到源代码,因为插屏广告的单页面性,在页面的onload
处添加即可。
let interstitialAd = null;
if (wx.createInterstitialAd) {
interstitialAd = wx.createInterstitialAd({
adUnitId: 'adunit-ID'
})
}
if(interstitialAd) {
interstitialAd.show().catch((err) => {
console.error(err);
})
}
嵌入广告非常简单,毕竟微信已经将所有的接口写好了,开发者仅需调用即可。
主要的功能点是设置一个插屏广告一天只显示一次,而微信并没有提供这方面的api,秉持前端能完成的就不要麻烦后端,便想到直接使用缓存存储当期日期,用户打开页面的时候获取上次缓存的日期查看是否相同即可。
//这里使用的是mpVue框架,写在mounted里。
let nowday = new Date().getFullYear().toString() + (new Date().getMonth() + 1).toString() + new Date().getDate().toString() ;
//获取上次打开页面时间
try {
let lastDay = wx.getStorageSync('day');
if(lastDay) {
console.log('lastday', lastDay);
console.log('nowday', nowday)
if(lastDay == nowday) {
this.flag = false;
} else {
this.flag = true;
}
}
} catch (e) {
//用户首次打开
this.flag = true;
console.error(e);
console.log('true no storage', this.flag)
}
if(interstitialAd && this.flag) {
interstitialAd.show().catch((err) => {
console.error(err);
})
}
interstitialAd.onLoad(() => {
try {
wx.setStorageSync('day', nowday);
console.log('存储时间', nowday);
} catch (e) {
console.log('err', err)
}
})