友盟+搜索

{{errorMsg}}

集成准备

 WindowsPhone7.5~WindowsPhone8.1平台应用,请参照本文集成。

导入SDK

  1. 右键单击项目“引用”节点,选择“管理NuGet程序包”

    1
  2. 左侧选择“全部”,搜索“umeng”,选择“友盟统计分析”安装。

    2

获得appkey

*特别提醒:我们建议开发者在注册账号时使用企业邮箱,避免使用个人邮箱注册,防止由于个人离职带来的问题,建议使用的账号形式 :umeng@企业域名、apps@企业域名、dev@企业域名。

在友盟的管理后台中创建App并获得AppKey

基本功能集成

配置WMAppManifest.xml

双击该文件,切换到“功能”选项卡,选中以下三项:

  • ID_CAP_IDENTITY_DEVICE
  • ID_CAP_IDENTITY_USER
  • ID_CAP_NETWORKING

或右键点击该文件--打开方式--XML(文本)编辑器,手动添加以下代码:

<Capabilities>
    <Capability Name="ID_CAP_IDENTITY_DEVICE"/>
    <Capability Name="ID_CAP_IDENTITY_USER" />
    <Capability Name="ID_CAP_NETWORKING"/>
</Capabilities>

开始统计

在App的构造函数"App()"中调用方法:

UmengSDK.UmengAnalytics.Init(string appkey, string channel);

appkey替换为您在友盟后台申请的应用appkey。
channel替换为您应用的推广渠道。默认值为Marketplace渠道。

Session统计

  1. 当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动),例如用户回到开始界面,或进入其他程序,经过一段时间后再返回之前的应用。
  2. 可通过接口:UmengSDK.UmengAnalytics.SetSessionInterval(long seconds) 来自定义这个间隔(参数单位为秒)。

页面的统计

页面统计集成正确,才能够获取正确的页面访问路径、访问深度(PV)的数据。
页面访问路径页面的数据为抽样统计(抽样比例为所有log的3%),数据量达到一定程度才会有数据。

在需要统计的页面对应的OnNavigatedToOnNavigatedFrom方法中调用TrackPageStartTrackPageEnd方法:

protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedFrom(e);
    UmengSDK.UmengAnalytics.TrackPageEnd("main_page");
}

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    base.OnNavigatedTo(e);
    UmengSDK.UmengAnalytics.TrackPageStart("main_page");
} 

发送策略

发送策略定义了用户由统计分析SDK产生的数据发送回友盟服务器的频率。

WP平台的数据发送策略有两种方式:

  • 启动时发送:APP启动时发送当次启动数据和上次的使用时长等缓存数据,当次使用过程中产生的自定义事件数据缓存在客户端,下次启动时发送
  • 按间隔发送:按特定间隔发送数据,间隔时长介于90秒与1天之间。您可以在后台自定义发送间隔。

在没有取到在线配置的发送策略的情况下,会使用默认的发送策略:启动时发送。

你可以通过后台“设置-发送策略”来自定义数据发送的频率,设置将在应用的下次启动生效。

高级功能

行为的统计:自定义事件

自定义事件可以实现在应用程序中埋点来统计用户的点击行为。

使用自定义事件的依赖条件

使用自定义事件功能请先在网站应用管理后台(设置->事件)中添加相应的事件后,服务器才会对相应的事件请求进行处理。

计数事件

使用计数事件需要在后台添加事件时选择“计数事件”。

统计发生次数

在您希望跟踪的代码部分,调用如下方法:

static void TrackEvent(string eventId)

eventId为当前统计的事件ID。

示例:统计微博应用中"转发"事件发生的次数,那么在转发的函数里调用

UmengSDK.UmengAnalytics.TrackEvent("Forward"); 

统计点击行为各属性被触发的次数

考虑事件在不同属性上的取值,可以调用如下方法:

static void TrackEvent(string eventId, Dictionary<string, string> kv)

kv 为当前事件的属性和取值(键值对,最多只能包含10个)。

示例:统计电商应用中“购买”事件发生的次数,以及购买的商品类型及数量,那么在购买的函数里调用:

Dictionary<String, String> purchase= new Dictionary<string, string>();
purchase.Add("type", "book");
purchase.Add("quantity", "3");
UmengSDK.UmengAnalytics.TrackEvent("purchase", purchase);    

计算事件

使用计算事件需要在后台添加事件时选择“计算事件”。

统计数值型变量的值的分布

统计一个数值类型的连续变量,用户每次触发的数值的分布情况,如事件持续时间、每次付款金额等,可以调用如下方法:

可以使用UmengAnalytics.NumberKey常量作为Key,最多添加一个

Dictionary<String, String> purchase= new Dictionary<string, string>();
purchase.Add("type", "book");
purchase.Add("quantity", "3");
purchase.Add(UmengAnalytics.NumberKey, "888");
UmengSDK.UmengAnalytics.TrackEvent("purchase", purchase);   

统计点击次数及各属性触发次数

计算事件除能够统计数值型的参数外还具有计数事件的所有功能。详细说明

注意事项

  1. event_id 和 tag 不能使用特殊字符,且长度不能超过128个字节;map中的key和value 都不能使用特殊字符,key 不能超过128个字节,value 不能超过256个字节
  2. id, ts, du是保留字段,不能作为eventId及key的名称。
  3. 每个应用至多添加500个自定义事件,每个event 的 key不能超过10个,每个key的取值不能超过1000个(不允许通过key-value结构来统计类似搜索关键词,网页链接等随机生成的字符串信息)。 如有任何问题,请联系客服: 联系客服

在线参数

在线参数使您可以在网站上动态配置自定义key-value型的键值对。

在线参数需要在网站编辑,在程序中使用这句代码从服务器获取参数,并缓存本地。

UmengAnalytics.UpdateOnlineParamAsync();

当在项目里需要获取某个具体参数时调用:

static string GetOnlineParam(string key)

参数key为友盟服务器上事先设置好的key。

同时,我们提供了在线参数回调接口,注意此接口只在在线参数有变化的时候才会回调,实现此接接口:

UmengAnalytics.UpdateOnlineParamCompleted += OnUpdateOnlineParamCompleted;            
UmengAnalytics.UpdateOnlineParamAsync();
void OnUpdateOnlineParamCompleted(int statusCode, OnlineParamEventArgs e)
{
    //e.Result包含获取到的在线参数
}

错误统计

SDK通过Application.Current.UnhandledException捕获程序崩溃日志,并在程序下次 启动时发送到服务器。如果开发者自己捕获了错误,需要上传到友盟服务器可以调用下面方法:

public static void TrackError(string error)
//或
public static void TrackException(Exception ex, string errMsg = "")

按渠道自动更新检测

在网站上分渠道提交app的版本号,更新日志及openURL后,您只需添加一行代码来完成自动更新检查。 请将下面代码添加到Application_Launching方法中,该方法会请求服务器检查最新版本。

public void CheckUpdateAsync();

手动处理更新回调:

public delegate void UpdateEventHandler(int statusCode, UpdateEventArgs e);
public static event UpdateEventHandler CheckUpdateCompleted;

statusCode返回状态,0 表示服务器请求成功
eUpdateEventArgs类型实例,携带有更新信息.

如果默认的行为不满足你的需求,您可以完全自定义自动更新检查行为。步骤如下:
添加事件委托

UmengAnalytics.CheckUpdateCompleted += new UmengAnalytics.UpdateEventHandler(OnCheckUpdateCompleted); 
UmengAnalytics.CheckUpdateAsync();    

处理回调函数

void OnCheckUpdateCompleted(int statusCode, UmengSDK.UpdateEventArgs e)
{
    if (statusCode == 0 && e != null && e.update)
    {
        e.Handled = true;//如果开发者手动处理更新可以设置为true,这样SDK不会弹出更新对话框
        string version = e.VersionName;//获取最新的版本号
        string updateLog = e.UpdateLog;//获取更新日志
        string productId = e.ProductID;//获取产品ID

        //To-do whatever you wanna do, since you've got everything
    }
}

测试与调试

确认如下内容

  • 确认WMAppManifest.xml配置正确
  • 确认APPKEY已经正确的写入代码中
  • 确认代码集成正确
  • 确认测试手机(或者模拟器)已成功连入网络
  • 集成中可能出现的问题,参见这里

测试流程

请先打开调试模式:
UmengSDK.UmengAnalytics.IsDebug = true;

技术支持

联系客服:联系客服
Email:support@umeng.com

为了能够尽快响应您的反馈,请提供您的appkey及log中的详细出错日志,您所提供的内容越详细越有助于我们帮您解决问题。