騰訊有數(shù)數(shù)據(jù)統(tǒng)計小程序端接入記錄

??騰訊有數(shù)是由騰訊智慧零售推出,為品牌商、零售商打造的數(shù)據(jù)分析與管理平臺,融合騰訊數(shù)據(jù)、技術(shù)與生態(tài)優(yōu)勢,提供全鏈路經(jīng)營數(shù)據(jù)分析、消費者洞察、精準營銷等能力,讓企業(yè)經(jīng)營更“有數(shù)”。

1 SDK引入

1.1 獲取 SDK,將該SDK下載后重命名,引入小程序工程中,如下圖。

圖片.png

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 中的使用方法。
通過 track 上報行為圖例

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容