數(shù)據(jù)埋點(diǎn) 第3期

一 growingIO

1? android半自動(dòng)采集瀏覽事件

半自動(dòng)瀏覽事件能夠攜帶用戶添加的自定義事件和變量拐格,當(dāng)View從屏幕中出現(xiàn)則自動(dòng)發(fā)送事件。

半自動(dòng)瀏覽事件介紹

新版方案:用戶標(biāo)記一個(gè) View 并提供自定義事件和變量询筏,SDK 負(fù)責(zé)監(jiān)控拖叙,當(dāng)此 View 對(duì)象可見時(shí)發(fā)送用戶配置的自定義事件和變量厌衔。

新版用戶瀏覽事件半自動(dòng)究竟指什么钱骂?

不再全量采集所有 View 的瀏覽事件,改為只采集用戶主動(dòng)標(biāo)記 view 黄痪。事件類型使用自定義事件類型 cstm (custom)紧帕,不再使用 imp (impression)。需要用戶在代碼中埋點(diǎn)并且在官網(wǎng)配置自定義事件和變量满力。

SDK 將 View 對(duì)象在當(dāng)前屏幕是否可見焕参,是否滾動(dòng)出屏幕又再次出現(xiàn)納入采集發(fā)送策略,并取消瀏覽事件與頁面的關(guān)聯(lián)油额。即:共享 View 對(duì)象的不同頁面不會(huì)重復(fù)發(fā)送叠纷,并且 view 對(duì)象不在當(dāng)前屏幕又再次滑入會(huì)再次發(fā)送。后文詳細(xì)舉例說明.

半自動(dòng)指用戶提供 View 的自定義事件和變量?jī)?nèi)容潦嘶,SDK 根據(jù)當(dāng)前 view 對(duì)象是否在屏幕上可見涩嚣,自動(dòng)發(fā)送一個(gè)自定義事件。即:需要用戶標(biāo)記 View 并且提供自定義事件和變量掂僵,SDK 在 View 對(duì)象出現(xiàn)在屏幕上時(shí)自動(dòng)發(fā)送航厚,不同于 track 接口發(fā)送的 cstm 事件,調(diào)用即發(fā)送锰蓬。

下面我們將從三個(gè)方面介紹此方案幔睬。

1. 標(biāo)記View并設(shè)置自定義事件和變量

在舊版無埋點(diǎn) SDK 中,如果想查看某個(gè)廣告位的具體某個(gè)商品的曝光次數(shù)芹扭,通過圈選廣告位的 view 元素的 imp 事件是無法做到的麻顶,仍需要您埋點(diǎn)自定義事件赦抖。

在埋點(diǎn)元素曝光時(shí),開發(fā)人員需要對(duì) View 在當(dāng)前屏幕上的可見性做邏輯判斷辅肾,需要監(jiān)控 View 對(duì)象是否在當(dāng)前可見或者是否再次出現(xiàn)在屏幕上队萤,有一定代碼實(shí)施難度。

此方案將監(jiān)控 View 的可見和埋點(diǎn)的觸發(fā)時(shí)機(jī)交給 GIO SDK 矫钓, 開發(fā)者只需要將自定義事件的變量傳遞給 SDK 即可要尔。

2. 元素的瀏覽事件相對(duì)于舊版更準(zhǔn)

對(duì)于用戶主動(dòng)標(biāo)記 imp 采集的元素,相對(duì)于舊版本自動(dòng)采集會(huì)更加準(zhǔn)確新娜,我們舉例以下兩個(gè)場(chǎng)景來說明赵辕。

場(chǎng)景1 不同的頁面共享同一個(gè)元素

imp場(chǎng)景1

底部的導(dǎo)航欄在 Tab 頁面中是共享元素,即切換 Tab 杯活,底部的導(dǎo)航欄持續(xù)可見匆帚,在不同的 Tab 頁面中是共享元素。

舊版本:

導(dǎo)航欄的 imp 事件會(huì)分別在對(duì)應(yīng)的四個(gè)頁面中發(fā)送旁钧,切換 Tab 頁面時(shí)雖然底部導(dǎo)航欄持續(xù)可見,但是會(huì)重復(fù)發(fā)送互拾。

為什么舊版本會(huì)這么統(tǒng)計(jì)呢歪今? 因?yàn)?imp 事件的歸因和 page 事件強(qiáng)關(guān)聯(lián),切換了頁面颜矿,就認(rèn)為導(dǎo)航欄是這個(gè)頁面中的元素寄猩,不支持多個(gè)頁面共享元素的情況。

新版本:

在用戶標(biāo)記導(dǎo)航欄需要采集后骑疆,無論切換 ab 多少次田篇,我們只會(huì)在用戶第一次可見導(dǎo)航欄,發(fā)一次元素瀏覽事件箍铭。

可以認(rèn)為新版本方案只關(guān)心當(dāng)前元素對(duì)于用戶是否可見泊柬,和頁面訪問事件 page 無關(guān)聯(lián)。更貼近實(shí)際場(chǎng)景诈火,相對(duì)舊版本更準(zhǔn)兽赁。

總結(jié):

1 上報(bào)機(jī)制的區(qū)別,舊版本沒有考慮到實(shí)際的情形上報(bào)全部信息冷守。新版本發(fā)送人工選擇之后的信息刀崖。

場(chǎng)景2 列表元素的展現(xiàn)統(tǒng)計(jì)

imp場(chǎng)景2

舊版本:

GIO 推薦廣告位在 ScrollView 的最底部,需要用戶滑動(dòng)才能看到拍摇,但是頁面初始化的時(shí)候繪制亮钦,只是當(dāng)前屏幕不可見。

舊版本中只會(huì)發(fā)送一次 imp 事件充活,無論隨著用戶的滑動(dòng)元素是否再次可見蜂莉,只有在頁面初始化的時(shí)候發(fā)送此元素的 imp 事件蜡娶。

新版本:

隨著用戶的滑動(dòng)手勢(shì),元素進(jìn)入屏幕則觸發(fā)自動(dòng)埋點(diǎn)事件巡语,滑動(dòng)出屏幕后翎蹈,再滾動(dòng)回來 View 再次可見依然會(huì)發(fā)送自動(dòng)埋點(diǎn)事件。

即為元素對(duì)于用戶可見幾次則發(fā)送幾次事件男公。

新版本瀏覽事件采集的列表荤堪,內(nèi)部的元素展現(xiàn)次數(shù)的統(tǒng)計(jì)更加準(zhǔn)確,更符合業(yè)務(wù)場(chǎng)景枢赔。

總結(jié):新版本改為展示上傳澄阳。

3. 提升用戶瀏覽事件采集的性能

舊版本中,無埋點(diǎn) SDK 將自動(dòng)采集所有 View 的信息踏拜,最終分析時(shí)不會(huì)分析所有 APP 中的 View碎赢,在APP的性能、用戶流量上都是一種浪費(fèi)速梗。

新版本中肮塞,SDK 非全量采集所有列表中的元素,只采集用戶配置的元素姻锁,性能有較大提升枕赵。

總結(jié):growingio由全自動(dòng)切換到半自動(dòng),觸發(fā)條件與采集上報(bào)機(jī)制位隶。

二 埋點(diǎn)方案

從位置上分為前端埋點(diǎn)和后端埋點(diǎn)拷窜,從形式上分為顯性埋點(diǎn)和隱性埋點(diǎn),從路徑上又可以分為路徑埋點(diǎn)和獨(dú)立埋點(diǎn)涧黄,從需求上分為業(yè)務(wù)埋點(diǎn)和監(jiān)測(cè)埋點(diǎn)篮昧。

1.? 前端埋點(diǎn)

前端埋點(diǎn)是在用戶端(APP、Web笋妥、客戶端)等嵌入數(shù)據(jù)采集代碼懊昨,比如友盟等均采用的是前端埋點(diǎn),比如通過嵌入一段代碼就就可以對(duì)網(wǎng)頁數(shù)據(jù)的訪問數(shù)據(jù)進(jìn)行采集挽鞠。相比于后端埋點(diǎn)疚颊,前端埋點(diǎn)能方便收集到用戶在界面上的行為數(shù)據(jù),比如用戶點(diǎn)了哪個(gè)按鈕信认、頁面之間的跳轉(zhuǎn)次序材义、停留時(shí)長(zhǎng)等,這些數(shù)據(jù)是后面進(jìn)行數(shù)據(jù)分析的主要來源嫁赏。

前端埋點(diǎn)技術(shù)有以下三類:

代碼埋點(diǎn)

代碼埋點(diǎn)是直接將采集SDK集成在終端其掂,然后不斷在此基礎(chǔ)上添加調(diào)整采集方案,是目前主流的埋點(diǎn)采集方案潦蝇,其優(yōu)缺點(diǎn)如下:

優(yōu)點(diǎn):

高度定制款熬、控制精準(zhǔn)深寥、采集的數(shù)據(jù)豐富準(zhǔn)確

缺點(diǎn):

首先是每當(dāng)有采集需求,需要開發(fā)人員不斷添加采集代碼贤牛,工作量大惋鹅;

其次變更采集策略,需要發(fā)布新版本殉簸,代價(jià)巨大闰集,存在滯后效應(yīng);

最后由于采集代碼常駐終端般卑,不斷將采集的用戶行為數(shù)據(jù)進(jìn)行記錄和上報(bào)武鲁,對(duì)于終端尤其是移動(dòng)終端來說還有耗電、消耗數(shù)據(jù)流量等負(fù)載蝠检,此外在數(shù)據(jù)上報(bào)傳輸?shù)倪^程中也存在丟失數(shù)據(jù)的風(fēng)險(xiǎn)沐鼠。

可視化埋點(diǎn)

由于代碼埋點(diǎn)需要終端開發(fā)人員來執(zhí)行采集方案,對(duì)業(yè)務(wù)的功能開發(fā)侵入性較高叹谁。有的公司開發(fā)出了可視化埋點(diǎn)技術(shù)饲梭,只需要產(chǎn)品與運(yùn)營(yíng)人員通過GUI界面進(jìn)行鼠標(biāo)簡(jiǎn)單點(diǎn)擊,就可以隨時(shí)增加焰檩、取消排拷、調(diào)整采集數(shù)據(jù)的位置和方式,此種埋點(diǎn)方式避開了終端開發(fā)人員的介入锅尘,由需求人員直接執(zhí)行采集,減輕了需求傳遞過程中的信息損耗和誤解布蔗,另外可視化埋點(diǎn)技術(shù)往往由服務(wù)端直接下發(fā)采集的配置文件藤违,而不用跟隨版本發(fā)布,從而加快了數(shù)據(jù)采集的流程纵揍。

具體實(shí)現(xiàn)方式參考:

具體實(shí)現(xiàn)是SDK定時(shí)做界面截圖顿乒,在截圖的同時(shí)從界面UI的根對(duì)象開始遍歷所有的可視化子對(duì)象,得到其層級(jí)關(guān)系泽谨。根據(jù)截圖和UI元素的可視化信息重新渲染頁面璧榄,識(shí)別可埋點(diǎn)的控件。當(dāng)產(chǎn)品人員在后臺(tái)管理端的截屏畫面上點(diǎn)擊可埋點(diǎn)控件吧雹,設(shè)置事件關(guān)聯(lián)方面的配置骨杂,服務(wù)器保存這些配置,客戶端在獲取到這些配置信息以后雄卷,按照新配置采集數(shù)據(jù)搓蚪。

無埋點(diǎn)

無埋點(diǎn)與可視化埋點(diǎn)原理基本一致,區(qū)別在于無埋點(diǎn)是先遍歷所有的控件和操作行為的組合情況丁鹉,然后將這些組合情況交給埋點(diǎn)后臺(tái)妒潭,由數(shù)據(jù)分析人員選擇對(duì)哪些組合的埋點(diǎn)數(shù)據(jù)進(jìn)行分析悴能,其優(yōu)缺點(diǎn)如下:

優(yōu)點(diǎn):

1? 可視化展示界面最基本度量,滿足基本數(shù)據(jù)分析需求雳灾。無埋點(diǎn)可視化展示界面PV漠酿、UV等最基本度量。

2? 技術(shù)門檻低谎亩,使用與部署較為簡(jiǎn)單炒嘲。無埋點(diǎn)極大程度避免了因需求變更、埋點(diǎn)錯(cuò)誤等原因?qū)е碌闹匦侣顸c(diǎn)繁復(fù)工作团驱。

3 用戶友好性好摸吠。

缺點(diǎn):

1? 無埋點(diǎn)只能采集到用戶交互數(shù)據(jù),且適合標(biāo)準(zhǔn)化的采集嚎花,自定義屬性的采集仍舊需要代碼埋點(diǎn)來輔助寸痢。例如在電商行業(yè)中,用戶點(diǎn)擊“購(gòu)物車”是一次交互行為紊选,無埋點(diǎn)會(huì)忽略用戶信息啼止、商品品類信息等其他維度的信息。

2? 無埋點(diǎn)兼容性有限兵罢。例如對(duì)安卓系統(tǒng)進(jìn)行埋點(diǎn)時(shí)献烦,不同工程師對(duì)不同APP可能會(huì)對(duì)相同的button起不同名稱的ID,當(dāng)運(yùn)營(yíng)人員想要篩選所需數(shù)據(jù)時(shí)卖词,不同名稱會(huì)給運(yùn)營(yíng)人員帶來困擾巩那。

3? 無埋點(diǎn)具有前端埋點(diǎn)的固有缺陷。無埋點(diǎn)是前端數(shù)據(jù)采集方式之一此蜈,因此具有前端埋點(diǎn)的天然缺陷即横,如數(shù)據(jù)采集不全面、傳輸時(shí)效性較裆赵、數(shù)據(jù)可靠性無法保證等問題东囚。無埋點(diǎn)的技術(shù)原理依賴網(wǎng)站或者APP后端技術(shù)開發(fā)的嚴(yán)謹(jǐn)性與規(guī)范性、網(wǎng)絡(luò)狀態(tài)战授、網(wǎng)絡(luò)口徑等页藻。

前端埋點(diǎn)的注意事項(xiàng):

頁面和控件標(biāo)示上報(bào)要從頂層進(jìn)行合理的設(shè)計(jì),層次感要明顯

埋點(diǎn)數(shù)據(jù)的漏報(bào)和重復(fù)上報(bào)如何衡量

前端埋點(diǎn)不僅可以處理不需要和服務(wù)器交互的曝光和點(diǎn)擊事件植兰,也可以將與服務(wù)器交互的結(jié)果份帐,比如關(guān)注成功、分享成功钉跷、優(yōu)惠券領(lǐng)取成功等原屬于后端埋點(diǎn)里的事件放在前端來上報(bào)弥鹦。

2. 后端埋點(diǎn)

后端埋點(diǎn)為了避免前端埋點(diǎn)的以下問題:

前端埋點(diǎn)需要對(duì)采集的數(shù)據(jù)壓縮、暫存,為減少移動(dòng)端的數(shù)據(jù)流量彬坏,除一些需要實(shí)時(shí)上報(bào)的重要事件不限制網(wǎng)絡(luò)環(huán)境朦促,其它事件一般只在wifi情況下上報(bào),因此數(shù)據(jù)會(huì)有延遲栓始,丟數(shù)據(jù)等弊端务冕,而在后端采集數(shù)據(jù),由于數(shù)據(jù)是在內(nèi)網(wǎng)傳輸幻赚,數(shù)據(jù)傳輸?shù)募磿r(shí)性強(qiáng)禀忆,丟失數(shù)據(jù)的風(fēng)險(xiǎn)小。

前端埋點(diǎn)采集程序由于需要常駐落恼,監(jiān)測(cè)實(shí)時(shí)和延遲埋點(diǎn)上報(bào)箩退,不可避免的帶來額外的耗電。

前端埋點(diǎn)若要新增或調(diào)整采集方案佳谦,需要開發(fā)人員修改客戶端代碼戴涝,然后發(fā)版之后才能解決,受發(fā)布周期的影響較大钻蔑,而且通常用戶的版本更新并不會(huì)及時(shí)啥刻,這將導(dǎo)致新方案不能及時(shí)覆蓋所有用戶。雖然現(xiàn)在部分埋點(diǎn)管理后臺(tái)也支持熱配置更新咪笑,但功能一般都很弱可帽,只支持一些基礎(chǔ)的埋點(diǎn)事件熱更新部署,

注意:

很多時(shí)候并不把后端埋點(diǎn)獨(dú)立出來窗怒,而是混合在前端埋點(diǎn)中映跟,等用戶和服務(wù)器端的交互返回結(jié)果之后,將結(jié)果進(jìn)行上報(bào)扬虚。

對(duì)一下需要精確采集的數(shù)據(jù)申窘,比如代金券發(fā)放等,實(shí)施的時(shí)候盡量采用后端埋點(diǎn)孔轴,除非后端無法采集到所需要的數(shù)據(jù),前端埋點(diǎn)只是用來參考碎捺。此外也可以將業(yè)務(wù)數(shù)據(jù)庫(kù)代金券領(lǐng)取數(shù)據(jù)同步到數(shù)據(jù)倉(cāng)庫(kù)中進(jìn)行分析路鹰。


參考資料

數(shù)據(jù)埋點(diǎn)之認(rèn)識(shí)埋點(diǎn)?http://www.reibang.com/p/e3a315b8849e

如何做到不必埋點(diǎn)即可采集到齊全的用戶行為點(diǎn)擊流數(shù)據(jù)? - 喬一鴨的回答 - 知乎?https://www.zhihu.com/question/38000812/answer/233650905

growingio?https://docs.growingio.com/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市收厨,隨后出現(xiàn)的幾起案子晋柱,更是在濱河造成了極大的恐慌,老刑警劉巖诵叁,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件雁竞,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)碑诉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門彪腔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人进栽,你說我怎么就攤上這事德挣。” “怎么了快毛?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵格嗅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我唠帝,道長(zhǎng)屯掖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任襟衰,我火速辦了婚禮贴铜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘右蒲。我一直安慰自己阀湿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布瑰妄。 她就那樣靜靜地躺著陷嘴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪间坐。 梳的紋絲不亂的頭發(fā)上灾挨,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音竹宋,去河邊找鬼劳澄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蜈七,可吹牛的內(nèi)容都是我干的秒拔。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼飒硅,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼砂缩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起三娩,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤庵芭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后雀监,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體双吆,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了好乐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匾竿。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖曹宴,靈堂內(nèi)的尸體忽然破棺而出搂橙,到底是詐尸還是另有隱情,我是刑警寧澤笛坦,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布区转,位于F島的核電站,受9級(jí)特大地震影響版扩,放射性物質(zhì)發(fā)生泄漏废离。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一礁芦、第九天 我趴在偏房一處隱蔽的房頂上張望蜻韭。 院中可真熱鬧,春花似錦柿扣、人聲如沸肖方。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俯画。三九已至,卻和暖如春司草,著一層夾襖步出監(jiān)牢的瞬間艰垂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工埋虹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留猜憎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓搔课,卻偏偏與公主長(zhǎng)得像胰柑,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子爬泥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 前言 最近跟同事花了點(diǎn)時(shí)間來思考可視化埋點(diǎn)旦事,并沒有什么突破性的進(jìn)展,不過市面上很多關(guān)于可視化埋點(diǎn)的技術(shù)文章都在講達(dá)...
    daixunry閱讀 8,039評(píng)論 1 38
  • https://mp.weixin.qq.com/s/u-HmmrSAgtER1N2pKxCm0A 隨著公司業(yè)務(wù)的...
    海浪萌物閱讀 3,076評(píng)論 1 1
  • 前言 通過閱讀本篇急灭,你將獲得以下三方面的知識(shí): 什么是埋點(diǎn)? 埋點(diǎn)的用途谷遂? 埋點(diǎn)的分類葬馋? 一、什么是埋點(diǎn) 數(shù)據(jù)埋點(diǎn)...
    Kince_X閱讀 21,303評(píng)論 0 38
  • 風(fēng)一截一截老去 由翠綠變成暗紫 它橫陳于夜的江底 像一個(gè)人心的經(jīng)歷 你已經(jīng)自備了深淵 而她的心事太寬
    舒嚴(yán)閱讀 102評(píng)論 0 0
  • 因?yàn)槭芰艘T與鼓動(dòng),漸漸走向了一條不歸路畴嘶。
    月十八閱讀 197評(píng)論 0 1