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
一起標示一個唯一事件,并不會被統計;
對于同一個事件在beginEvent
和endEvent
中要傳遞相同的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];
時長是友盟統計的一個新功能,使用過程中可能會出現一些常見的錯誤,開發者應該盡量的避免。
注意
event_id
和tag
不能使用特殊字符,且長度不能超過128個字節;map
中的key
和value
都不能使用特殊字符,key
不能超過128個字節,value
不能超過256個字節id
,ts
,du
是保留字段,不能作為eventId
及key
的名稱。- 每個應用至多添加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
文章列表