深入浅出:移动端(Android 和 iOS)数据采集埋点 SDK
隨著大數據時代的到來,越來越多公司注意到數據帶來的價值,開始自建或購買一些第三方的數據平臺。從數據流的角度看,平臺對于數據的處理,一般有以下幾個步驟:
其中,數據采集工作是后面幾個步驟的基礎,數據采集的豐富性、準確性和及時性,都直接影響整個數據平臺的應用效果。神策數據在大數據行為分析和數據采集行業積累了豐富的實戰經驗,神策數據推出的移動端(Android 和 iOS) 數據采集埋點 SDK?具有安全、透明和穩定等特點:
安全:神策分析 SDK 支持 HTTPS 數據傳輸以及對采集的數據進行加密,保障客戶的數據隱私安全;
透明:神策分析 SDK 所有源碼都是開源的,SDK 代碼托管在 GitHub ?上,開源是對客戶的一種保障;
穩定:超過 2000+ 家的付費客戶使用我們的 SDK,其中包括中國銀聯、翼支付、中國移動等客戶。
在功能上覆蓋了代碼埋點、全埋點、點擊圖和可視化全埋點等,接下來我們將對這些功能逐一進行介紹。
一、功能介紹
(一)代碼埋點
1.?功能介紹
代碼埋點出現的時間很早了,在 Google Analytics 年代,就已經出現了類似的方案了。目前,國內的主要第三方數據分析服務商,如百度統計、友盟等都提供了這一方案。是一種最原始的埋點方式,同時也是 “最萬能” 的埋點方式。其實現原理是:在 SDK 初始化之后,對于每一個關注的事件,調用 SDK 中的? track ?等相關接口,將需要采集的事件名、屬性字段等先保存到本地,然后按照一定的發送策略將數據發送到數據服務器。
2.?使用場景
代碼埋點有很多優點:
當然,代碼埋點也有相應的缺點:
因此,代碼埋點適用于需要精準控制埋點位置、靈活的自定義事件和屬性等精細化需求的場景。
(二)全埋點
1.?功能介紹
全埋點,也叫無埋點、無碼埋點、無痕埋點、自動埋點。全埋點是指無需應用程序開發工程師寫代碼或者只寫少量的代碼,就能預先自動收集用戶的所有或者絕大部分的行為數據,然后就可以根據實際的業務分析需求從中篩選出所需行為數據并進行分析。?
全埋點目前可以采集的事件有:
(1)App 啟動事件
是指應用程序啟動,同時包括冷啟動和熱啟動場景。熱啟動也就是指應用程序從后臺恢復的情況。
這里需要注意的是,在 iOS 中有一種特殊的啟動事件叫?App 被動啟動事件。這是一種通過系統后臺喚醒的啟動事件,事件屬性和 App 啟動事件相同。對于 iOS 設備,除了用戶主動啟動 App,設備中某些條件觸發時(例如收到通知、用戶位置信息變化等),系統可能會喚醒 App,使程序在后臺運行。當程序在后臺啟動并運行時,SDK 觸發 App 被動啟動事件。
關于 iOS 設備后臺啟動和運行的更多信息,可參考 Apple 文檔 About the Background Execution Sequence。
(2)App 退出事件
是指應用程序退出,包括應用程序的正常退出、進入后臺、應用程序被強殺、應用程序奔潰等場景觸發的事件。這里需要注意在 Android SDK 中有一個 Session 的時間概念,例如應用程序進入后臺,并不會馬上觸發退出事件,需要等待超過一個 Session 時長后才算觸發退出事件。
(3)App 瀏覽頁面事件
是指應用程序頁面瀏覽,對 Android 應用來說是指切換 Activity 或 Fragment。而對 iOS 應用來說是指 ViewController 的?- viewDidAppear:?被調用。
(4)App 元素點擊事件
控件被點擊時,觸發 App 元素點擊事件,例如點擊一個 Button。
2.使用場景
全埋點有如下優點:
前期埋點代價相對比較小;
分析需求或事件設計若發生變更,無需應用程序更改埋點和發版;
可以有效的解決 “歷史數據回溯” 問題。
同時,全埋點也有一些缺點:
由于技術方面的原因,對于一些復雜的操作,可以覆蓋的功能有限,比如縮放、滾動等;
無法自動采集業務相關的數據;
無法滿足更精細化的分析需求;
各種兼容性方面的問題(比如不同系統版本之前的兼容性)。
因此,可以知道全埋點適用于以較小的埋點代價收集盡可能多的用戶行為數據的場景。
(三)點擊圖
1.功能介紹
點擊圖,即應用一種特殊高亮的顏色形式,顯示頁面或頁面組區域中不同元素點擊密度的圖示。在上圖中,清晰展示某個(些)元素被點擊的次數和占比,從而幫助使用者直觀的判斷用戶熱衷的區域,評估頁面設計的科學性。點擊圖功能依賴于全埋點中的點擊事件,因此需要先開啟全埋點點擊事件的采集。開啟點擊圖后,點擊事件會采集控件路徑信息屬性。
2.?使用場景
一般而言,大多數用戶行為分析產品的功能,是將發生在多頁面的用戶行為采集并進行分析。但運營人員難于知道:特定某頁面上用戶都進行了哪些具體操作?這些操作都發生在什么位置?點擊圖能夠幫助運營人員了解用戶和頁面上各元素的交互情況,判斷哪些元素對用戶最有吸引力,為優化和調整頁面設計提供了科學依據。然而,在使用 “點擊圖” 功能時,以下兩個問題值得注意:
(1)不要忽視位置等因素對點擊率的影響,以及元素之間的交叉影響。點擊分析的目的和頁面上某個元素所處的位置密切相關,但我們在分析時常常忽視位置對點擊次數和占比的影響,也不會在意頁面上其他元素受到的交叉影響。
(2)僅通過頁面的整體表現,是無法實現精細化運營的。基礎的點擊分析功能是對頁面宏觀層面的了解,僅能從中知道頁面上各元素的整體表現,功能相對基礎,無法滿足精細化運營需求。
(四)可視化全埋點
1.?功能介紹
可視化全埋點,是指通過可視化的方式進行埋點。它的前提是要開啟全埋點,然后通過設備連接神策分析的可視化全埋點界面,該界面上標識了已埋點元素和可埋點元素,對于可埋點元素可以創建新的埋點,并標識顯示名和事件名;對于已埋點元素只能修改顯示名。可視化全埋點的實現原理與創建?虛擬事件?基本類似,是基于全埋點的 App 元素點擊事件創建虛擬事件;若該事件刪除后再次被添加,則歷史數據也會生效。
2. 使用場景
可視化全埋點對非技術人員是很友好的一個功能,它在全埋點基礎上提供了自定義配置的功能,同時避免了代碼埋點的繁瑣,降低研發成本的同時也提高了分析的效率。
二、數據采集和發送
一般來說,數據采集分為三種方式:客戶端埋點、服務端埋點和工具導入(歷史數據導入)。我們目前討論的是移動端,直接使用 SDK 進行埋點就可以實現數據采集。采集的數據需要同步到服務端,然后再經過服務端的存儲、抽取、分析和展現,才能充分發揮數據的價值。因此,下面我們主要介紹如何發送采集的數據:
默認情況下,為了保證用戶體驗、減少性能和電量損耗,SDK 中事件觸發后不會立即上報,而是先將事件緩存在本地,然后定時、批量進行上報。如果預制的條件不滿足需求,可以在 SDK 初始化后,調用相關接口修改發送條件,如設定觸發發送條目數、發送時間間隔以及是否在 App 進入后臺時發送數據等,來定制自己的需求。下面我們來看下具體的數據發送策略。
(一)普通模式
SDK 每次觸發事件時會檢查如下條件,以判斷是否向服務器上傳數據:
當前網絡是否符合「預設的允許發送網絡策略 flushNetworkPolicy」?(2G、3G、4G、5G、WiFi);
與上次發送的時間間隔是否大于「預設的發送時間間隔 flushInterval」 (默認 15 秒);
本地緩存的事件條目數是否大于「預設的觸發發送條目數 flushBulkSize」?(默認 100 條);
當 App 進入后臺時是否立即嘗試發送數據(默認 YES)。
只有?a、b?或?a、c?或?a、d?滿足時,SDK 才會進行發送數據。以上參數支持自定義,可以通過修改相應參數值來達到控制事件上報的頻率。
(二)Debug 模式
在 Debug 模式下,對于任何操作,無論什么網絡條件,都會立即發送數據,并校驗返回的結果。
注意:Debug 模式是為方便開發者調試而設置的模式,該模式會逐條校驗數據并在校驗失敗時拋出異常,性能遠低于正常模式。線上環境使用 Debug 模式會嚴重影響性能并存在崩潰風險,產品上線前請務必替換掉/關閉 Debug 模式。
(三)手動觸發
用戶可以在任何時候,調用 「flush 接口」來嘗試發送本地數據。當數據發送失敗時,會繼續緩存在本地;發送成功后,事件數據會被刪除。當緩存數據量超過「最大緩存閾值」時,會刪除最舊的 100 條數據,然后再存入新的數據。
總結
本文對于神策數據官方移動端 SDK 的功能進行了簡明扼要的介紹,旨在讓大家對于 SDK 的功能有一個初步的了解。關于 SDK 的具體使用和實現原理等相關知識,會在后續的文章中逐步向大家介紹。
交流合作
本文著作權歸「神策數據開源社區」所有,商業轉載請聯系我們獲得授權;非商業轉載請注明出處,并附上神策數據開源社區服務號二維碼。
你還可以掃描二維碼,加入社區交流群,與大家一同討論。也歡迎關注我們的公眾號,最新內容盡在掌握!
?
?
▼▼▼
【更多精彩內容】
-
神策分析 Android SDK 之用戶路徑采集
-
深入淺出:移動端數據采集埋點 SDK
-
神策分析 iOS SDK 架構解析
-
神策分析 Android SDK 架構解析
·END·
神策數據開源社區服務號
匯聚數據采集菁英,推動技術交流與發展
?
點擊鏈接?神策數據開源社區,進入開源社區官網~
總結
以上是生活随笔為你收集整理的深入浅出:移动端(Android 和 iOS)数据采集埋点 SDK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抢鲜体验:十一大行业 demo 全新上线
- 下一篇: android 导入离线地图,Andro