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


Posted in Javascript onDecember 06, 2019

插屏广告

用户触发小程序中的特定场景时,插屏广告将自动向用户展现,用户可以随时关闭插屏广告。广告触发场景由流量主自定义,广告按曝光计费(CPM)。

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

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

总结

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

Javascript 相关文章推荐
javascript 学习之旅 (3)
Feb 05 Javascript
jquery select(列表)的操作(取值/赋值)
Aug 06 Javascript
IE6弹出“已终止操作”的解决办法
Nov 27 Javascript
基于jQuery实现左右图片轮播(原理通用)
Dec 24 Javascript
避免jQuery名字冲突 noConflict()方法
Jul 30 Javascript
AngularJS入门教程之AngularJS 模板
Aug 18 Javascript
canvas实现刮刮卡效果
Mar 14 Javascript
动态创建Angular组件实现popup弹窗功能
Sep 15 Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 Javascript
vue-router 源码实现前端路由的两种方式
Jul 02 Javascript
js动态设置select下拉菜单的默认选中项实例
Aug 21 Javascript
react用Redux中央仓库实现一个todolist
Sep 29 Javascript
微信小程序激励式视频广告组件使用详解
Dec 06 #Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
Dec 06 #Javascript
vue中监听路由参数的变化及方法
Dec 06 #Javascript
详解ECMAScript2019/ES10新属性
Dec 06 #Javascript
ES6的异步操作之promise用法和async函数的具体使用
Dec 06 #Javascript
原生JavaScript实现滑动拖动验证的示例代码
Dec 06 #Javascript
微信小程序 自定义弹窗实现过程(附代码)
Dec 05 #Javascript
You might like
咖啡豆的最常见发酵处理方法,详细了解一下
2021/03/03 冲泡冲煮
php的header和asp中的redirect比较
2006/10/09 PHP
PHP学习笔记之二 php入门知识
2011/01/12 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
Javascript Function.prototype.bind详细分析
2016/12/29 Javascript
详解vue中computed 和 watch的异同
2017/06/30 Javascript
详解A标签中href=&quot;&quot;的几种用法
2017/08/20 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
解决vue项目获取dom元素宽高总是不准确问题
2020/07/29 Javascript
python多线程http下载实现示例
2013/12/30 Python
深入理解python多进程编程
2016/06/12 Python
Python paramiko模块的使用示例
2018/04/11 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
请介绍一下Ant
2016/07/22 面试题
计算机专业毕业生求职信分享
2013/12/24 职场文书
保安的辞职报告怎么写
2014/01/20 职场文书
计算机学生求职信范文
2014/01/30 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
会计稽核岗位职责
2015/04/13 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
2021/04/13 HTML / CSS