当我们把应用上线到商店后,怎么知道应用的使用情况呢?当然像AppStore或者Marketplace都会给会员一个后台,登录后可以看到应用的下载量和安装量,不过好像统计的数据基本都是上周的;而且数据统计还可以说的过去,数据分析?当然也有些第三方统计分析工具;Google Analytics或许大家已经不陌生了,它主要提供免费的企业网站分析服务,统计分析网站流量以及各种推广效果;可以多维度查看统计报告;当然它本身也提供了移动跟踪服务(这个具体如何使用,本人还未学习);我们能否使用它来帮我们统计移动应用吗?答案当然是肯定得;
前言
在windows phone7中使用Google Analytics,前提是要基于MSAF(Microsoft Silverlight Analytics Framework)框架,这个框架是微软提供的对 Microsoft Silverlight, WPF, Windows Phone 7的web统计框架;框架对各平台的分析支持如下:
大家可以另去研究学习这个框架http://msaf.codeplex.com/;当你下载源码后就可以看到对应wp7的solution,在solution里可以看到Sample
同时到DownLoad选项可以下载SL5&WP7 Sample了,很高兴的是这里面的WP7 Sample就是使用Google Analytics了,而且提供了封装好了的Google.WebAnalytics.dll,开心下吧,你可以使用Reflector看这里的代码,里面已经封装了对Google Analytics的接口的调用了;
主要实现是Analytics(包括GoogleAnalytics、ConsoleAnalytics)基于Behavior,然后其他用户行为(比如点击按钮、滚动全景视图、切换枢轴控件等)基于触发器(TriggerAction);这样在需要捕获用户操作的地方添加对应控件的Triggers的Action就可以了;
对于应用的启动、关闭、激活这些在Microsoft.WebAnalytics.WebAnalyticsService中捕获Microsoft.Phone.Shell.PhoneApplicationService的Activated、Closing、Deactivated、Launching的事件;并在事件里由数据收集器DataCollector写或者暂存数据,最后保存到日志文件或者远程平台(Google Analytics);
对于页面访问统计,则是在Microsoft.WebAnalytics.WebAnalyticsService 中捕获PhoneApplicationFrame 的Navigated事件,然后由数据收集器记录数据;
以上是对MSAF for wp7的浅层次理解,用以帮助大家理解;
使用之前需要到http://www.google.com/analytics/申请账户或者开通功能,因为应用中需要用于统计分析的Google Analytics账户里的跟踪ID;
一、找到需要引用的dll,从MSAF wp7的TestApp.wp7项目的Bin目录里拷贝出这些dll文件
二、新建Windows Phone7项目
三、添加dll引用;在GoogleAnalytics4Wp7项目解决方案同级目录里创建Lib文件夹,将一中的dll复制到Lib中,然后在GoogleAnalytics4Wp7项目添加对这些dll的引用
四、添加AnalyticsService类启用MSAF
using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Google.WebAnalytics; using Microsoft.WebAnalytics; using System.ComponentModel.Composition.Hosting; using Microsoft.WebAnalytics.Behaviors; namespace GoogleAnalytics4Wp7 { public class AnalyticsService : IApplicationService { #region IApplicationService Members public void StartService(ApplicationServiceContext context) { CompositionHost.Initialize( new AssemblyCatalog(Application.Current.GetType().Assembly), new AssemblyCatalog(typeof(Microsoft.WebAnalytics.AnalyticsEvent).Assembly), new AssemblyCatalog(typeof(Microsoft.WebAnalytics.Behaviors.TrackAction).Assembly), new AssemblyCatalog(typeof(GoogleAnalytics).Assembly)); } public void StopService() { } #endregion } }
五、App.xaml里初始化AnalyticsService
<Application x:Class="GoogleAnalytics4Wp7.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:mwa="clr-namespace:Microsoft.WebAnalytics;assembly=Microsoft.WebAnalytics" xmlns:ga="clr-namespace:Google.WebAnalytics;assembly=Google.WebAnalytics" xmlns:local="clr-namespace:GoogleAnalytics4Wp7" > <!--Application Resources--> <Application.Resources> </Application.Resources> <Application.ApplicationLifetimeObjects> <!--Required object that handles lifetime events for the application--> <shell:PhoneApplicationService Launching="Application_Launching" Closing="Application_Closing" Activated="Application_Activated" Deactivated="Application_Deactivated"/> <local:AnalyticsService></local:AnalyticsService> <mwa:WebAnalyticsService> <mwa:WebAnalyticsService.Services> <ga:GoogleAnalytics WebPropertyId="" Category="WP75" /> </mwa:WebAnalyticsService.Services> </mwa:WebAnalyticsService> </Application.ApplicationLifetimeObjects> </Application>
六、添加页面间导航;在Mainpage里添加按钮并在它的Click事件里导航到新的TestPage.xaml页面;
private void button1_Click(object sender, RoutedEventArgs e) { this.NavigationService.Navigate(new Uri("/TestPage.xaml", UriKind.Relative)); }
运行程序,点击按钮并在Google Analytics实时=>内容统计窗口中查看页面访问统计结果
以上就是简单的页面访问统计,同时可以到【标准报告】=>【内容】=>【事件】中查看事件统计;
添加对事件的统计:
给MainPage.xaml里的Button添加触发器
<Button Content="Button" Height="72" HorizontalAlignment="Left" Margin="124,117,0,0" Name="button1" VerticalAlignment="Top" Width="160" Click="button1_Click"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <mwab:TrackAction x:Name="Button1" /> </i:EventTrigger> </i:Interaction.Triggers> </Button>
这样Google Analytics统计结果中的事件中就会有对应的Click 次数的统计了;
其他各控件事件的统计也是基于触发器,这个在开始就已经介绍了;
有了统计结果,在Google Analytics报表中就可以实时看到当前使用应用的人数,统计用户启动、关闭次数,通过页面访问次数可以查看用户使用习惯;
对你的应用是否有帮助呢? :)