應用埋點方案

前言

近期,應PM要求,對應用的埋點方案進行了調研跋核,特在此寫個博客記錄分享一下岖瑰。

需求分析

首先我們需要清楚埋點的實際需求是什么?對于一個產(chǎn)品來講埋點無非就是想了解用戶的使用習慣和產(chǎn)品的使用情況砂代,從而從客戶和產(chǎn)品的角度去了解客戶群體蹋订,及其對產(chǎn)品的一些使用想法。本文將著重關注數(shù)據(jù)的收集而非數(shù)據(jù)分析刻伊。

數(shù)據(jù)處理

在這里辅辩,我們需要明確的一點是,數(shù)據(jù)處理的整個過程中娃圆,數(shù)據(jù)的收集是重中之重,它將是我們進行數(shù)據(jù)的分析的大前提蛾茉,因為采集的數(shù)據(jù)會直接影響到最后的分析結果讼呢。

數(shù)據(jù)處理.png

因此,數(shù)據(jù)采集應具備以下幾點特性:

多元性
采集過程應從不同的維度去獲取數(shù)據(jù)谦炬。比如我們要采集用戶相關的部分數(shù)據(jù)悦屏。那么我們可以從身高、體重键思、興趣愛好等各個層次础爬、多維度的去采集對應數(shù)據(jù)。這樣的數(shù)據(jù)還原出來的用戶對像才更有活性吼鳞,對于今后的數(shù)據(jù)分析看蚜、包括描繪用戶畫像也更為有利。

準確性
準確性包含兩個層次的要求:1.數(shù)據(jù)采集過程的準確性:對于特定的流程分析赔桌,我們的埋點方案要具備一定的針對性供炎,避免無關因素的干擾。2.數(shù)據(jù)的客觀性疾党。我們不能代替客戶音诫,我們能做的只是觀察并記錄,臆想的數(shù)據(jù)對于我們毫無價值雪位。

時效性
對于采集的數(shù)據(jù)竭钝,它只能反映過去的某個時刻或者某段時間的客觀情況。得到的結果和結論也只能是對應過去的某個時間段而言雹洗∠愎蓿可能是受制于當時的網(wǎng)絡情況、社會環(huán)境等因素的影響时肿,才會呈現(xiàn)出這樣的結果穴吹。所以我們在采集數(shù)據(jù)的同時最好能給它打上時間標簽,方便今后的數(shù)據(jù)對比嗜侮。


ok港令,接下里進入正題--埋點

什么是埋點啥容?

簡單的說,埋點就是定時顷霹、定點的數(shù)據(jù)采集咪惠,然后上報。
舉個簡單的??

代碼埋點.png

如圖淋淀,比如我們在到達頁面A的時候遥昧,進行數(shù)據(jù)采集和上報,告訴服務器我是誰朵纷?我在哪里炭臭?我干了些什么?而后進入頁面B袍辞,進行相同的操作鞋仍,以此類推。最后后臺可以根據(jù)得到的數(shù)據(jù)還原用戶的各種行為搅吁,最終將這些數(shù)據(jù)呈現(xiàn)出來威创,方便運營等進行分析操作。(技術上講谎懦,這里實際上還包含數(shù)據(jù)存儲和傳輸?shù)葐栴}肚豺,不同的埋點方案的處理方式都不盡相同,這里就不做過多的闡述了界拦。)


埋點方案一:代碼埋點

代碼埋點是很多人一開始就會想到的方案吸申,也是目前最為人所知的一種方案。包括友盟在內(nèi)的一些服務商目前都在使用這種方案享甸。實現(xiàn)方式相信大家一看就明白呛谜,就是在需要數(shù)據(jù)采集的地方抓取數(shù)據(jù),然后上傳枪萄。

要指出的是隐岛,這里的數(shù)據(jù)采集往往會以事件的方式進行。事件包含事件名稱瓷翻、事件參數(shù)等聚凹,簡單的點擊事件統(tǒng)計(比如統(tǒng)計點擊事件)僅需事件名稱即可,如果想抓住事件內(nèi)部的一些數(shù)據(jù)的話齐帚,比如電商領域的一些交易統(tǒng)計妒牙,就會在用戶點擊提交購買按鈕的時候在事件參數(shù)里傳遞總價等數(shù)值。在開發(fā)文檔里对妄,后者通常會被稱為自定義事件湘今,這也是代碼埋點最具靈活性的地方。

這種方案的優(yōu)點在于它的準確性和針對性剪菱。指哪打哪摩瞎,不浪費一發(fā)子彈拴签。如果項目較小或者還只是在項目初期,這種方案還算可以接受旗们,但是如果在較大的項目項目或者處于開發(fā)后期的項目來做蚓哩,對于程序員來講無疑是身心上的摧殘。一方面工作量太大上渴,這種特定的頁面的數(shù)據(jù)采集方案(PM:什么岸梨?不知道埋哪里?那就都埋了吧3淼)能偷懶的地方都沒有曹阔;另一方面,這種方案對代碼的入侵性太大隔披,很可能導致代碼高耦合赃份,并且這種方式采集的數(shù)據(jù)維度往往會太過單一。如果今后想從更高的層面或者其他角度去分析锹锰,很有可能需要重新埋點和發(fā)布版本。


做不做漓库?恃慧!.png

埋點方案二:可視化埋點

代碼埋點將核心代碼和配置資源進行了分離。在每次啟動的時候都會有去請求最新的埋點配置渺蒿,他在一定程度上降低了代碼埋點的門檻痢士,只要客戶端集成之后,PM在web上就可以進行操作(讓PM自己玩去吧╮(╯▽╰)╭)

那么它是如何實現(xiàn)的呢茂装?


可視化埋點.png

如圖怠蹂,簡單來說,客戶端集成SDK之后少态,在用戶使用的過程中會定時截圖城侧,同時獲取應用視圖的層級關系,傳到服務端彼妻。服務端會重新渲染頁面嫌佑,并判斷控件是否可以埋點,然后關聯(lián)對應的埋點事件侨歉,最后將配置信息傳回客戶端屋摇。

這種方式從某種程度上大大提升了應用的埋點靈活性,使用方便幽邓。當然它也有一定的局限性炮温,比如埋點的內(nèi)容有限,不能像代碼埋點一樣采用自定義事件,所以對于較為深入的行為分析要求牵舵,這種方案不能很好的實現(xiàn)柒啤。

埋點方案三:無埋點

無埋點的的技術方案倦挂,早在2013年就已提出了。它在客戶端集成之后白修,會主動的盡可能多的收集數(shù)據(jù)妒峦,甚至連要在那里埋點的問題都省略了,我們不用去設置配置文件兵睛,如果我們想要特定的數(shù)據(jù)直接去查詢即可(這就是為什么叫無埋點)肯骇。

與可視化埋點相比,無埋點主要解決的是數(shù)據(jù)的回溯問題祖很。比如笛丙,我們想要得到某個頁面的訪問數(shù)量,如果是可視化埋點假颇,就需要去配置一下埋點方案胚鸯,然后發(fā)布,一段時間之后才會得到對應的數(shù)據(jù)笨鸡。我們無法獲取到發(fā)布之前的某個時間內(nèi)的訪問情況姜钳。也就是說所有想得到的數(shù)據(jù)只有在配置文件發(fā)布之后才能看到。對于無埋點方案來講形耗,這些數(shù)據(jù)的采集早在SDK集成的時候就開始了哥桥。某天突然想要看下,查詢下就可以看到了。當然,它的缺點也是顯而易見的兼耀,采集的數(shù)據(jù)越多,對于數(shù)據(jù)傳輸和存儲的要求就會越高送滞。

其實,有時候對于某些檢測行為辱挥,我們并非一定要在客戶端做犁嗅。考慮到數(shù)據(jù)處理過程中的傳輸和存儲問題(本地數(shù)據(jù)存儲)晤碘,在服務端進行埋點和分析會顯得事半功倍愧哟。


一些國內(nèi)外的服務商

Google Analytics(Firebase Analytics)
https://firebase.google.com/docs/database/ios/start
Firebase Analytics是2016年在Google I/O上推出的針對移動應用的服務。

Flurry
https://developer.yahoo.com/flurry/docs/analytics/gettingstarted/technicalquickstart/ios/

Localytics
http://docs.localytics.com/dev/ios.html

Mixpanel
https://mixpanel.com/help/reference/ios
(支持可視化埋點)

Umeng
http://dev.umeng.com/analytics/ios-doc/integration?spm=0.0.0.0.t9tzbd

Growing IO
https://help.growingio.com/SDK/iOS.html
(國內(nèi)無埋點方案-無埋點的啟發(fā)性更好哦)

TalkingData
https://www.talkingdata.com/tracking/documents/AdTracking_SDK_iOS_%E9%9B%86%E6%88%90%E6%96%87%E6%A1%A3.pdf

以上都是集成文檔的鏈接哼蛆,各家都有自己的特點蕊梧。具體方案請視自己的情況而定。

自行搭建埋點服務

有時候我們也會遇到數(shù)據(jù)是有了腮介,但是當要把原始數(shù)據(jù)做導出分析時又遇到問題肥矢。自己產(chǎn)品的數(shù)據(jù)卻不能被我們自己擁有。
這里介紹兩款免費開源的私有化部署方案
1.cobub razor
傳送門:http://www.cobub.com
2.countly
傳送門:https://count.ly


總結:
不同的埋點方案都有各自的優(yōu)缺點,對于不同的業(yè)務需求甘改,一種埋點方案明顯無法滿足 旅东,所以往往我們需要結合多種方案進行處理。

最后十艾,希望本文能拓寬大家對于埋點的思路吧:)

若文章中有不對的地方望指正抵代,萬分感謝!
本文提到的服務商與本人沒有利益關系.

參考文章
1.http://www.itechdog.com/blog/event-tracking?utm_source=tuicool&utm_medium=referral
2.http://www.reibang.com/p/973d626fa19a
3.http://www.reibang.com/p/4e1b371ec46a
4.https://www.zhihu.com/question/41831617

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忘嫉,一起剝皮案震驚了整個濱河市荤牍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庆冕,老刑警劉巖康吵,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異访递,居然都是意外死亡晦嵌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門拷姿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惭载,“玉大人,你說我怎么就攤上這事响巢∶杼希” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵抵乓,是天一觀的道長伴挚。 經(jīng)常有香客問我靶衍,道長灾炭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任颅眶,我火速辦了婚禮蜈出,結果婚禮上,老公的妹妹穿的比我還像新娘涛酗。我一直安慰自己铡原,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布商叹。 她就那樣靜靜地躺著燕刻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剖笙。 梳的紋絲不亂的頭發(fā)上卵洗,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機與錄音弥咪,去河邊找鬼过蹂。 笑死十绑,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的酷勺。 我是一名探鬼主播本橙,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼脆诉!你這毒婦竟也來了甚亭?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤库说,失蹤者是張志新(化名)和其女友劉穎狂鞋,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體潜的,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡骚揍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了啰挪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片信不。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖亡呵,靈堂內(nèi)的尸體忽然破棺而出抽活,到底是詐尸還是另有隱情,我是刑警寧澤锰什,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布下硕,位于F島的核電站,受9級特大地震影響汁胆,放射性物質發(fā)生泄漏梭姓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一嫩码、第九天 我趴在偏房一處隱蔽的房頂上張望誉尖。 院中可真熱鬧,春花似錦铸题、人聲如沸铡恕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽探熔。三九已至,卻和暖如春烘挫,著一層夾襖步出監(jiān)牢的瞬間诀艰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涡驮,地道東北人暗甥。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像捉捅,于是被迫代替她去往敵國和親撤防。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

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