windows phone7中如何使用Google Analytics统计分析移动应用

当我们把应用上线到商店后,怎么知道应用的使用情况呢?当然像AppStore或者Marketplace都会给会员一个后台,登录后可以看到应用的下载量和安装量,不过好像统计的数据基本都是上周的;而且数据统计还可以说的过去,数据分析?当然也有些第三方统计分析工具;Google Analytics或许大家已经不陌生了,它主要提供免费的企业网站分析服务,统计分析网站流量以及各种推广效果;可以多维度查看统计报告;当然它本身也提供了移动跟踪服务(这个具体如何使用,本人还未学习);我们能否使用它来帮我们统计移动应用吗?答案当然是肯定得;

 

前言

在windows phone7中使用Google Analytics,前提是要基于MSAF(Microsoft Silverlight Analytics Framework)框架,这个框架是微软提供的对 Microsoft Silverlight, WPF, Windows Phone 7的web统计框架;框架对各平台的分析支持如下:

image

大家可以另去研究学习这个框架http://msaf.codeplex.com/;当你下载源码后就可以看到对应wp7的solution,在solution里可以看到Sample

image

同时到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文件

         image

二、新建Windows Phone7项目

image

三、添加dll引用;在GoogleAnalytics4Wp7项目解决方案同级目录里创建Lib文件夹,将一中的dll复制到Lib中,然后在GoogleAnalytics4Wp7项目添加对这些dll的引用

四、添加AnalyticsService类启用MSAF 

View Code
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 

View Code
<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>

 

image

六、添加页面间导航;在Mainpage里添加按钮并在它的Click事件里导航到新的TestPage.xaml页面;

 

 private void button1_Click(object sender, RoutedEventArgs e)
        {
            this.NavigationService.Navigate(new Uri("/TestPage.xaml", UriKind.Relative));
        }

 

运行程序,点击按钮并在Google Analytics实时=>内容统计窗口中查看页面访问统计结果

image

以上就是简单的页面访问统计,同时可以到【标准报告】=>【内容】=>【事件】中查看事件统计;

 

添加对事件的统计:

 给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报表中就可以实时看到当前使用应用的人数,统计用户启动、关闭次数,通过页面访问次数可以查看用户使用习惯;

对你的应用是否有帮助呢?  :)

 

实例代码

posted @ 2012-04-27 16:27  J默  阅读(2625)  评论(2编辑  收藏  举报