【微信小程序】流量主-激励视频(激励广告)下发策略,每天三次免费体验,然后再次点击触发激励视频,当日不再触发。

如题:
允许用户有三次体验效果,然后弹出激励视频弹窗,之后当日不再弹出。

体验小程序:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

/**
 * 判断当前项目当天是否点击超过3次,触发广告效果。
 * 若,当天低于三次,则新增,若高于三次触发广告。
 */
export const checkAd = () => {
  const today = new Date().toLocaleDateString();
  let day = uni.getStorageSync('day');
  // 获取本地存储的点击次数
  let clickCount = uni.getStorageSync('clickCount');
  // 如果第一次进入,没有存储任何数据,则对存储数据进行初始化
  if (!day || !clickCount) {
    uni.setStorageSync('day', today);
    uni.setStorageSync('clickCount', JSON.stringify(1))
    return false;
  }
  // 如果时间相同,则对今天的日期点击次数进行判断,如果
  if (today === day) {
    let parseCount = JSON.parse(clickCount);
    if (parseCount) {
      if (parseCount < 3) {
        uni.setStorageSync('clickCount', JSON.stringify(++parseCount))
        return false;
      }
      if (parseCount === 3) {
        return true;
      }
      if (parseCount > 3) {
        return false;
      }
    }
  } else {
    // today !== day,则证明存在之前天的数据,则应重新计数。
    uni.setStorageSync('day', today);
    uni.setStorageSync('clickCount', JSON.stringify(1))
    return false;
  }
}


    /**
     * 生成展示图片
     */
    showShare(path) {
			if(checkAd()) {
				uni.showModal({
					title: '提示',
					content: '今日免费次数已满,观看一次广告解锁本日无限次数',
					confirmText: '确认',
					cancelText: '取消',
					success: (res) => {
						//点击“确认”时打开设置页面
						if (res.confirm) {
							this.showRewardVideoAd()
						}
					}
				})
				return
			}
	}
// adMixin.js

// 在页面中定义激励视频广告的mixin,混入逻辑,可以多页面复用
let videoAd = null
export default {
  onLoad() {
    // 在页面onLoad回调事件中创建激励视频广告实例
    if (wx.createRewardedVideoAd) {
      videoAd = wx.createRewardedVideoAd({
        adUnitId: 'adunit-1be6e0fd1a51ec33'
      })
      videoAd.onLoad(() => {
        console.error('广告加载成功')
      })
      videoAd.onError((err) => {
        console.error('激励视频光告加载失败', err)
      })
      videoAd.onClose((res) => {
        // 用户点击了【关闭广告】按钮
        if (res && res.isEnded) {
          // 正常播放结束,可以下发游戏奖励
          let parseCount = JSON.parse(uni.getStorageSync('clickCount'));
          uni.setStorageSync('clickCount', JSON.stringify(++parseCount));
          uni.showToast({
            title: '恭喜您成功解锁!',
            icon: 'success'
          })
        } else {
          // 播放中途退出,不下发游戏奖励
        }
      })
    }
  },
  methods: {
    showRewardVideoAd() {
      if (videoAd) {
        videoAd.show().then((res) => {
          console.log('激励视频广告显示')
        }).catch((err) => {
          console.error(err)
        })
      }
    },
  }
}

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值