文章出處

1.使用自定義事件

使用自定義事件功能請先在網站應用管理后臺(設置->編輯自定義事件)中添加相應的自定義事件后,服務器才會對相應的自定義事件請求進行處理。這里我們將提供幾個簡單而通用的接口:

1.1. 事件數量統計

  • 在您希望跟蹤的代碼部分,調用如下方法:

    [MobClick event:(NSString *)eventId];
    
    

    eventId為當前統計的事件ID。

    示例:統計微博應用中"轉發"事件發生的次數,那么在轉發的函數里調用

    [MobClick event:@"Forward"];
    
    
    • 考慮事件在一個屬性上的取值,可以調用如下方法:
    [MobClick event:(NSString *)eventId attributes:(NSDictionary *)attributes];
    
    

    attributes為當前事件的屬性和取值(鍵值對)。

    示例:統計電商應用中“購買”事件發生的次數,以及購買的商品類型及數量,那么在購買的函數里調用:

    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
                       @"book", @"type", @"3", @"quantity", nil];
    [MobClick event:@"purchase" attributes:dict];
    
    
  • 有時,只需考慮事件在一個屬性上的取值,可以調用如下方法:

    [MobClick event:(NSString *)eventId label:(NSString *)label];
    
    

    label為當前事件的取值。

    示例: 統計游戲中“死亡”事件發生的關卡數,那么可以在死亡的函數里調用

    [MobClick event:@"player_dead" label:@"level"];
    
    

1.2. 事件時長統計

有的事件是持續發生的,需要記錄其持續的時間,這里提供了兩種解決方法。

在事件開始和結束時調用[MobClick beginEvent:][MobClick endEvent:]兩個函數

示例: 跟蹤播放音樂事件發生的總時間,那么在音樂播放開始時調用:

[MobClick beginEvent:@"music_play"];

在音樂播放結束時調用:

[MobClick endEvent:@"music_play"];

  • 跟蹤時長的事件包含多個屬性
[MobClick beginEvent:(NSString *)eventId primarykey:(NSString *)keyName attributes:(NSDictionary *)attributes];

[MobClick endEvent:(NSString *)eventId primarykey:(NSString *)keyName];

primarykey這個參數用于和eventId一起標示一個唯一事件,并不會被統計;

對于同一個事件在beginEventendEvent 中要傳遞相同的eventId 和 primarykey

(為什么要增加primarykey,請看時長統計常見錯誤案例)

示例: 跟蹤每種類型的音樂播放了多久,那么在音樂播放開始時調用

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
                      @"popular", @"type", @"JJLin", @"artist",@"registered",@"User_status", nil];
[MobClick beginEvent:@"music" primarykey:@"m7" attributes:dict];

在音樂播放結束時調用:

[MobClick endEvent:@"music" primarykey:@"m7"];

  • 自己計算并上傳event時長,在您想跟蹤時長的代碼部分,調用如下方法

在您想跟蹤時長的代碼部分,調用如下方法(單位為毫秒)

[MobClick event:(NSString *)eventId durations:(int)millisecond];
[MobClick event:(NSString *)eventId label:(NSString *)label durations:(int)millisecond];
[MobClick event:(NSString *)eventId attributes:(NSDictionary *)attributes durations:(int)millisecond];

時長是友盟統計的一個新功能,使用過程中可能會出現一些常見的錯誤,開發者應該盡量的避免。

注意 

  1. event_id 和 tag 不能使用特殊字符,且長度不能超過128個字節;map中的keyvalue 都不能使用特殊字符,key 不能超過128個字節,value 不能超過256個字節
  2. id, ts, du是保留字段,不能作為eventIdkey的名稱。
  3. 每個應用至多添加500個自定義事件,每個event 的 key不能超過10個,每個key的取值不能超過1000個(不允許通過key-value結構來統計類似搜索關鍵詞,網頁鏈接等隨機生成的字符串信息)。 如有任何問題,請聯系客服qq: 800083942。

2.使用分發渠道分析

您選擇多個分發渠道時,例如某Cydia源,或某網站,可以為不同渠道進行分發渠道的設定,分別打包成不同的渠道包,以便統計終端用戶的程序安裝渠道。

注意:

每臺設備僅記錄首次安裝激活的渠道,在其他渠道再次安裝不會重復計量。 所以在測試不同的渠道的時候,請使用不同的設備來分別測試。

示例: 在91和tongbu發布:

- [MobClick startWithAppkey:@"xxxxxxxxxxxxxxx" reportPolicy:REALTIME channelId:@"91store"];

- [MobClick startWithAppkey:@"xxxxxxxxxxxxxxx" reportPolicy:REALTIME channelId:@"tongbu"];

3.使用在線配置功能

這個功能目前可以幫您在網站上動態配置兩種類型的參數:

  • 自定義key-value型的鍵值對

  • 數據發送策略

示例: 動態修改應用的歡迎語,修改應用中開關選項的"on"或"off",以及類似游戲中虛擬物品的價格。

您需要在

[MobClick startWithAppkey:@"xxxxxxxxxxxxxxx"];

之后添加

[MobClick updateOnlineConfig];

這句代碼從服務器獲取在線參數,并緩存本地。 當在項目里需要獲取某個具體參數時調用

[MobClick getConfigParams:@"xxxx"];

xxxx為友盟服務器上事先設置好的key。 如果你想獲取所有的在線參數,請使用.

[MobClick getConfigParams];

這兩個方法都是從[NSUserDefaults standardUserDefaults]獲取緩存的值, 所以上面的[MobClick updateOnlineConfig]方法要先在app啟動時被調用。

注意: 
updateOnlineConfig 在app啟動時 application:didFinishLaunchingWithOptions: 執行,前后臺切換是不會執行的,如果需要在切換時更新在線參數,可以在相關回調里執行updateOnlineConfig 。

如果您需要知道在線參數何時獲取完畢,可以監聽 UMOnlineConfigDidFinishedNotification ,當這個通知發生時,最新的在線參數會傳遞給notification.userInfo

如果此時未聯網或在線參數獲取失敗,這個通知是不會被發出的。

您可以用類似下面的代碼來完成這個過程:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onlineConfigCallBack:) name:UMOnlineConfigDidFinishedNotification object:nil];

- (void)onlineConfigCallBack:(NSNotification *)notification {
    NSLog(@"online config has fininshed and params = %@", notification.userInfo);
}

最后別忘記調用removeObserver:name:object: 刪除這個監聽。

4.頁面訪問路徑統計

您可以統計每個View停留時長及路徑。
需要配對使用

 - (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [MobClick beginLogPageView:@"PageOne"];
}    
- (void)viewWillDisappear:(BOOL)animated 
{
    [super viewWillDisappear:animated];
    [MobClick endLogPageView:@"PageOne"];
}        

注意: 我們針對頁面訪問進行的是抽樣統計,所以只有數據量達到一定規模之后才可以看到

如果您想自己傳遞時長(單位為秒),我們也提供了方法。

 + (void)logPageView:(NSString *)pageName seconds:(int)seconds;   

5.按渠道自動更新檢測

在網站上分渠道提交app的版本號,更新日志及openURL后,您只需添加一行代碼來完成自動更新檢查。
請將下面代碼添加到[MobClick startWithAppkey:@"xxxxxxxxxxxxxxx"];之后

[MobClick checkUpdate];

如果想對UIAlertView的標題和按鈕文字做多國語言支持,則需要對下面三個詞組做翻譯。

umUpdateTitle :標題

umUpdateCancel : 放棄按鈕

umUpdateOK : 確定按鈕

當然您可以更簡單的自定義標題和按鈕的文字

[MobClick checkUpdate:@"New version" cancelButtonTitle:@"Skip" otherButtonTitles:@"Goto Store"];

如果默認的行為不滿足你的需求,您可以完全自定義自動更新檢查行為。只需實現

- (void)appUpdate:(NSDictionary *)appInfo;

這個delegate方法。appInfo是服務器傳回來的app相關信息。

Xcode4有兩個版本號,一個是Version,另一個是Build,對應于Info.plist的字段名分別為CFBundleShortVersionString,CFBundleVersion。 友盟SDK為了兼容Xcode3的工程,默認取的是Build號,如果需要取Xcode4的Version,可以使用下面 的方法。

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
[MobClick setAppVersion:version];

6.自定義事件案例

自定義事件用于追蹤用戶的行為,包括記錄行為發生的次數、持續的時長以及該行為的具體細節。不同的需求可以采用不同的方式來跟蹤。以音樂類應用為例,如果想監控music play(播放音樂)事件,那么

6.1.1. 跟蹤播放音樂事件發生的總次數和平均每次啟動該事件發生的次數,只需要下面一行代碼:

[MobClick event:@"music_play"];

6.1.2 跟蹤播放音樂事件發生的總時間:

在音樂播放開始的時調用:

[MobClick beginEvent:@"music_play"];

在音樂播放結束時調用:

[MobClick endEvent:@"music_play"];

6.1.3 播放音樂事件還有很多其它特征:比如所播放音樂的風格、表演者,用戶播放音樂時的狀態(登錄或匿名)。了解這些細節需要下面的代碼:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:

6.1.4 更進一步,您可以捕捉到每種狀態的持續時間,比如每種風格的音樂播放了多久。您需要采用如下方法:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:

在音樂播放開始時調用:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
[MobClick beginEvent:@"music" primarykey :(NSString *)keyName];

在音樂播放結束時調用:

[MobClick endEvent:@"music" primarykey :(NSString *)keyName];

媒體類應用都可以依照上面的方法去追蹤事件,比如閱讀文章、觀看視頻、播放音樂等。這樣可以清楚地了解哪些作品有更高點擊率、更長展示時間,以及更受用戶喜歡,從而在內容選擇和推薦上更有針對性。

再來看一個游戲案例:這是一個即時策略的塔防游戲,采用的是內置付費模式。

6.2.1. 首先,我們想觀察玩家在每次過關時的狀態,那么可以監控”user_status”這個事件。

NSDictionary *status = [NSDictionary dictionaryWithObjectsAndKeys:

這樣,我們就會知道每次過關時,等級怎樣,剩余多少金幣,是否購買玩了多少次,玩了多少時間。從而了解玩家在哪一關的流失率較高,接下來應該重點去改善。

6.2.2. 進一步,我們可以驗證關卡難度,即監控”player_dead”這個事件。

[MobClick event:@"player_dead" label:@"level"];                      

可以觀察玩家在哪一關的死亡率最高,是否與上面流失率最高的關卡吻合,這樣能判斷關卡難度是否是造成流失的主要原因。如果是,我們可以通過降低關卡難度來讓更多的玩家留在游戲中;如果不是,那么需要從其他方面入手,比如豐富游戲內容增加對玩家吸引力、加強對新手的引導環節等。

6.2.3. 購買監控道具購買是該游戲主要的收入模式,我們非常關心用戶購買行為的發生次數,那么我們可以監控”purchase”這個事件:

[MobClick event:@"purchase"];                      

購買這個事件還有很多細節特征可以記錄。比如,玩家是在哪些關購買的道具、購買道具的類型是什么、是否購買成功、購買道具時人物處于什么樣的角色等等。您可以這么做:

NSDictionary *purchase = [NSDictionary dictionaryWithObjectsAndKeys:

知道了玩家更喜歡在哪幾關購買道具,那么我們可以設法盡量讓更多玩家到達那一關;知道了玩家喜歡什么樣的道具,大概是什么樣的功能和定價,那么我們可以考慮優化道具設計、適當促銷,從而優化收益。

原文:http://blog.sina.com.cn/s/blog_a19a961b0101i823.html


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()