分析收集到的生產數據,用以發現應用的使用趨勢、用戶行爲,並經過埋點、分析和真實用戶監控對應用進行改進和優化。安全
從概念來講,埋點與日誌並無區別,只是埋點的目的是將數據存儲在服務器,從而達到持久化,並將其用於分析,包括離線批處理任務或實時計算。服務器
部分(國外)經常使用iOS第三方統計庫:工具
分析引擎應當包含如下的重要功能:性能
肯定埋點方案,而後進行配置:測試
#import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #import <CoreLocation/CoreLocation.h> [@interface](https://my.oschina.net/u/996807) HPInstrumentation : NSObject +(void)logEvent:(NSString *)name param:(NSDictionary *)params;//1.記錄通常事件 +(void)startTimeForEvent:(NSString *)name params:(NSDictionary *)params; +(void)endTimeForEvent:(NSString *)name params:(NSDictionary *)params;//2.記錄計時事件 +(void)logViewControllerDidAppear:(UIViewController *)vc;//3.記錄用戶瀏覽過的視圖控制器 +(void)setLocation:(CLLocation *)location;//4.爲後續事件設置位置信息 +(void)setUserId:(NSString *)userId;//5.爲後續事件設置用戶ID,經常使用於記錄登錄後的行爲 +(void)logError:(NSString *)name message:(NSString *)message exception:(NSException *)e;//6.記錄錯誤的特殊事件 +(void)setMinimumTimeBetweenSessions:(NSTimeInterval *)interval;//7.計算會話次數的特殊處理,影響平常活躍用戶的計數。 [@end](https://my.oschina.net/u/567204)
可使用Aspects來設置經常使用跟蹤事件:優化
[UIViewController aspect_hookSelector:@selector(viewDidAppear:)//1.添加一個鉤子方法到類UIViewController的viewDidAppear方法上。 withOptions:AspectPositionAfter //2.鉤子方法必須在原始方法調用後生效。 usingBlock:^(id<AspectInfo> info, BOOL animated){//3.實現鉤子方法。參數是id<AspectInfo>,提供了調用塊的上下文對象,以及原始方法(此處是viewDidAppear:)須要的參數 NSDictionary *eventParams = @{@"ViewContrillerClass":[info.instance class]};//4.設置被記錄事件的參數 [HPInstrumentation logEvent:@"viewDidAppear" param:eventParams];//5.記錄日誌 }error:NULL];
涉及發佈服務器到生產,以及發佈應用到App Store。.net
分析使用埋點事件產生的數據來展現有利於實現目標規劃的洞見。 分析對發現趨勢和關鍵指標分佈很是有用。能夠用它來發現每一個用戶的平局會話時長或平均交易量。但不要將其用於跟蹤,例如,應用已經被安裝了多少次。一個特定的API能夠準確跟蹤這些統計項。日誌
真實用戶監控是監控應用以獲取和分析用戶的每一個事務的方法。他依賴於服務端或客戶端內用於監控的服務,這些服務能夠監控活動的組件、其功能、應用的響應性、整體的資源使用狀況和其餘各類參數。code
分析和真實用戶監控的巨大差別在於,分析只使用一部分數據(樣本)進行處理來提供高級趨勢預測。 各類各樣的產品提供對應用進行埋點和分析的功能,並將本身列爲分析工具而不是真實用戶監控的工具,由於它們只是樣本。視頻
真實用戶監控會記錄全部的事件,而不只是樣本,因此應將其用於監控關鍵事件。