iOS全埋點解決方案 版權信息
- ISBN:9787111653622
- 條形碼:9787111653622 ; 978-7-111-65362-2
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
iOS全埋點解決方案 本書特色
本書從實戰角度全面講解了iOS全埋點技術和解決方案,為基于iOS系統的各種數據采集場景提供詳盡的指導。
本書由神策數據官方出品,總結了他們過去為1000余家企業客戶提供服務的實踐經驗。執筆人是神策數據合肥研發中心負責人,在Android & iOS等領域有10年的研發經驗,對各種數據采集技術和解決方案都有深入研究,開發和維護著國內*個商用的開源 Android & iOS 數據埋點 SDK。
全書一共14章:
第1~2章介紹了數據采集SDK框架的搭建,以及應用程序的退出和啟動,這是實現iOS全埋點的基礎;
第3~6章依次詳細講解了頁面瀏覽事件、控件點擊事件、UITableView和UICollection View點擊事件、手勢采集等場景的全埋點技術和解決方案;
第7~14章分別講解了用戶標識、時間相關、數據存儲、數據同步、采集崩潰、App 與 H5 打通、App Extension React Native等場景的全埋點技術和解決方案。
所有的解決方案都提供了完整的項目源代碼,具有極強的實操性。
iOS全埋點解決方案 內容簡介
大部分互聯網行業的從業人員可能都比較熟悉埋點這個概念,即通過嵌入方或者第三方 SDK,采集用戶在產品上的操作,也就是采集用戶的行為數據。埋點一般可以分為客戶端埋點和后端埋點。客戶端埋點由于更加貼近業務,更加直觀,因此成為目前市面上的主流數據采集手段。其中,Android與iOS端的埋點更是得到了廣泛應用。對于iOS端的埋點,目前市面上主要流行代碼埋點與全埋點兩種技術方案。其中,代碼埋點即顯式地調用數據采集SDK提供的接口來采集數據,在采集能力上有比較大的優勢,但是需要做額外的開發,易用性較為欠缺;全埋點則不需要額外寫代碼,使用方便快捷,但是在采集能力上有所欠缺,并且存在比較多的兼容性問題。兩種方案說不上孰優孰劣,各自有適用的應用場景。根據服務客戶所積累的很好實踐,我們推崇兩種方案綜合使用。灼洲以及他所負責的SDK團隊,在公司內部一直負責客戶端與服務端的數據采集SDK的研發工作,不僅為客戶提供了完整的數據采集方案,而且解決了客戶在數據采集過程中碰到的各種疑難問題。在整個研發與服務客戶的過程中,灼洲團隊積累了豐富的經驗,并且通過開源數據采集SDK、持續舉辦各種技術沙龍,為整個數據采集的技術社區做出了一些貢獻。在這個過程中,團隊也希望能夠通過這本書的出版,給讀者講明白“iOS全埋點”這一之前看起來有點像“黑科技”的技術方案的實現細節,以及各種實現方式的優缺點。同時,也希望讀者在讀了本書之后,能夠對數據采集有更多的認識,能夠結合自己的實際業務場景,設計出更好的數據采集方案。
iOS全埋點解決方案 目錄
推薦序
前言
第1章 數據采集SDK1
1.1 數據采集SDK簡介1
1.2 搭建SDK框架3
1.2.1 新建Cocoa Touch Framework3
1.2.2 新建Workspace4
1.2.3 新建Demo工程7
1.2.4 添加依賴關系10
1.2.5 編寫埋點SDK10
1.2.6 Demo集成埋點SDK18
第2章 應用程序退出和啟動20
2.1 全埋點簡介20
2.2 應用程序退出21
2.2.1 應用程序狀態21
2.2.2 實現步驟22
2.3 應用程序啟動24
2.3.1 實現步驟24
2.3.2 優化26
2.4 被動啟動28
2.4.1 Background Modes29
2.4.2 實現步驟30
2.4.3 優化33
第3章 頁面瀏覽事件36
3.1 UIViewController 生命周期36
3.2 Method Swizzling37
3.2.1 Method Swizzling基礎37
3.2.2 實現Method Swizzling的相關函數39
3.2.3 實現Method Swizzling40
3.3 實現頁面瀏覽事件全埋點42
3.3.1 實現步驟42
3.3.2 優化45
3.3.3 擴展48
3.3.4 遺留問題52
第4章 控件點擊事件53
4.1 Target-Action53
4.2 方案一54
4.2.1 實現步驟55
4.2.2 優化$AppClick事件57
4.2.3 支持更多控件65
4.3 方案二70
4.3.1 實現步驟70
4.3.2 支持更多控件75
4.4 方案總結78
第5章 UITableView和UICollection-View點擊事件80
5.1 支持UITableView控件80
5.1.1 方案一:方法交換80
5.1.2 方案二:動態子類86
5.1.3 方案三:消息轉發93
5.1.4 三種方案的總結102
5.1.5 優化103
5.2 支持UICollectionView控件107
第6章 手勢采集112
6.1 手勢識別器112
6.2 手勢全埋點114
6.2.1 UITapGestureRecognizer全埋點114
6.2.2 UILongPressGestureRecognizer全埋點118
第7章 用戶標識121
7.1 登錄之前122
7.1.1 UDID122
7.1.2 UUID125
7.1.3 MAC地址126
7.1.4 IDFA128
7.1.5 IDFV129
7.1.6 IMEI130
7.1.7 *佳實踐130
7.2 登錄之后140
第8章 時間相關144
8.1 事件發生的時間戳145
8.2 統計事件持續時長147
8.2.1 實現步驟147
8.2.2 事件的暫停和恢復152
8.2.3 后臺狀態下的事件時長155
8.3 全埋點事件時長158
8.3.1 $AppEnd事件時長158
8.3.2 $AppViewScreen 事件時長160
第9章 數據存儲162
9.1 數據存儲策略162
9.1.1 沙盒163
9.1.2 數據緩存165
9.2 文件緩存166
9.2.1 實現步驟166
9.2.2 優化174
9.2.3 總結179
9.3 數據庫緩存179
9.3.1 實現步驟179
9.3.2 優化190
9.3.3 總結197
第10章 數據同步198
10.1 同步數據198
10.1.1 Foundation簡介198
10.1.2 同步數據202
10.2 數據同步策略212
10.2.1 基本原則212
10.2.2 策略一214
10.2.3 策略二215
10.2.4 策略三220
第11章 采集崩潰223
11.1 NSException異常223
11.1.1 捕獲NSException 異常224
11.1.2 傳遞UncaughtException-Handler227
11.2 捕獲信號229
11.2.1 Mach 異常和Unix 信號230
11.2.2 捕獲Unix信號異常231
11.3 采集應用程序異常時的$AppEnd事件235
第12章 App與H5打通238
12.1 App與H5打通原因238
12.2 方案一:攔截請求239
12.2.1 修改UserAgent239
12.2.2 是否攔截243
12.2.3 二次加工H5事件244
12.2.4 攔截246
12.2.5 測試驗證247
12.3 方案二:JavaScript與WebView相互調用255
第13章 App Extension259
13.1 App Extension介紹259
13.1.1 App Extension類型259
13.1.2 App Extension 生命周期261
13.1.3 App Extension通信261
13.1.4 App Extension示例262
13.2 App Extension埋點270
第14章 React Native全埋點283
14.1 React Native 簡介283
14.1.1 創建項目283
14.1.2 基礎控件286
14.2 React Native全埋點293
14.2.1 事件響應293
14.2.2 $AppClick 事件295
展開全部
iOS全埋點解決方案 作者簡介
王灼洲
資深移動開發技術專家,目前就職于神策網絡科技(北京)有限公司,擔任合肥研發中心負責人,是公司最早的核心骨干。
有10年的Android & iOS開發經驗,是國內第一批Android研發工程師。對基于Android和iOS系統的各種客戶端和服務端的數據采集技術和解決方案都有深入研究,開發和維護著國內第一個商用的開源 Android & iOS 數據埋點 SDK。
著有《Android全埋點解決方案》一書,在行業里引起了巨大的反響。