微信小程序添加插屏广告并设置显示频率(一天一次)

微信小程序今年新上线了插屏广告,设置和在代码库中接入都非常方便。详细可见微信小程序官方文档。

大体的流程就是在小程序后台新建广告位,获取到广告位的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)
  }
})

PS:下面看下一天只显示一次的弹出广告

仿京东官网顶部的广告关闭,效果为第一次进入官网会出现广告,然后点击关闭,刷新网页不会再显示广告,但是当清除localStorage存入的数据,刷新网页会再显示广告。

html代码

<div class="header">
  <div class="header-a">
    <a href=""></a>
    <i class="close">x</i>
  </div>
</div>  

css代码

.header{
  width:100%;
  height:80px;
  background:#000;
}
.header-a{
  width:1190px;
  margin:0 auto;
  position:relative;
  background:url("images/1.jpg") no-repeat;
}
.header-a a{
  width:100%;
  height:80px;
  display:block;
}
.close{
  cursor:pointer;
  color:#fff;
  position:absolute;
  top:5px;
  right:5px;
  background:rgb(129, 117, 117);
  width: 20px;
  text-align: center;
  line-height: 20px;
}  

js代码

//localStorage方法
<script src="../js/jquery.min.js"></script>
function popAd(){
    //判断localStorage里有没有isClose
    if(localStorage.getItem("isClose")){       
      $(".header").hide();
    }else{
      $(".header").show();
    }
    //点击关闭隐藏图片存取数据
    $(".close").click(function(){
      $(".header").fadeOut(1000);

      localStorage.setItem("isClose", "1"); 
    })
  }
  popAd();

chrome console清本地缓存localStorage.clear()

批量清:

localStorage.clear()

单独清除某个记录的缓存,如:

localStorage.clear("popup_info") 或 localStorage.removeItem("popup_info"); 

总结

以上所述是小编给大家介绍的微信小程序添加插屏广告并设置显示频率(一天一次),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对云海天教程网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!