WindowsPhone相關的幾種數據收集框架的調研

最近在公司沒什麼事可做,老大就讓我去調查幾種應用數據收集的框架。

我給整理成了一份word,現在分享給大家~

Feedback of Tools         

                                                                                                                                                     by Adrian Wang

                                                                                                                                                       2013 /11 / 27

Bugsense ( https://www.bugsense.com/docs/windowsphone)

部署:

直接安裝Nuget包:Install-Package BugSense.WP8

在擴展和更新中搜索BugSense.WP8進行安裝

下載工程編譯後添加聲稱的引用

程序初始化:

1.在App.xaml.cs中的App構造函數中:

public App()

{

     InitializeComponent();

     InitializePhoneApplication();

     InitializeLanguage();

    BugSenseHandler.Instance.InitAndStartSession(this, "YOUR_API_KEY");

}

2.移除UnhandledException += Application_UnhandledException;

 

這些工作完成後即可在Dashboard中看到發生的崩潰信息。

 

其他功能:

1在try catch語句中,可以在catch中調用

BugSenseHandler.Instance.LogException

將Exception的信息以及其他需要附加的信息寫入log發送到dashboard

 

2 可以在代碼的各處添加簡直對或者標記信息,當crash時會發送回dashboard

3 可以在App.xaml.cs中設置當crash時調用的函數(此功能無法使用,已發送郵件諮詢開發者,回覆說正在開發新版本,讓我等等用更酷的功能!)

4 可以跟蹤一個事件,BugSenseHandler.Instance.SendEvent("anEvent");

參數爲事件名。

5 設置本地化bug修復提示框,當某一個bug被修復之後,會彈窗提醒用戶已經修復並下載最新版。這個需要在網頁的Setting中設置,但是多語言不知道如何設置。

 

6 當要監視異步方法時,需要在MainPage的loaded或者OnNavigatedTo方法中添加:

BugSenseHandler.Instance.RegisterAsyncHandlerContext();應該在每一個需要見識的PhoneApplicationPage中都調用此方法。

免費版每月只能接受500個bug,數據保留7天,每月數據點爲35萬

 

Localytics (http://www.localytics.com/

 

部署:

從Doc中下載源文件(http://www.localytics.com/wp-content/uploads/2012/11/LocalyticsSession.cs

僅有WP7的版本,在WP8中測試可用。另外該文件沒有namespace,得手動添加。。

然後添加現有項把下載的cs文件導入項目。

程序初始化:

在App.xaml.cs中添加變量:

public LocalyticsSession session;

在Application的Launching和Activated中添加:

session = new LocalyticsSession("99041235e3752151e4b97bf-b31a7dee-5645-11e3-927e-005cf8cbabd8");
session.open();
session.upload();

在Application的Closing和Deactivated中添加:

session.close();

在Application_UnhandledException中添加用於返回異常的語句:

var attributes = new Dictionary<stringstring> { { "exception"e.ExceptionObject.Message } };
session.tagEvent("App Crash"attributes);

Capability:

<CapabilityName="ID_CAP_IDENTITY_DEVICE"/>

功能:

在其他頁面通過

((App)Application.Current).session.tagEvent("Event Name");

來進行標記,當程序退出之後會向Dashboard中返回各個標記出現的時間,個數等許多信息。

 

限制:

Up to 10,000用戶

Up to 1 Million 數據點

 

 

 

 

 

 

 

 

 

 

Flurry (  http://www.flurry.com/flurry-analytics.html  )

部署:

註冊完成之後即可下載SDK(一個包含key和dll的壓縮文件)。

將dll添加引用到項目中即可。

程序初始化:

在App.xaml.cs的Launching中添加:

FlurryWP8SDK.Api.StartSession("J7TNCYK2ZT2JRVCX3NBH");

在Activated中添加:

FlurryWP8SDK.Api.StartSession("J7TNCYK2ZT2JRVCX3NBH");

添加Capability

Identity_Device

Networking

 

功能:

直接添加事件(每個應用最多能添加300個事件):

FlurryWP8SDK.Api.LogEvent("Article_Read");

帶參數的事件(每個事件最多10個參數,每個參數的值無限):

            List<Parameter> articleParams = new List<Parameter>new Parameter("Author""John Q"), 
new Parameter("User_Status""Registered") };
FlurryWP8SDK.Api.LogEvent("Article_Read"articleParams);

 

測量整個事件持續時間:

List<Parameter> articleParams = new List<Parameter>new Parameter("Author""John Q"), 
                new Parameter("User_Status""Registered") };
FlurryWP8SDK.Api.LogEvent("Article_Read"articleParamstrue);
            // In a function that captures when a user navigates away from article
FlurryWP8SDK.Api.EndTimedEvent("Article_Read");

 

在幫助文檔中說flurry不會即時收集信息,而是數小時收集一次。所以在執行數次之後發現得過將近兩小時之後數據纔會刷新。


 

Distimo ( http://www.distimo.com/app-analytics)

部署:

https://analytics.distimo.com/settings/sdk頁面中首先添加一個SDK Key,然後下載Distimo SDK,然後添加dll引用即可。

程序初始化:

在App.xaml.cs的Launching中添加:

Distimo.SDK.start("eXrliTTWXO2PN1Zg");

在Activated中添加:

Distimo.SDK.start("eXrliTTWXO2PN1Zg");

添加Capability

Identity_Device

Identity_User

Networking

WebbrowserComponent

功能:

可以在程序中添加log:

Distimo.SDK.logBannerClick("Button is clicked");

此爲點擊廣告欄的log,還有內購log,用戶註冊log等。

備註:

此框架需要在已經上架的應用上測試,因此我建立了一個beta版本的應用上傳到store上。文檔中還說該應用應該通過url重新下載到手機或模擬器中,在運行兩個小時之後會在dashboard中顯示該應用的信息。

大約2小時之後我在SDK界面看到了相關應用的名稱。如果該應用已經提交到市場,則顯示名稱,否則顯示ID。但是由於沒有真正進入市場(我提交的beta版),還是不能生成applick,進而觀測相應log數據。


 

此框架的最大用處是通過綁定應用發佈者的賬號,來觀測已經上架的應用的下載使用等信息,但是在檢測crash信息,跟蹤trace方面還是有不足。


 

MarkedUp (http://blog.markedup.com/2013/06/available-now-markedup-analytics-for-windows-phone-8/  )

部署:

首先生成App API Key,然後安裝SDK。可以下載壓縮包(http://mkproduction.blob.core.windows.net/windowsphone8/MarkedUp(WP8).1.2.0.zip)把dll添加到引用中,也可以在nuget中輸入Install-Package MarkedUp

來添加引用。

程序初始化:

在App.xaml.cs的Launching中添加:

AnalyticClient.Initialize("9505fd5f-59ba-4ed7-a25c-c7245fd3d1ab");

添加Capability

Identity_Device

Networking

功能:

添加Event

var ps = new Dictionary<stringstring>() { { "Parameter1""Value" }, { "Parameter2""Value" } };

MarkedUp.AnalyticClient.SessionEvent("{Name of Your Custom Event}"ps);

而其他的方法在文檔中都沒有標註可以在wp中使用,而只標註了win8可用。


 

Telerik Eqatec( http://visualstudiogallery.msdn.microsoft.com/dec7df15-ddaf-442a-accf-db0d61b00a18

部署:

下載壓縮包(http://www.telerik.com/analytics/docs/default-source/monitor-files/analyticsmonitorwp_3_2_7.zip?sfvrsn=30&download=true)將dll添加引用即可。

程序初始化:

在程序開始時添加:

IAnalyticsMonitor monitor = AnalyticsMonitorFactory.CreateMonitor("YOUR-PRODUCT_KEY");
            monitor.Start();

功能:

Event的監視,開始,停止,和取消。


 

 

 

易用性:Markedup > Distimo> Localytics 〉Bugsense >  Eqatec 〉 Flurry

即時性:Markedup > Localytics 〉Bugsense  〉Distimo〉 Flurry

性價比:Bugsense 〉 Localytics > Markedup > Distimo〉Flurry

 

總的說來,Bugsense和Markedup表現令人滿意,無論是在trace追蹤方面,還是數據收集和可視化方面都可圈可點。Localytics相比較而言就有一種高大上的感覺,在多方面都可以說是非常棒的,但是價格也相對較貴,從合作公司看也可見一斑。Distimo適用的方面似乎不在event trace,或者說這方面的功能很弱,而是在上架應用的信息收集上。它可以對廣告,盈利,排名,甚至評論的收集和翻譯進行處理,進而反饋給開發者一個統觀全局的視野。Flurry這個雖然說免費,但是實時性實在難以恭維,而且數據的收集較上述的框架來說比較簡陋,沒有亮點但是可以滿足基本的數據收集分析的需求。Eqatec,能力只能說稍稍高過distimo,沒法和bugsense,markedup,localytics比較。整個api是適用於.Net系統的,沒有針對wp8的系統設計。從網頁的截圖來看,數據分析也是其它框架都有的。所以可以說沒有選擇的必要。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章