WindowsPhone相关的几种数据收集框架的调研

来源:互联网 发布:关明生为什么离职知乎 编辑:程序博客网 时间:2024/06/04 00:45

最近在公司没什么事可做,老大就让我去调查几种应用数据收集的框架。

我给整理成了一份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的系统设计。从网页的截图来看,数据分析也是其它框架都有的。所以可以说没有选择的必要。


原创粉丝点击