小程序分享统计功能 设置查看分享时长才可增加积分

小程序自带的有数据分析功能,而且很详细:概况、昨日概况、实时统计、访问分析、来源分析、自定义分析、用户画像、累计访问人数、TOP受访页面等等,并且也提供了表格下载功能。

这里增加的分享统计日志功能主要是用来记录分享页面的访问分析,即是谁分享的页面被谁打开了,一次打开从前台进入后台这个浏览时间有多长。说白了,也就是出于营销推广方面的需要,来进行分享统计,谁分享了页面增加积分,页面分享到群组里面后,被别人打开了,打开了多长时间,再增加多少积分,就是这样的一个操作。下面是实现的思路流程。

分享统计场景分析:

用户打开分享的小程序链接,此时,如果该用户未登陆小程序,会直接跳转至登陆界面,提醒用户点击登陆,只有在用户点击了微信登陆按钮后,才会获取到该用户的信息,然后开始执行写日志操作,记录下是谁打开了谁的分享。

设置一个初始时间,来统计该用户浏览了多长时间的小程序内容。

设置一个结束时间,当关闭小程序或者离开微信后,通过调用onShow来判断。

写日志操作放在哪里进行需要考虑清楚:

  1. 登陆成功后调用写日志操作
  2. 分享页调用写日志操作------采用此种

1、首先要保证分享的小程序页面链接带有可识别分享者信息的数据,以此作为判断是谁分享了小程序。当该条分享小程序记录被打开后,获取分享者信息,再做进一步逻辑判断。分享页面js部分代码如下:

//设置该页面的转发信息
  onShareAppMessage: function (res) {
    var value = wx.getStorageSync('user');    //获取分享者的用户信息

    if (res.from === 'button') {
      // 来自页面内转发按钮
      console.log(res.target)
    } else {
      //console.log(res.target)
    }

    if (value.id) {
      return {
        title: '河南米云信息科技有限公司邀你来分享~~',
        path: '/pages/index/index?uinfo='+value.id,
        success: function (res) {
          // 转发成功  
          var shareTickets = res.shareTickets;
          var shareTicket = shareTickets;
          wx.getShareInfo({
            shareTicket: shareTicket,
            success: function (res) {
              wx.showToast({
                title: '转发成功',
                duration: 5000
              })
            },
            fail: function (res) {
              console.log('fail');
              console.log(res);
              wx.showToast({
                title: 'fail:' + res.errMsg,
                duration: 5000
              })
            }
          });
        },
        fail: function (res) {
          // 转发失败  
        }
      }
    } else {
      console.log('分享者ID未能获取......')
      
    }
    
  },

通过以上分享设置就能获取到分享者的id信息,为下一步分析做准备。

2、当分享信息被点击后,通过判断是否带有id标志来判断下一步操作,获取到分享者id后,开启写如统计分享代码,将统计功能代码封装为函数,放到入口app.js中:

小程序写入日志功能代码

为什么放入app.js中?当然是方便其他页面调用了,当然也可以放在自己定义的js中。

查看分享数据统计对应数据库表字段:

CREATE TABLE IF NOT EXISTS `wxapp_shareview` (

  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

  `uid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '浏览者ID',

  `shareUid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '分享者ID',

  `brand` varchar(50) NOT NULL DEFAULT '' COMMENT '手机品牌',  

  `model` varchar(100) NOT NULL DEFAULT '' COMMENT '手机型号',

  `system` varchar(100) NOT NULL DEFAULT '' COMMENT '操作系统版本',

  `pixelRatio` varchar(100) NOT NULL DEFAULT '' COMMENT '设备像素比',

  `language` varchar(100) NOT NULL DEFAULT '' COMMENT '微信设置的语言',

  `version` varchar(100) NOT NULL DEFAULT '' COMMENT '微信版本号',

  `begin_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '初始访问时间',

  `end_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '结束访问时间',

  PRIMARY KEY (`id`),

  KEY `uid` (`uid`),

  KEY `shareUid` (`shareUid`),

  KEY `begin_time` (`end_time`) USING BTREE

) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='微信分享查看统计表' AUTO_INCREMENT=1 ;

浏览者打开分享的小程序链接写入日志,给定一个初始时间;离开小程序关闭后再记录一条结束时间,通过两个时间差值来判断这条浏览记录是否为有效的分享浏览,有效则增加分享者积分,否则略过即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值