小程序自帶的有數據分析功能,而且很詳細:概況、昨日概況、實時統計、訪問分析、來源分析、自定義分析、用戶畫像、累計訪問人數、TOP受訪頁面等等,並且也提供了表格下載功能。
這裏增加的分享統計日誌功能主要是用來記錄分享頁面的訪問分析,即是誰分享的頁面被誰打開了,一次打開從前臺進入後臺這個瀏覽時間有多長。說白了,也就是出於營銷推廣方面的需要,來進行分享統計,誰分享了頁面增加積分,頁面分享到羣組裏面後,被別人打開了,打開了多長時間,再增加多少積分,就是這樣的一個操作。下面是實現的思路流程。
分享統計場景分析:
用戶打開分享的小程序鏈接,此時,如果該用戶未登陸小程序,會直接跳轉至登陸界面,提醒用戶點擊登陸,只有在用戶點擊了微信登陸按鈕後,纔會獲取到該用戶的信息,然後開始執行寫日誌操作,記錄下是誰打開了誰的分享。
設置一個初始時間,來統計該用戶瀏覽了多長時間的小程序內容。
設置一個結束時間,當關閉小程序或者離開微信後,通過調用onShow來判斷。
寫日誌操作放在哪裏進行需要考慮清楚:
登陸成功後調用寫日誌操作
分享頁調用寫日誌操作------採用此種
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 ;
瀏覽者打開分享的小程序鏈接寫入日誌,給定一個初始時間;離開小程序關閉後再記錄一條結束時間,通過兩個時間差值來判斷這條瀏覽記錄是否爲有效的分享瀏覽,有效則增加分享者積分,否則略過即可。
轉載:https://blog.csdn.net/seoalphas/article/details/81480271