開(kāi)始之前
作者以前開(kāi)發(fā)設(shè)計(jì)采集器參考了 Google 的那套設(shè)計(jì)思路十厢。這套設(shè)計(jì)方式基本都能滿足分析需求,如果要區(qū)分用戶和用戶行為捂齐,采集的數(shù)據(jù)模型需要開(kāi)發(fā)跟數(shù)據(jù)同學(xué)約定好蛮放。
本篇講解的采集器,需求來(lái)源于用戶行為分析平臺(tái)奠宜,數(shù)據(jù)模型是固定的包颁,設(shè)計(jì)思路會(huì)有些不同。
說(shuō)明
- 文中代碼只展示關(guān)鍵點(diǎn)压真,具體請(qǐng)參考源碼娩嚼。
- 本篇并非是從頭到尾教大家如何開(kāi)發(fā)一個(gè)完整的采集器,那不是一篇文章能夠講清楚的滴肿。主要是講解了設(shè)計(jì)思路岳悟,幾個(gè)重點(diǎn)實(shí)現(xiàn)。相信大家看完本篇分享泼差,再結(jié)合源碼竿音,最終能夠理解并自己實(shí)現(xiàn)一套采集器,會(huì)比作者做的更加出色拴驮。
數(shù)據(jù)模型和設(shè)計(jì)實(shí)現(xiàn)
數(shù)據(jù)采集后春瞬,數(shù)據(jù)分析(機(jī)器學(xué)習(xí))專家一般會(huì)對(duì)數(shù)據(jù)進(jìn)行篩選、降維套啤、建模宽气。這個(gè)過(guò)程中數(shù)據(jù)篩選是花費(fèi)最多的環(huán)節(jié)随常,所以在采集數(shù)據(jù)的環(huán)節(jié),我們有必要定義好一定的數(shù)據(jù)規(guī)則(模型)萄涯,在數(shù)據(jù)源頭上绪氛,讓采集器做更多的工作,減少數(shù)據(jù)篩選的工作量涝影。這里擴(kuò)展一下枣察,當(dāng)前工業(yè)上比較流行的機(jī)器學(xué)習(xí)庫(kù) TensorFlow 出了個(gè) JS 版本,官方針對(duì)微信小程序開(kāi)發(fā)了一套小程序插件 tfjs-wechat燃逻,大家可以嘗試一下序目,說(shuō)不定可以讓采集器智能化。
對(duì)于采集分析用戶行為的數(shù)據(jù)伯襟,我們先從采集器使用的數(shù)據(jù)模型開(kāi)始講起猿涨。
模型
當(dāng)前數(shù)據(jù)分析平臺(tái)的數(shù)據(jù)模型由兩塊組成:用戶屬性和用戶事件。
用戶屬性
用戶屬性指的是:用戶 id姆怪、年齡叛赚、姓名、性別稽揭、所在的地區(qū)俺附、首次注冊(cè)時(shí)間、vip 等溪掀。
用戶事件
用戶事件指的是:用戶在小程序上做了什么操作昙读,比如點(diǎn)擊了購(gòu)買(mǎi)按鈕這個(gè)行為事件,訪問(wèn)了某個(gè)頁(yè)面膨桥。
模型:
內(nèi)置事件
內(nèi)置事件指的是采集器自動(dòng)處理上報(bào)的事件蛮浑,分為兩類(lèi)。
- 一類(lèi)是采集器監(jiān)聽(tīng)小程序的行為事件只嚣,有 訪問(wèn)頁(yè)面(screen)沮稚、分享(share)、應(yīng)用開(kāi)啟(onLaunch)册舞、應(yīng)用展示(onShow)蕴掏;
- 另一類(lèi)是系統(tǒng)內(nèi)置的事件,有 會(huì)話相關(guān)事件(session_start调鲸、session_close)盛杰、登陸登出注冊(cè)事件(login、logout藐石、signup)即供、應(yīng)用首次激活事件(activate)、廣告點(diǎn)擊事件(ad_click)于微、A/B 實(shí)驗(yàn)事件(abtest)昼榛、數(shù)據(jù)異常錯(cuò)誤事件(send_error)、設(shè)置用戶屬性事件(user_profile)堪遂、轉(zhuǎn)發(fā)分享事件(share)。
自定義事件
自定義事件指的是用戶自己設(shè)置的事件冷离,通過(guò)調(diào)用采集器的 API 上報(bào)事件。比如:上報(bào)一個(gè)點(diǎn)擊購(gòu)買(mǎi)按鈕的用戶行為事件,sdk.track ("buy", {price: '¥10'})
逆瑞, 其中事件名是 "buy",事件屬性是 "price"伙单。
用戶內(nèi)置屬性
用戶內(nèi)置屬性指的是平臺(tái)內(nèi)置的用戶屬性字段获高,通過(guò)調(diào)用采集器封裝好的 API,傳入屬性值上報(bào)车份。比如:realName(姓名)谋减、age(年齡)牡彻、city(城市)扫沼、country(國(guó)家)、$gender(性別)等庄吼。
用戶自定義屬性
用戶自定義屬性指的是用戶自定義的用戶屬性字段缎除, 通過(guò)調(diào)用采集器的 API,傳入屬性字段以及值总寻。
設(shè)計(jì)
先上模塊關(guān)系圖: