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

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

    实例代码

  • 相关阅读:
    bind函数
    尾置返回类型
    lambda表达式
    C++谓词
    capacity和size
    容器操作可能会使迭代器失效
    特殊的forward_list操作
    向顺序容器添加元素
    swap与assign
    迭代器
  • 原文地址:https://www.cnblogs.com/yoainet/p/2473647.html
Copyright © 2011-2022 走看看