APP無埋點流程

最近無埋點技術(shù)很是流行,抽空研究了下諸葛IO蒿偎,talkingData以及百分點這些業(yè)內(nèi)知名公司的無埋點SDK湿刽,抽取其中重要的信息供大家參考:

1、首先什么是無埋點呢奶镶,其實所謂無埋點就是開發(fā)者無需再對追蹤點進行埋碼迟赃,而是脫離代碼,只需面對應(yīng)用界面圈圈點點即可追加隨時生效的事件數(shù)據(jù)點厂镇。

無埋點的好處

其實無埋點并不是完全不用寫代碼纤壁,而是盡可能的少寫代碼。開發(fā)者將SDK集成到項目中捺信,配置并初始化SDK之后迄靠,接下來就可以進行可視化操作掌挚。這個可以不依賴開發(fā)者吠式,一些實施人員都是通過后臺的配制特占,就達到埋點的配制罢低,還有新增埋點改動都是很方便的實現(xiàn)网持。最后就是配制和代碼功舀,可以很靈活地擴展辟汰,動態(tài)地更新帖汞。

2所意、上面我們寫道無埋點要進行可視化操扶踊,參考百分點秧耗、talkingData采用相對簡單可行的辦法是對當(dāng)前的屏幕進行截圖,截圖完了以后做一些處理杂抽。做一些壓縮铸磅,然后傳到服務(wù)端阅仔,服務(wù)端進行展現(xiàn)空民,就把屏幕截圖展現(xiàn)出來界轩。屏幕截圖做完了浊猾,下一步葫慎,需要在管理界面進行配置艰额,對于可點擊的組件進行配置悴晰,就需要把這些界面框起來展現(xiàn)給使用者。下面是截取的talkingData的可視化操作為例棕硫,為大家展示可視化埋點的流程:

項目嵌碼之后哈扮,進入可視化鏈接頁面,搖一搖連接設(shè)備:

搖一搖靶庙,連接設(shè)備

鏈接成功之后,平臺獲取當(dāng)前界面截圖:

平臺自動獲取連接設(shè)備當(dāng)前界面

為要統(tǒng)計的界面元素命名事件,添加追蹤點砚亭,至此埋點操作完成:

選擇界面中的元素來追加事件

這里需要指出一下族阅,無埋點只是針對一些簡單的操作統(tǒng)計坦刀,如按鈕點擊的次數(shù)沐寺、時間等狐援。如果是比較復(fù)雜的應(yīng)用場景,例如支付事件镶殷,需要統(tǒng)計商品名稱、價格陷遮、數(shù)量等疫粥,這就需要通過埋點來收集詳細(xì)的參數(shù)。

3慷彤、無埋點實現(xiàn)方式:

整個技術(shù)里面比較關(guān)鍵的一點是怎么拿到屏幕控件信息锚沸。這一塊兒主要就是三個問題前标。第一,就是獲取時機氢惋。第二已亥,就是拿控件什么信息秫舌,什么信息是需要用到的。第三零抬,就是比較關(guān)鍵的,如何生成控件的唯一ID忽妒,ID是在程序內(nèi)部生成玩裙。需要保證在不同的手機上面,這些ID是一樣的段直。還要保證每一次啟動ID都是不變吃溅。

首先是Android:


然后,接下來我們可以看一下iOS鸯檬,同樣的决侈,也是面臨三個問題:

iOS無埋點的核心技術(shù)是利用蘋果的runtime機制,把系統(tǒng)事件喧务、點擊事件的指針替換成我們自己的函數(shù)來監(jiān)測用戶的操作赖歌,我們在自己的函數(shù)中采集并發(fā)送需要的數(shù)據(jù)枉圃。

4、遇到的問題和解決辦法

第四部分俏站,講一下我們在實現(xiàn)無埋點技術(shù)的時候讯蒲,遇到了什么坑?以及采用什么方法來解決這些坑肄扎。

長連接斷開的問題墨林,我們之前是設(shè)計每隔5秒發(fā)送一次截圖,一般不會產(chǎn)生斷開犯祠。但是旭等,后面做了一些優(yōu)化,我們不會每隔5秒就發(fā)衡载,這樣就會導(dǎo)致這個鏈路長時間沒有數(shù)據(jù)搔耕。然后,我們解決方法也是采取了業(yè)界通用的方法痰娱,發(fā)一個心跳弃榨,通過發(fā)一個心跳來保證這個鏈路一直是活著的。

第二個問題就是搖一搖遇到的問題梨睁,我們遇到的問題是這樣的鲸睛,你拿著手機搖一搖,什么時候連接成功呢坡贺?你得給用戶一個反饋官辈,要不用戶就是一直搖下去,我們后來想的方法是遍坟,搖成功給他一個振動拳亿,振動了,用戶有反饋愿伴,就知道這個連接成功了肺魁,不需要搖了。然后隔节,就是帶來另外一個問題万搔。有時候運動當(dāng)中,又會產(chǎn)生一些誤操作官帘,就是導(dǎo)致手機會振一下。這個怎么解決呢昧谊?我們就想了一下刽虹,可以通過給服務(wù)端有一個交互,管理界面里面發(fā)現(xiàn)有一個請求過來要連了會有一個確認(rèn)的按鈕呢诬,用戶確認(rèn)之后涌哲,SDK收到確認(rèn)消息以后胖缤,我們再去振動。這樣的話阀圾,既可以給用戶反饋哪廓,也不會說在它誤操作情況下振動。這樣就不會造成誤操作初烘,也不會無緣無故地進行振動涡真。

界面?zhèn)鬏數(shù)膬?yōu)化,因為在整個配制過程當(dāng)中肾筐,傳輸數(shù)據(jù)量最大的就是屏幕的截圖哆料。怎么把這個優(yōu)化一下?就可以更好地提升我們的體驗度吗铐,還有流暢性东亦。圖片采用jpeg格式,把圖片質(zhì)量選擇0.6唬渗,剛好是可以看清楚的典阵。然后,也最大限度地降低了這個圖片大小镊逝。

然后壮啊,整個傳輸效率,有這樣一個問題蹋半。我在當(dāng)前界面他巨,默認(rèn)就是5秒傳一次。我點了一下减江,我在當(dāng)前一個列表界面染突,點了一下切換到詳情界面。最壞的情況下就是等5秒辈灼,加上網(wǎng)絡(luò)傳輸效果份企,管理界面就看到新的屏幕。這種體驗是很差的巡莹,因為實時性太差司志。所以,這一塊做了一個優(yōu)化降宅。盡量讓它實時傳過去骂远,我們在屏幕切換的時候,主動發(fā)一次截圖腰根。這樣的話激才,等的時間就是網(wǎng)絡(luò)傳輸?shù)臅r間,不用等5秒固定的時間劣挫。這一塊用戶體驗上面就是更流暢一些东帅。

有的時候屏幕界面沒有任何的變化的压固,這個時候每隔5秒傳一次沒有必要的靠闭。所以焚刚,我們把屏幕截圖做一個md5進行保留,傳輸時對比md5碳柱,當(dāng)切換到下一個的時候,我們就發(fā)新的屏幕截圖瑞侮。這樣就會減少很多不必要的屏幕的傳輸。然后钮糖,也會節(jié)省很多的流量。

控件ID重復(fù)的問題。前面說過我們的ID生成規(guī)則可以解決90%的問題肄满,但是汇陆,有一些問題還是解決不了阅羹。生成ID重復(fù),重復(fù)的話就會產(chǎn)生一個什么樣的效果和問題?同樣兩個按紐看尼,一個注冊却盘,對于注冊定義了一個埋點兆览,就是注冊點擊描孟,用戶實際操作的時候點登陸的時候也是發(fā)過來一個注冊點擊消息。這樣就是統(tǒng)計不準(zhǔn)溉痢,因為這種比較的特殊,我們采用的解決方案,通過服務(wù)端發(fā)一些特殊配制。把這些配制里面,因為這兩個button里的text不一樣鳄抒,一個是注冊闯捎,一個是登陸。我們把text信息放在ID的這個生成規(guī)則里面嘁酿,最終生成兩個不同的ID闹司,也是可以解決這個問題。

還有一個難點通過可視化埋點的事件名稱會先通過平臺傳到服務(wù)器,服務(wù)器再傳給所有用戶APP中的SDK铐刘,SDK進行判別是哪個界面的哪個事件被動態(tài)埋點了盼产,然后進行統(tǒng)計戏售,并發(fā)送數(shù)據(jù)到后臺進行統(tǒng)計分析侨核。判斷某個界面的某個事件應(yīng)該會比較棘手灌灾,在這里先做一個標(biāo)記紧卒。

當(dāng)然在寫SDK的過程中肯定還有很多的坑侥衬,我會在以后的時間里一一記錄下來,同時也歡迎大家提出自己的見解跑芳。

主要參考:以上是之前找的資料,時間久了就忘了出處直颅,故沒有粘貼作者信息博个,但這些信息給自己在實踐的過程中提供了很多的指導(dǎo),這里多謝作者功偿,以后找到出處一定補上盆佣。

終于找到來源了,嘿嘿嘿:http://chuansong.me/n/952687251048#10006-weixin-1-52626-6b3bffd01fdde4900130bc5a2751b6d1

技術(shù)交流群:有需要可以進械荷,若掃碼群滿請加作者wx:chu2478

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末共耍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吨瞎,更是在濱河造成了極大的恐慌痹兜,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颤诀,死亡現(xiàn)場離奇詭異字旭,居然都是意外死亡,警方通過查閱死者的電腦和手機崖叫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門遗淳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人心傀,你說我怎么就攤上這事屈暗。” “怎么了脂男?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵养叛,是天一觀的道長。 經(jīng)常有香客問我疆液,道長一铅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任堕油,我火速辦了婚禮潘飘,結(jié)果婚禮上肮之,老公的妹妹穿的比我還像新娘。我一直安慰自己卜录,他們只是感情好戈擒,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艰毒,像睡著了一般筐高。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上丑瞧,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天柑土,我揣著相機與錄音,去河邊找鬼绊汹。 笑死稽屏,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的西乖。 我是一名探鬼主播狐榔,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼获雕!你這毒婦竟也來了薄腻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤届案,失蹤者是張志新(化名)和其女友劉穎庵楷,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體萝玷,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡嫁乘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了球碉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜓斧。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖睁冬,靈堂內(nèi)的尸體忽然破棺而出挎春,到底是詐尸還是另有隱情,我是刑警寧澤豆拨,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布直奋,位于F島的核電站,受9級特大地震影響施禾,放射性物質(zhì)發(fā)生泄漏脚线。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一弥搞、第九天 我趴在偏房一處隱蔽的房頂上張望邮绿。 院中可真熱鬧渠旁,春花似錦、人聲如沸船逮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挖胃。三九已至杂靶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間酱鸭,已是汗流浹背吗垮。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凹髓,地道東北人抱既。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像扁誓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蚀之,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

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

  • 最近無埋點技術(shù)很是流行蝗敢,抽空研究了下諸葛IO,talkingData以及百分點這些業(yè)內(nèi)知名公司的無埋點SDK足删,抽取...
    heigo閱讀 5,021評論 1 6
  • 在這篇文章里面寿谴,我們會對數(shù)據(jù)采集的一些基本概念進行闡述,然后失受,會針對目前市面上新增的一些前端埋點技術(shù)讶泰,如可視化埋點...
    言射手閱讀 6,606評論 1 52
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,129評論 25 707
  • 版權(quán)歸屬于微信公眾號文章網(wǎng)易HubbleData之Android無埋點實踐文末有彩蛋哦? 1 背景 網(wǎng)易Hubbl...
    nailperry閱讀 8,251評論 3 31
  • 作為一個資深的減肥者,我目前做到的最好成績是:四個月減重25斤拂到,當(dāng)然現(xiàn)在還走在減肥的道路上痪署。有很多人說,減肥期間不...
    金剛海綿寶閱讀 1,357評論 6 7