陈斌彬的技术博客

Stay foolish,stay hungry

使用友盟移动统计分析(原创)

ScreenShots

img

img

img

img

img

img

1. 集成准备

1.1 获得Appkey

集成友盟SDK之前,您首先需要到友盟官网 注册并且添加新应用,获得Appkey

不同平台的应用禁止使用相同的Appkey,友盟后台的应用名与实际应用名和包名无关,建议命名为“应用名+平台”。

img

1.2 下载

下载统计sdk Analytics-iOS-SDK.zip并解压缩

1.3 导入SDK

1.3.1 下载SDK集成

请在你的工程目录结构中,右键选择Add->Existing Files…,选择文件 libMobClickLibrary.a MobClick.h。或者将这两个文件拖入XCode工程目录结构中,在弹出的界面中勾选Copy items into destination group’s folder(if needed), 并确保Add To Targets勾选相应的target。

添加依赖框架(Framework)和编译器选项

TARGETS-->Build Phases-->Link Binary With Libraries--> + -->libz.dylib (Xcode7请选择libz.tbd)

如果是从老版本友盟SDK( < 1.6.8 )升级过来,other linker flag里有-all_load -ObjC的话也最好一并去掉,友盟SDK已经不需要这两个参数了

1.3.2 使用 Cocoapods 安装 SDK

1. Cocoapods 安装完成后,在你的项目根目录创建一个 Podfile 文件,添加如下内容:
pod 'UMengAnalytics'//标准SDK,含IDFA

pod 'UMengAnalytics-NO-IDFA'//无IDFA版SDK(请根据需要选择)
2. 在terminal下运行命令如下:
pod install

命令执行完成后即可完成统计SDK的下载安装。

img

2. 基本功能集成

2.1 配置AppDelegate.m (代表你的工程名字)

AppDelegate.m的配置主要包括填写Appkey,设置发送策略和填写渠道id三部分,代码示例如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
 [MobClick startWithAppkey:@"xxxxxxxxxxxxxxx" reportPolicy:BATCH   channelId:@"Web"];
}

2.1.1 appkey填写

将startWithAppkey:@“xxxxxxxxxxxxxxx"中的xxxxxxxxxxxxxxx替换为您在友盟后台申请的应用Appkey(Appkey可在统计后台的 统计分析->设置->应用信息 页面查看)。

img

2.1.2 channel填写

将channelId:@“Web” 中的Web 替换为您应用的推广渠道。channelId为nil或@“"时,默认会被当作@"App Store"渠道。

命名规范:

可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不推荐使用。

  • 首尾字符不可以为空格
  • 最多256个字符
  • “App Store” 及其各种大小写形式,作为友盟保留的字段,不可以作为渠道名

在您查看数据时,渠道会作为一个数据细分的维度。

非常重要:每台设备仅记录首次安装激活的渠道,如果该设备再次安装其他渠道包,则数据仍会被记录在初始的安装渠道上。 所以在测试不同的渠道的时候,请使用不同的设备来分别测试。

2.1.3 iOS9中ATS配置

由于iOS9引入了App Transport Security (ATS)特性,要求App访问的网络使用HTTPS协议,如果不做特殊设置,http请求会失败,所以需要开发者在工程中增加设置以便可以发送http请求,如下:

在info plist中增加字段:

< key>NSAppTransportSecurity< /key>
< dict>
    < key>NSAllowsArbitraryLoads< /key>
< /dict>

配置完后如图所示:

img

2.1.4 设置发送策略

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

iOS平台数据发送策略包括BATCH(启动时发送)和SEND_INTERVAL(按间隔发送)两种,友盟默认使用启动时发送(更省流量),您可以在代码reportPolicy:BATCH中更改发送策略。

启动时发送:新增、活跃、启动次数等数据在APP本次打开时即刻发送,使用时长、自定义事件等在使用过程中产生的所有消息数据都在下次启动应用时发送。如果应用程序启动时处在不联网状态,那么消息将会缓存在本地,下次再尝试发送。

按间隔发送:新增、活跃、启动次数等数据在APP本次打开时即刻发送,使用时长、自定义事件等在使用过程中产生的所有数据都按间隔发送,如果应用程序启动时处在不联网状态,那么消息将会缓存在本地,下次再尝试发送。按间隔发送的间隔时长介于90秒与1天之间,您可以在后台 统计分析->设置->发送策略 页面自定义发送间隔。

2.1.5 version标识

以App打包时的Build号作为应用程序的版本标识,不能通过友盟SDK或友盟后台配置。

友盟SDK为了兼容Xcode3的工程,默认取的是Build号,如果需要取Xcode4及以上版本的Version,可以使用下面的方法;

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
[MobClick setAppVersion:version];

2.2 页面的统计

页面统计集成正确,才能够获取正确的页面访问路径、访问深度(PV)的数据。

实现页面的统计需要在每个View中配对调用如下方法:

    - (void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        [MobClick beginLogPageView:@"PageOne"];
    }
- (void)viewWillDisappear:(BOOL)animated 
    {
        [super viewWillDisappear:animated];
        [MobClick endLogPageView:@"PageOne"];
    }   

3 使用普通测试流程

如果您不使用集成测试服务来测试数据,那您可以通过普通测试流程查看测试数据。 使用普通测试流程,您的测试数据会与用户的真实使用数据同时处理,从而导致数据污染。

使用普通测试流程,请先添加以下代码打开调试模式:

[MobClick setLogEnabled:YES];

Resource Reference