閱讀1032 返回首頁    go 財經資訊


移動數據分析__iOS SDK手冊_SDK 手冊_-阿裏雲

Mobile Analytics iOS SDK開發指南


1. 前言

本文檔介紹了移動數據分析(Mobile Analytics) iOS SDK的使用方式。


Mobile Analytics iOS SDK是阿裏雲麵向移動開發者提供的iOS平台下的數據統計與監控服務。通過該SDK,開發者可以在自己的APP中便捷地進行數據埋點,監控日常的業務數據與性能數據,並通過阿裏雲控製台界麵觀察對應的數據報表展現。另外,用戶可以通過設定自定義的數據解析規則實現定製化的數據圖表展現。

您可以通過獲取alicloud-ios-demo工程源碼獲得移動數據分析服務的使用例程。


2. 安裝Mobile Analytics iOS SDK

2.1 link framework包

將下載的包加至Link Binary With Libraries,包括:

  1. AlicloudMobileAnalytics.framework
  2. AlicloudUtils.framework
  3. UT.framework
  4. UTDID.framework

加載係統必須依賴的包:

  1. libz.tbd
  2. libresolv.tbd
  3. CoreTelephony.framework
  4. SystemConfiguration.framework

特別說明:應用的targets->Build Settings->linking->Other Linker Flags,請加上-ObjC這個屬性。

2.2 引用頭文件

  1. #import <AlicloudMobileAnalitics/ALBBMAN.h>

3. 獲取Mobile Analytics服務

在您使用Mobile Analytics iOS SDK進行數據統計與監控前,您需要首先獲取Mobile Analytics服務,然後可以進行版本和渠道的配置。

  1. // 獲取MAN服務
  2. ALBBMANAnalytics *man = [ALBBMANAnalytics getInstance];
  3. // 打開調試日誌,線上版本建議關閉
  4. // [man turnOnDebug];
  5. // 初始化MAN
  6. [man initWithAppKey:testAppKey secretKey:testAppSecret];
  7. // appVersion默認從Info.list的CFBundleShortVersionString字段獲取,如果沒有指定,可在此調用setAppversion設定
  8. // 如果上述兩個地方都沒有設定,appVersion為"-"
  9. [man setAppVersion:@"2.3.1"];
  10. // 設置渠道(用以標記該app的分發渠道名稱),如果不關心可以不設置即不調用該接口,渠道設置將影響控製台【渠道分析】欄目的報表展現。
  11. [man setChannel:@"50"];

4. 業務數據統計

數據統計的準確性依賴被監控APP的常規生命軌跡,比如應用啟動次數依賴於用戶正常退出應用觸發的上報策略。

4.1 登錄/注冊會員

4.1.1 登錄會員

接口:

  1. - (void)updateUserAccount:(NSString *)pNick userid:(NSString *)pUserId;

功能: 獲取登錄會員,然後會給每條日誌添加登錄會員字段

是否必須調用: 否

調用時機: 登錄時調用

備注: 阿裏雲 平台上的登錄會員 UV 指標依賴該接口

4.1.2 注冊會員

接口:

  1. - (void)userRegister:(NSString *)pUsernick;

功能: 產生一條注冊會員事件日誌

是否必須調用: 否

調用時機: 注冊時調用

備注: 阿裏雲 平台上注冊會員指標依賴該接口

4.1.3 代碼示例

  1. ALBBMANAnalytics *man = [ALBBMANAnalytics getInstance];
  2. [man userRegister:@"userNick"];
  3. [man updateUserAccount:@"userNick" userid:@"userId"];

完成上述埋點後,您就可以在阿裏雲控製台看到相應統計信息,例如下圖顯示實時統計裏的登錄會員和新注冊會員。

user stastics

4.2 頁麵埋點

使用ALBBMANPageHitHelper可以進行ViewController級別的頁麵埋點,ALBBMANPageHitHelper為頁麵埋點輔助類,可以自動完成頁麵名稱(默認獲取ViewController名稱並去除後綴Controller)、來源頁麵和頁麵停留時間的統計,如需使用更為靈活的頁麵埋點方案,可使用ALBBMANPageHitBuilder頁麵打點基礎類進行頁麵埋點,詳情見4.3節。

【注意】:如果App中沒有進行頁麵埋點,活躍用戶參數不能正常統計。

4.2.1 頁麵進入

接口:

  1. - (void)pageAppear:(UIViewController *)pViewController;

功能: 記錄頁麵進入時的一些狀態信息,但不發送日誌,和 pageDisappear 配合使用

入參: UIViewController 或者其子類指針

是否必須調用; 需要對頁麵埋點時調用

調用時機: viewDidAppear

備注: 必須和 pageDisappear 搭配使用

4.2.2 頁麵離開

接口:

  1. - (void)pageDisAppear:(UIViewController *)pViewController;

功能: 頁麵離開發送頁麵事件日誌,和 pageAppear 配合使用

入參: UIViewController 或者其子類指針

是否必須調用: 當調用了 pageAppear 後,必須調用 pageDisappear

調用時機: viewDidDisAppear

備注: 必須和 pageAppear 搭配使用

4.2.3 設置頁麵擴展參數

接口:

  1. - (void)updatePageProperties:(UIViewController *)pViewController properties:(NSDictionary *)pProperties;

功能:設置頁麵擴展參數

是否必須調用:否

調用時機:調用pageDisAppear之前

4.2.4 代碼示例

  1. // 進入頁麵
  2. [[ALBBMANPageHitHelper getInstance] pageAppear:self];
  3. // 設置頁麵事件擴展參數
  4. NSDictionary *properties = [NSDictionary dictionaryWithObject:@"pageValue" forKey:@"pageKey"];
  5. [[ALBBMANPageHitHelper getInstance] updatePageProperties:self properties:properties];
  6. // 離開頁麵
  7. [[ALBBMANPageHitHelper getInstance] pageDisAppear:self];

4.3 頁麵事件

ALBBMANPageHitBuilder 類也是用來產生頁麵事件日誌的,雖然 4.2 節中可以通過 pageAppear 和 pageDisAppear 來進行頁麵埋點,但是它針對的隻是 UIViewController 級別的頁麵,並不能滿足一些場景的頁麵事件,例如 UIView,如果用戶需要將一個UIView 當做一個頁麵,那麼就可以通過 ALBBMANPageHitBuilder 來進行頁麵事件的埋點,即用戶自己采集頁麵事件相關的信息(如頁麵的 refer、頁麵停留時間等),通過 ALBBMANPageBuilder 構造出一條頁麵事件的日誌 map,最後通過某個 ALBBMANTracker 埋點實例的 send API發送上傳。

ALBBMANTracker是一個用於對埋點數據進行上報的工具,下文提到的ALBBMANPageHitBuilder等事件類都是通過ALBBMANTracker進行事件件上報的。其中ALBBMANTracker的獲取如下所示:

  1. // 獲取默認ALBBMANTracker實例
  2. ALBBMANTracker *tracker = [[ALBBMANAnalytics getInstance] getDefaultTracker];
  3. // 獲取指定id的ALBBMANTracker實例,返回對應id的實例;如果不存在,則首次創建
  4. ALBBMANTracker *tracker = [[ALBBMANAnalytics getInstance] getTracker:@"trackID"];

埋點數據上報都是通過ALBBMANTracker進行,我們可以設定/刪除上報數據的全局字段,全局字段設定後在所有的上報日誌中都可以查看,如下所示:

  1. ALBBMANTracker *tracker = [[ALBBMANAnalytics getInstance] getDefaultTracker];
  2. // 設定全局字段
  3. [tracker setGlobalProperty:@"globalKey1" value:@"globalValue1"];
  4. // 刪除全局字段
  5. [tracker removeGlobalProperty:@"globalKey1"];

4.3.1 設置頁麵名稱

接口:

  1. - (void)setPageName:(NSString *)pPageName;

功能: 設置頁麵名稱

入參: 頁麵名稱,pPageName不能為空

是否必須調用: 是,在已經創建了 ALBBMANPageHitBuilder 實例後,必須調用該方法

調用時機: 創建 ALBBMANPageHitBuilder 後,必須調用 setPageName,否則調用 build 後返回為 nil

備注: 頁麵名稱是頁麵事件的基礎,必須設置

4.3.2 設置頁麵 refer

接口:

  1. - (void)setReferPage:(NSString *)pReferPageName;

功能: 設置頁麵的 refer,即當前頁麵的來源頁麵

入參: refer 頁麵名稱,refer 可以為空

是否必須調用: 否

4.3.3 設置頁麵停留時間

接口:

  1. - (void)setDurationOnPage:(long long)durationTimeOnPage;

功能: 記錄頁麵從展現到頁麵離開的停留時間

入參: 頁麵停留時間

是否必須調用 否

調用時機: 需要記錄當前頁麵停留時間

4.3.4 設置頁麵事件擴展參數

接口:

  1. - (void)setProperty:(NSString *)pKey value:(NSString *)pValue;

功能:給單條日誌添加一個擴展參數

入參:key 和 value 都不能為 nil,其中 key 不能為PAGE/EVENTID/ARG1/ARG2/ARG3/ARGS,否則 build 返回 nil

是否必須調用:否

調用時機:需要給ALBBMANPageHitBuilder實例添加擴展參數時

4.3.5 組裝單條日誌 map

接口:

  1. - (NSDictionary *)build;

功能: 將塞入的參數組成 map 返回

入參: 無

是否必須調用: 否

調用時機: 創建 ALBBMANPageHitBuilder 或者 ALBBMANCustomHitBuilder 實例,塞入一些業務字段後,調用 build 組裝業務字段生成日誌 map,通過某個 ALBBMANTracker 埋點實例 send 接口發送

備注: build 函數返回的日誌 map,必須通過ALBBMANTracker埋點上報工具的send接口上傳數據完成打點

4.3.6 代碼示例

  1. ALBBMANPageHitBuilder *pageHitBuilder = [[ALBBMANPageHitBuilder alloc] init];
  2. // 設置頁麵refer
  3. [pageHitBuilder setReferPage:@"pageRefer"];
  4. // 設置頁麵名稱
  5. [pageHitBuilder setPageName:@"pageName"];
  6. // 設置頁麵停留時間
  7. [pageHitBuilder setDurationOnPage:100];
  8. // 設置頁麵事件擴展參數
  9. [pageHitBuilder setProperty:@"pagePropertyKey1" value:@"pagePropertyValue1"];
  10. [pageHitBuilder setProperty:@"pagePropertyKey2" value:@"pagePropertyValue2"];
  11. ALBBMANTracker *tracker = [[ALBBMANAnalytics getInstance] getDefaultTracker];
  12. // 組裝日誌並發送
  13. [tracker send:[pageHitBuilder build]];

上述的頁麵埋點與頁麵事件將影響控製台【頁麵路徑分析】、【關鍵漏鬥】、【控件點擊】、【頁麵留存】等指標的報表展現,頁麵路徑如下圖所示。

page path


5. 性能數據統計

APP性能直接決定了用戶體驗效果,同時也一直是業務開發人員容易忽視的問題。Mobile Analytics提供了豐富的性能監控API方便用戶全方位監控自己的APP運行狀態。

5.1 網絡性能統計

Mobile Analytics針對傳統APP的網絡性能統計進行了封裝,方便用戶“一鍵埋點”,獲取網絡層麵的關鍵技術指標,這些指標包括:

  • 請求的整體響應時間
  • 網絡異常統計

5.1.1 接口及統計

從客戶端角度來看,一個正常的網絡請求分為以下幾個階段:tcp建連、請求發送、開始接收響應數據、接受數據完成。分階段性能指標有:TCP建連時間、首字節時間、整體的響應時間。那麼針對這幾個階段,我們分別提供有對應的API接口。

  1. - (instancetype)initWithHost:(NSString *)host method:(NSString *)method;
  2. /*
  3. * 用戶可以自行設置屬性,但是不要包含“/Host/Method/EVENTID/PAGE/ARG1/ARG2/ARG3/ARGS/COMPRESS”
  4. */
  5. - (void)setProperty:(NSString *)pKey value:(NSString *)pValue;
  6. - (void)setproperties:(NSMutableDictionary *)properties;
  7. /*
  8. * 網絡請求打點開始
  9. */
  10. - (void)requestStart;
  11. /*
  12. * 打點標記建連成功
  13. */
  14. - (void)connectFinished;
  15. /*
  16. * 打點標記首字節到達
  17. */
  18. - (void)requestFirstBytes;
  19. /*
  20. * 打點正常結束
  21. */
  22. - (void)requestEndWithBytes:(long)loadBytes;
  23. /*
  24. * 出錯的時候上報
  25. */
  26. - (void)requestEndWithError:(ALBBMANNetworkError *)error;
  27. /*
  28. * 整合打點日誌
  29. */
  30. - (NSDictionary *)build;

初始化ALBBMANNetworkHitBuilder的時候Host/Method是必須要的,如果傳入Nil,數據將無法上報。下麵是以NSURLConnection的實例:

  1. #import <AlicloudMobileAnalitics/ALBBMAN.h>
  2. /**
  3. * @brief
  4. 同步請求網絡性能埋點
  5. */
  6. - (void)syncNetworkHit {
  7. NSURL *URL = [NSURL URLWithString:@"https://www.taobao.com/"];
  8. NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:URL
  9. cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
  10. timeoutInterval:30];
  11. // 由於NSURLConnection同步接口,封裝了TCP連接、首字節的過程,所以同步接口上麵我們統計不到TCP建連時間跟首字節時間
  12. ALBBMANNetworkHitBuilder *bulider = [[ALBBMANNetworkHitBuilder alloc] initWithHost:URL.host method:[request HTTPMethod]];
  13. // 開始請求打點
  14. [bulider requestStart];
  15. NSHTTPURLResponse *response;
  16. NSError *error;
  17. NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
  18. if (error) {
  19. // 自定義網絡異常,見文檔5.1.2
  20. ALBBMANNetworkError *networkError = [[ALBBMANNetworkError alloc] initWithErrorCode:1001];
  21. // 自定義網絡異常附加信息
  22. [networkError setProperty:@"IP" value:@"1.2.3.4"];
  23. [bulider requestEndWithError:networkError];
  24. }
  25. if (response.statusCode >= 400 && response.statusCode < 600) {
  26. // 默認網絡異常,見文檔5.1.2
  27. ALBBMANNetworkError *networkError;
  28. if (response.statusCode < 500) {
  29. networkError = [ALBBMANNetworkError ErrorWithHttpException4];
  30. } else {
  31. networkError = [ALBBMANNetworkError ErrorWithHttpException5];
  32. }
  33. // 默認網絡異常附加信息
  34. [networkError setProperty:@"IP" value:@"1.2.3.4"];
  35. [bulider requestEndWithError:networkError];
  36. }
  37. else {
  38. //結束請求打點,bytes是下載的數據量大小
  39. [bulider requestEndWithBytes:data.length];
  40. }
  41. // 組裝日誌並發送
  42. ALBBMANTracker *tracker = [[ALBBMANAnalytics getInstance] getDefaultTracker];
  43. [tracker send:[bulider build]];
  44. }
  45. // 異步接口,相對同步接口的情況下,可以多統計到首字節,其他跟同步接口一樣
  46. - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
  47. // 首字節響應埋點
  48. [_bulider requestFirstBytes];
  49. }
  50. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
  51. [_mutableData appendData:data];
  52. }
  53. - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
  54. // 結束請求打點
  55. [_bulider requestEndWithBytes:_mutableData.length];
  56. // 組裝日誌並發送
  57. ALBBMANTracker *tracker = [[ALBBMANAnalytics getInstance] getDefaultTracker];
  58. [tracker send:[_bulider build]];
  59. }
  60. - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
  61. ALBBMANNetworkError *networkError = [[ALBBMANNetworkError alloc] initWithErrorCode:[NSString stringWithFormat:@"%ld", (long)error.code]];
  62. [_bulider requestEndWithError:networkError];
  63. // 組裝日誌並發送
  64. ALBBMANTracker *tracker = [[ALBBMANAnalytics getInstance] getDefaultTracker];
  65. [tracker send:[_bulider build]];
  66. }
  67. //由於NSURLConnection封裝性,已然看不到TCP連接過程,所以統計不到建連
  68. //時間,如果是自實現的Socket的情況下,可以額外在TCP連接成功的時刻調用如下代碼,統計tcp建連時間
  69. [builder connectFinished];

注意,目前Method字段的value隻支持POST和GET(不區分大小寫)。

網絡性能的地域分析如下圖所示,

network region

5.1.2 異常統計

網絡請求無法避免異常情況,在埋點時,如果拋出異常打斷了整個網絡請求的流程,那麼您是需要對此做額外處理的,否則將導致打點數據紊亂。處理的辦法也很簡便,您隻需要在抓獲異常以後選擇網絡默認異常類型和自定義網絡異常類型的任意一種方式來標記這次請求發生了異常:

默認網絡異常類型

異常類型 對應接口 說明
400<=HttpResponseCode<500 ErrorWithHttpException4 Http狀態碼4XX的錯誤
500<=HttpResponseCode ErrorWithHttpException5 Http狀態碼5XX的錯誤
IO錯誤 ErrorWithIOInterrupted 請求的IO錯誤
Timeout錯誤 ErrorWithSocketTimeout 連接/請求超時的錯誤

請參考以上事例。

使用說明:

  1. ALBBMANNetworkError *networkError = [ALBBMANNetworkError ErrorWithHttpException4];
  2. // 網絡異常附加信息
  3. [networkError setProperty:@"IP" value:@"1.2.3.4"];
  4. [bulider requestEndWithError:networkError];

自定義網絡異常類型

如果默認網絡異常類型無法滿足您的需求,您可以自定義網絡異常類型,但是網絡異常類型編碼要在1001 <= YouErrorCode <= 1010範圍內,如果不進行前端配置將以錯誤編碼(10xx)的形式進行展示,如果在前端配置錯誤編碼對應的信息,就會展示您所配置的信息。

異常類型 對應接口 說明
自定義錯誤 initWithErrorCode 默認網絡錯誤不可描述時,可自定義

使用說明:

  1. ALBBMANNetworkError *networkError = [[ALBBMANNetworkError alloc] initWithErrorCode:1001];
  2. // 自定義網絡異常附加信息
  3. [networkError setProperty:@"IP" value:@"1.2.3.4"];
  4. [bulider requestEndWithError:networkError];

5.2 自定義性能事件埋點

自定義性能事件埋點可滿足用戶對定製化的性能事件進行實時監控的需求(比如,Cache的讀寫耗時,私有網絡協議的RPC耗時,客戶端算法的耗時等)。在進行正確的客戶端埋點後,您可通過阿裏雲控製台進行數據的多維度實時監控。

自定義性能事件可包含以下幾部分內容:

1.事件名稱(event_label),隻能為字母、數字和下劃線組成【必選】

2.事件從開始到完成消耗的時長【必選】

3.事件所攜帶的屬性【可選】

【注意】 自定義性能事件用於監控用戶事件的時間開銷,請參考下述代碼實例正確傳遞參數。

例子:

  1. ALBBMANCustomPerformanceHitBuilder *customPerfBuilder = [[ALBBMANCustomPerformanceHitBuilder alloc] init:@"HomeActivityInit"];
  2. // 記錄事件時間方式1,自定義性能事件開始
  3. [customPerfBuilder hitStart];
  4. ...
  5. // 自定義性能事件結束
  6. [customPerfBuilder hitEnd];
  7. // 設置定義性能事件持續時間,方式2
  8. // [customPerfBuilder setDurationIntervalInMillis:1234];
  9. // 設置擴展參數
  10. [customPerfBuilder setProperty:@"Page" value:@"Home"];
  11. // 組裝日誌並發送
  12. ALBBMANTracker *traker = [[ALBBMANAnalytics getInstance] getDefaultTracker];
  13. [traker send:[customPerfBuilder build]];

完成上述埋點後您可以在控製台【性能分析】中的【自定義性能事件】子頁麵進行自定義性能事件的實時監控,如下圖所示。custom stastics

5.3 crashHandler

Mobile Analytics 初始化的時候默認會打開 crashHandler,即自動捕獲應用 crash,然後發送 crash 日誌事件。

【注意】如果您的程序中設置了crash捕獲,您的crash捕獲設置會和Mobile Analytics中的crashHandler相互覆蓋,覆蓋結果因兩者運行的先後順序的不同而異。

5.3.1 關閉 crashHandler

接口:

  1. - (void)turnOffCrashHandler;

功能: 關閉 Mobile Analytics 的自動捕獲應用 crash

是否必須調用: 否

調用時機: 初始化SDK時調用

5.3.2 設置 crash 回調方法

接口:

  1. - (void)setCrashCaughtListener:(id<ALBBMANICrashCaughtListener>)aListener;

功能: 設置 crash 發生時的回調函數,使得 MAN 發送的 crash 日誌可以攜帶用戶自定義的擴展信息參數

入參: 實現了 ALBBMANICrashCaughtListener protocol 的類實例,protocol 中需要實現的函數為

  1. - (NSDictionary *)onCrashCaught:(NSString *)pCrashReason CallStack:(NSString *)callStack

該函數在應用發生 crash 時由 Mobile Analytics 來回調,即 Mobile Analytics 會將獲取的 crash 原因以及 crash 時的堆棧信息傳給該回調函數,回調函數經過處理後返回一個字典,Mobile Analytics 得到該字典後,會將該字典裏麵的 kv 對放到 crash 事件日誌中。

是否必須調用: 否

調用時機: 初始化SDK時調用

5.3.3 代碼示例

調用實例:

創建ALBBMANICrashCaughtListener實例:

  1. @implementation TestCrashCaught
  2. - (NSDictionary *)onCrashCaught:(NSString *)pCrashReason CallStack:(NSString *)callStack {
  3. NSMutableDictionary *ltmpDict = [NSMutableDictionary dictionary];
  4. [ltmpDict setObject:callStack forKey:pCrashReason];
  5. return ltmpDict;
  6. }

初始化crash handler:

  1. ALBBMANAnalytics *man = [ALBBMANAnalytics getInstance];
  2. TestCrashCaught *ltestCrashCaught = [[TestCrashCaught alloc] init];
  3. [man setCrashCaughtListener:ltestCrashCaught];

禁止crash handler:

  1. ALBBMANAnalytics *man = [ALBBMANAnalytics getInstance];
  2. [man turnOffCrashHandler];

使用了crash采集功能之後,就可以在前端頁麵看到實時的crash信息,如下圖所示,可以實時查看Crash用戶占比、Crash率、Crash次數和Crash用戶數。

crash stastics


6. 自定義事件

自定義事件埋點可用於滿足用戶的定製化需求。

6.1 設置自定義事件的標簽

接口:

  1. - (void)setEventLabel:(NSString *)pEventId;

功能: 區分不同自定義事件的標簽,同一種自定義事件的 pEventId 相同

入參: 自定義事件標簽,相當於自定義事件的業務 ID,不能為空

是否必須調用: 是

調用時機: 創建 ALBBMANCustomHitBuilder 後,必須調用 setEventLabel,否則調用 build 後返回為 nil

備注: 對於自定義事件,必須設置標簽,pEventId需要事先在wdm上申請

6.2 設置自定義事件的頁麵名稱

接口:

  1. - (void)setEventPage:(NSString *)pPageName;

功能: 設置該自定義事件發生在哪個頁麵

入參: 自定義事件的頁麵名稱,可以為空,這種情況日誌中默認頁麵名稱為 “UT”

是否必須調用: 否

調用時機: 需要明確該自定義事件發生時的頁麵,不調用情況下默認為 “UT”

6.3 設置自定義事件停留時間

接口:

  1. - (void)setDurationOnEvent:(long long)durationOnEvent;

功能: 設置自定義事件持續時間,跟 ALBBMANPageHitBuilder 中的頁麵停留時間類似

入參: 自定義事件停留時間

是否必須調用: 否

調用時機: 需要記錄自定義事件的停留時間

6.4 設置自定義事件擴展參數

接口:

  1. - (void)setProperty:(NSString *)pKey value:(NSString *)pValue;

功能:給單條日誌添加一個擴展參數

入參:key 和 value 都不能為 nil,其中 key 不能為PAGE/EVENTID/ARG1/ARG2/ARG3/ARGS,否則 build 返回 nil

是否必須調用:否

調用時機:需要給ALBBMANCustomHitBuilder實例添加擴展參數時

6.5 代碼示例

  1. ALBBMANCustomHitBuilder *customBuilder = [[ALBBMANCustomHitBuilder alloc] init];
  2. // 設置自定義事件標簽
  3. [customBuilder setEventLabel:@"test_event_label"];
  4. // 設置自定義事件頁麵名稱
  5. [customBuilder setEventPage:@"test_Page"];
  6. // 設置自定義事件持續時間
  7. [customBuilder setDurationOnEvent:12345];
  8. // 設置自定義事件擴展參數
  9. [customBuilder setProperty:@"ckey0" value:@"value0"];
  10. [customBuilder setProperty:@"ckey1" value:@"value1"];
  11. [customBuilder setProperty:@"ckey2" value:@"value2"];
  12. ALBBMANTracker *traker = [[ALBBMANAnalytics getInstance] getDefaultTracker];
  13. // 組裝日誌並發送
  14. NSDictionary *dic = [customBuilder build];
  15. [traker send:dic];

自定義事件擴展參數在控製台【自定義事件】-【詳細數據】-【參數分析】中可查看,但查看之前請在【管理設置】-【自定義事件管理】中添加要在控製台顯示的事件ID。 如果您需要對自定義事件進行實時監控,請參考【5.3 自定義性能事件】章節。

7. 如何實時驗證數據是否正常上報

您當前可以通過以下兩種方式進行驗證:

  • 打開移動數據分析log,查看是否會出現如***** UTMCEngine <info> ***** UTMCUploader:upload :: upload response:{"t":1464532326870,"ret":"","success":"success"}的日誌;

    注意:SDK的日誌上報會有緩存和聚合,因此上報時機會比API調用時機滯後一些,可耐心等待30-60s或將應用切到後台查看。

  • 登錄控製台查看活躍用戶等實時報表;

    注意:活躍用戶的統計依賴頁麵埋點,移動數據分析後台會將零星的頁麵埋點處理為噪點,進行過濾,因此請確保您有足量的頁麵埋點事件上報(>5),另外控製台的實時報表大概會有5min的延遲。

最後更新:2016-12-20 21:18:46

  上一篇:go 指標說明__快速開始_移動數據分析-阿裏雲
  下一篇:go 功能使用常見問題__幫助手冊_移動數據分析-阿裏雲