??騰訊有數(shù)是由騰訊智慧零售推出,為品牌商、零售商打造的數(shù)據(jù)分析與管理平臺,融合騰訊數(shù)據(jù)、技術(shù)與生態(tài)優(yōu)勢,提供全鏈路經(jīng)營數(shù)據(jù)分析、消費者洞察、精準營銷等能力,讓企業(yè)經(jīng)營更“有數(shù)”。
1 SDK引入
1.1 獲取 SDK,將該SDK下載后重命名,引入小程序工程中,如下圖。
1.2 添加可信域名
??登錄微信公眾平臺,進入<開發(fā)><開發(fā)設(shè)置><服務(wù)器域名>,將 https://zhls.qq.com 添加為 request 合法域名。
??在開發(fā)環(huán)境中還有SDK版本檢查,所以會提示 https://sr-home-1257214331.cos.ap-guangzhou.myqcloud.com 不在以下 request 合法域名列表中 , 可以通過設(shè)置不校驗域名來處理。
2 init 初始化
init(options: object)
??配置接口,用來調(diào)整SDK的基礎(chǔ)機制。官方建議init初始化應(yīng)該在App()調(diào)用之前調(diào)用,如果自己改造,只要測試通過即可。
??在app中初始化如下:
let sr = require('./libs/sr-sdk-wxapp.js').init({ // 騰訊有數(shù),建議在App()調(diào)用之前調(diào)用。
appid: 'wxxxx', // 微信小程序appID,以wx開頭
token: 'bidxxx', // token是唯一必須配置的參數(shù),請聯(lián)系有數(shù)數(shù)據(jù)服務(wù)sr_data_service@tencent.com提供
trackApp: true, //SDK 默認上報小程序的 啟動 、顯示 、隱藏 事件, false 關(guān)閉該功能。
proxyPage: true, // 是否開啟自動代理 Page,默認是:false。
usePlugin: true,// 是否使用插件,默認是:false。
debug: true
})
3 數(shù)據(jù)上報
??有數(shù)小程序數(shù)據(jù)上報SDK是一個小程序環(huán)境的數(shù)據(jù)采集工具,它提供了簡單的接口幫助你快速將數(shù)據(jù)接入數(shù)據(jù)中心。
- 上報隊列 數(shù)據(jù)上報任務(wù)通過隊列發(fā)送,降低數(shù)據(jù)丟失率。
- 自動采集 可自動對常見的行為進行埋點,并收集通用的屬性,可通過配置打開和關(guān)閉,具體見文檔 微信小程序SDK 中的使用方法。
3.1 App 相關(guān)
??SDK 默認上報小程序的 啟動 、顯示 、隱藏 事件,可以在初始化的時候配置 trackApp: false 關(guān)閉該功能。
3.2 Page 相關(guān)
- 未使用小程序插件,SDK 提供
proxyPage開關(guān)對Page開啟代理模式。 會自動上報頁面相關(guān)的預(yù)置事件,如browse_wxapp_page。 - 已使用小程序插件,SDK 提供 sdk.page 支持對 Page 的改造。
- 也可以選擇使用 track 自己上報預(yù)置事件。
??注意:在小程序里有如下幾種異步數(shù)據(jù)容易導致問題:通過wx.login獲取 openid ,通過wx.getShareInfo獲取 openGId 。
3.3 Element相關(guān)
3.3.1 方法一:SDK上報(詳見官方文檔:事件元素上報)
??通過這種手動埋點的方式對代碼有較強的侵入性,另外,由于PM會頻繁調(diào)整埋點信息,而埋點是一個繁瑣又無聊的工作,基于Don't Repeat Yourself 原則,可以采用方法二自動埋點方案。
sr.track('element',
{
"type": "change",
"element_id": "secKillPage-banner1_1",
"index": "1",
"name": "秒殺頁面-輪播1_1",
"page": "pages/product?sku_id=AOdjf7u",
// more...
})
3.3.2 方法二:配置上報(實現(xiàn)原理參考文檔:xbosstrack 小程序自動埋點)
??實現(xiàn)思路:監(jiān)聽用戶點擊或方法調(diào)用-->讀取埋點配置JOSN,判斷是否需要上報--> 上報數(shù)據(jù)
??目前已實現(xiàn)監(jiān)聽頁面和組件中的元素點擊事件或方法調(diào)用,自動上報埋點數(shù)據(jù)。
??使用時需添加需要埋點的點擊事件上報如下。
const trackConfig = [{
title: '會員商城首頁',
path: 'pages/Home/Home',
elementTracks: [{//這是頁面中的元素點擊配置
element: '.home-page',
elementName: '首頁點擊埋點測試',
dataKeys: ['env1'],
}, {
element: '.home-contact>>>.lxkf',//這是組件中的元素點擊配置
elementName: '首頁組件中點擊埋點測試',
dataKeys: ['level'],
}],
methodTracks: [{
method: 'initHomePage',
element: 'initHomePage',
elementName: '首頁方法埋點測試',
dataKeys: ['addtominiprogram'],
}],
comMethodTracks: [{
method: 'getLevel',
element: 'getLevel',
elementName: '首頁組件中方法埋點測試',
dataKeys: ['ysf'],
}]
}
export default trackConfig;
??另外,使用時要在需埋點頁面wxml最外層插入監(jiān)聽方法。示例:
<view catchtap='elementTracker'>
</view>
??通過配置上報完成有數(shù)通用點擊事件埋點,例如點擊立即購買按鈕時,上報數(shù)據(jù)示例如下:
courseId: "1"
element_id: ".list-item"
index: "1"
lesson: 2
name: "課程章節(jié)"
page: "pages/Course/CourseList/CourseList?courseId=1"
page_title: "課程列表"
sr_sdk_version: "1.1.8"
time: 1587535443662
type: "tap"
3.4 用戶身份上報
??有數(shù)要求所有的上報接口必須上報open_id,但允許部分行為可能產(chǎn)生無法獲得 open_id, page 為空的情況
??用戶注冊行為 register_wxapp,綁定手機號看成是注冊,用戶授權(quán)手機號獲取到userId后上報用戶userId。
??用戶登錄行為 login_wxapp,在獲取到用戶unionid登錄后上報用戶unionId。
??接入時在需要上報用戶指定身份信息上報的位置調(diào)用指定公共方法即可,調(diào)用方法如下:
// 設(shè)置每個上報必須的用戶信息
sr.setUser({
open_id: openId,//必傳,字符串類型
union_id: unionId',//非必傳,字符串類型
user_id: userId'//非必傳,字符串類型
})
3.5 渠道上報
??有數(shù)要求所有的上報接口必須上報chan_wxapp_scene:小程序場景值。
??如果未使用自定義渠道手動設(shè)置上報,則有數(shù)SDK會自動獲取渠道信息上報。
??渠道可用于區(qū)分流量來源。主要分為三種渠道類型:場景值渠道、引流渠道、自定義渠道。
??其中引流渠道ID由有數(shù)后臺-渠道管理-新增渠道時系統(tǒng)生成,有數(shù)渠道管理后臺地址傳送門: https://lingshou.tencent.com;
??由于有數(shù)渠道參數(shù)使用場景值帶參方式,需要兼容原自定義帶參,在擴展頁面類 onLoad方法中添加公共場景值取參方法如下:
if (options.scene) { //如果獲取到場景值,則將場景值取出賦值給自定義參數(shù)
let scene = decodeURIComponent(options.scene).split('&')
let param = {}
for (let i in scene) {
let item = scene[i].split('=')
let itemKey = item[0]
let itemVal = item[1]
options[itemKey] = itemVal
}
}
總結(jié)記錄
- 1、初始化時配置 trackApp:true啟用自動上報小程序的 啟動 、顯示 、隱藏 事件;未使用小程序插件,SDK 提供 proxyPage:true 開關(guān)對 Page 開啟代理模式。 會自動上報頁面相關(guān)的預(yù)置事件,如 browse_wxapp_page等 。已使用小程序插件,SDK 提供 sdk.page 支持對 Page 的改造,另外需配置usePlugin: true, 是否使用插件,默認是:false。
- 2、建議文檔從頭到尾的讀,讀3遍!??!包括官方產(chǎn)品介紹和產(chǎn)品接入文檔。
- 3、仔細看測試點文檔,因為沒看仔細文檔,硬是找了3天問題,有數(shù)那邊工作人員也一起幫忙找問題,結(jié)果修改后的上報數(shù)據(jù)和修改前相差無幾,還好在修修補補的過程中,發(fā)現(xiàn)了一些其他問題,也算有所收獲。
圖片.png - 4、在接入某個原來接入mta騰訊移動分析的小程序項目中,onShareAppMessage方法的res有問題,導致有數(shù)SDK獲取不到分享類型報錯,產(chǎn)生原因參考:
onShareAppMessage方法的res問題,我目前的解決辦法是移除mta SDK。 - 5、使用微信開發(fā)工具 wechat_devtools_1.02.1911180_x64,渠道chan_wxapp_scene偶爾會丟失,查后發(fā)現(xiàn)只有在編譯器模擬環(huán)境會出現(xiàn)該問題,在真機環(huán)境下不會。
??關(guān)于自動化埋點方案可參考Github:https://github.com/XieXiePro/XP-MINI-Track