iOS灵动分析入门指南

TalkingData 发布于 2015/10/23 10:50
阅读 529
收藏 2

iOS灵动分析入门指南

添加应用



登录TalkingData官网后,在产品中心里,点击创建新应用,填写应用的基本信息,获取应用的唯一识别码App ID。
下载各个平台的SDK,下载完SDK,参照各个平台的开发指南进行具体的操作。

iOS SDK下载/开发指南

特别说明:

如果您目前已使用SDKv1.X.X版本,期望升级至v2.0.X版本来使用灵动分析功能,请一定注意以下集成变更:

1、添加依赖的框架,追加了一个依赖的框架

CoreMotion.framework支持手机摇一摇功能

需要此框架来支持灵动分析的连接测试手机的摇一摇功能;未添加会造成程序无法编译情况。

2、需要添加一个编译参数

在Linking下的Other Linker Flags中添加“-ObjC”参数

详见 第三章,3 部分的截图说明。

未添加会造成使用灵动分析时,在报表平台中获得的App截图为空白的情况。

一、综述

1、适用范围

TalkingData Analytics为移动应用提供数据统计分析服务,通过在应用中加入统计分析SDK,来在TalkingData.com网站中查阅应用的分析数据。

SDK适用于iOS5.1.1及以上操作系统的设备。

iOS SDK v1.3及以上版本,已全面支持Apple Watch数据采集分析,需要iOS8.2及以上系统可采集watch数据。

iOS SDK v2.0.X及以上版本,支持灵动事件。

2、统计标准

数据系统中的基本数据单元依据以下标准定义:

• 新增用户
TalkingData数据系统中的“用户”指用户的一台唯一设备。

• watch用户
指用户在Apple Watch上使用了您的应用,连接了watch的iOS设备记录为一位watch用户。

• 用户的一次使用
指用户从打开应用的界面至离开界面的完整过程。如用户在离开界面后30秒内重新回到应用中,将被认为是上次使用被打扰后的延续,记为一次完整使用。

• 自定义事件
指用户在应用中进行了特定的操作或达成了特定的条件。例如:用户点击了广告栏、用户进行付费等。
自定义事件用于收集任意您期望跟踪的数据。


二、接入数据系统

1、为应用申请APP ID

在网站中创建一款应用,您将获得一串32位的16进制APP ID,用于唯一标识您的一款应用。TalkingData支持跨平台的应用,跨平台应用只需获得一个APP ID即可。

2、向工程中导入追踪SDK

下载数据统计SDK后解压至本地目录,将其中的*.h和lib*.a导入到您的应用工程中;

在您的工程里,选择File --> Add Files to“Your Project” --> 选择TalkingData.h和libTalkingData.a两个文件勾选Copy items into destination group’s folder (if needed) 并确保所有要用到SDK的targets都处于选中状态。

如果您的产品支持Watch扩展,参照下图进行勾选:


3. 添加编译参数

在Linking下的Other Linker Flags中添加“-ObjC”参数,如下图: 该参数是使用灵动分析SDK的必要条件。

4、添加依赖框架(FRAMEWORK)

TalkingData Analytics需要使用以下框架,您需要添加在工程中:

  1. • Security. framework来辅助存储设备标识,确保用户量精准;
  2. • CoreTelephony.framework框架获取运营商标识;
  3. • AdSupport.framework获取advertisingIdentifier,有助用户量精准;
  4. • SystemConfiguration.framework检测网络状况;
  5. • libz.dylib进行数据压缩
  6. • CoreMotion.framework支持手机摇一摇功能

Xcode的添加方式如下所示:

如要支持6.0以下系统,请将AdSupport.framework依赖条件改成Optional,如下图:

如果您的产品支持Watch扩展,在WatchKit Extension项目中也需要添加依赖框架:

5、iOS分析基础调用方法

使用数据统计系统需要至少添加以下调用方法,这些调用用于准确跟踪用户每次的应用使用,是准确统计启动、活跃、留存数据的基础:

  1. • 在需要调用SDK方法的文件中导入TalkingData.h;
  2. • 在application:didFinishLaunchingWithOptions:方法里面调用
[TalkingData sessionStarted:@"您的appId" withChannelId:@"channel_id(可选参数)"]

附注:已创建完成的应用,可进入对应应用的数据报表页中,在“系统设置”-“编辑应用”页面里能随时查看到获得的APP ID。

channel_id是渠道标识符,可通过为不同越狱推广渠道分配不同的渠道标识安装包的方式来单独追踪数据,AppStore中提交的版本亦可单独进行标记。不需要区分渠道时,可以传空字符串“”。但请注意,每台设备的全部数据会计入首个安装激活的渠道,用户更换渠道包后不重复计算新增。

示例:

三、接入数据系统

1、 追踪应用的页面使用情况

此功能可帮助开发者统计应用中各个页面的访问次数和停留时长,为产品优化提供依据。您需要在要追踪的页面被打开和关闭时调用以下方法,来获取数据:

• 在viewWillAppear或viewDidAppear方法里调用trackPageBegin方法:[TalkingData trackPageBegin:@"page_name"];

• 在viewWillDisappear或者viewDidDisappear方法里调用trackPageEnd方法:[TalkingData trackPageEnd:@"page_name"];

• 其中page_name是您自定义的页面名称。格式:支持64个字符以内的英文、数字、下划线的混合名称。请一定注意不要加入空格或其他开发中的转义字符。

2、 追踪WATCH页面使用情况

Apple Watch中WatchKit App、Glance、Notification都可以有您自定义的界面来让用户使用,我们也提供了对应的参数来标记类型,参照接口定义进行调用:

注:page_name由您自行定义,格式支持64个字符以内的英文、数字、下划线的组合。请一定注意不要加入空格或其他开发中的转义字符。

示例代码:

• 在界面Controller的willActivate方法里调用,以Glance为例:

[TalkingData trackPageBegin:@"您自定义的页面名称" withPageType:TDPageTypeGlance];

• 在界面Controller的didDeactivate方法里调用:

[TalkingData trackPageEnd:@"page_name"];

3、 纠正用户的地区信息

TalkingData默认使用设备中收取的MCC(移动国家码)和用户联网IP来判定用户的地区,与地区相关的数据会有一定误差。

如果您的应用会使用用户的位置信息,可通过接口将信息提交至TalkingData数据中,可使您获得更加精准的数据报表。调用以下方法来提交您获取的精确信息:

[TalkingData setLatitude:纬度 longitude:经度];

4、 使用自定义事件

自定义事件用于统计任何您期望去跟踪的数据,如:用户点击某功能按钮、填写某个输入框、触发了某个广告等。

我们提供两种使用方法:1、直接在报表后台中设定追踪点并自动部署追踪代码的“灵动事件”;2、在App中以触发代码方式追踪数据的“集成事件”。

4.1. 灵动事件

灵动事件支持App界面中的按钮、输入框、单选和多选控件、图片按钮的点击动作自动计数。您不需要书写额外的触发代码,在报表平台中通过动态添加,SDK会自动部署追踪码。

在数据报表的以下位置来动态管理全部“灵动事件”:

[登录平台] - [选择应用,进入报表] – 左菜单进入[事件和转化] – 进入[灵动事件]

注意:使用灵动事件,需使用 v2.0.X Beta 以上版本的SDK。

4.2. 集成事件

(集成事件调用同时适用于WatchKit Extension)

用法说明

在App中手工添加触发代码方式来记录自定义的数据追踪点;集成事件除了记录行为,还支持添加一些描述行为的参数,使用多对Key-Value的方式来进行发送(非必须使用),用来对事件发生时的状况做详尽分析。

使用说明

自定义事件用于统计任何您期望去跟踪的数据,如:点击某功能按钮、填写某个输入框、触发了某个广告等;同时,自定义事件还支持添加一些描述性的属性参数,可使用Key-Value的方式来进行发送(非必须使用) 。

一些事件会具有层级关系,如果给每个都命名不同的Event ID,会使ID总数量过多,带来管理和查阅数据的麻烦,我们提供了Label标签的用法。如果一系列事件都属于同一类,可使用相同的Event ID,而选用不同的Label即可。这个用法类似于Event ID是大目录,Label是具体事件内容。

• Event ID无需提前在数据平台中定义,可自行定义名称,直接加入到应用中需要跟踪的位置即可生效。TalkingData最多支持10000个不同Event ID。如果您要跟踪的事件过多,请做好分类,善用Label即可达到您的目的。

• 格式:32个字符以内的中文、英文、数字、下划线,注意eventId中不要加空格或其他的转义字符。

调用方法

• 在应用程序要跟踪的事件处加入下面格式的代码,也就成功的添加了一个简单事件到您的应用程序中了:

[TalkingData trackEvent:@"event_id"];

• 跟踪多个同类型事件,无需定义多个Event ID,可以使用Event ID做为目录名,而使用Label标签来区分这些事件,可按照下面格式添加代码:

[TalkingData trackEvent:@"event_id" label:@"event_label"];

• 为事件添加详尽的描述信息,可以更有效的对事件触发的条件和场景做分析。您可以使用NSDictionary对象上传事件参数,key类型必须是NSString,value可以是NSString戒者NSNumber,一次事件最多只支持10个参数:

[TalkingData trackEvent:@"event_id" label:@ "label" parameters:Your_dictionary];

• 如果所有事件都需要传输相同的参数,可以设置全局的Key-Value,这些Key-Value会自动添加到所有自定义事件:[TalkingData setGlobalKV :key value:value];

如果要移除全局Key-Value,则可以调用:
[TalkingData removeGlobalKV: key];
注: 如果onEvent里传入的Key-Value里的key和全局Key-Value里的key冲突,以onEvent里传入的为准。
示例1:

跟踪某电商应用中首页的5个不同推广位置的点击次数,并收集宣传品的品类、促销价格范围等信息:

注1:这里需追踪内容属于同类型,使用了Label标签的用法。以相同Event ID来作为统一名称,可收集到5个位置的总量点击数据,Label来区分不同的具体位置,可单独查看不同位置的数据。

注2:在value取值较离散情况下(如示例中收集的促销价格信息),不要直接填充具体数值,而应划分区间后传入(如9.9元,可定义5~10元的价格区间,传入5~10元),否则value不同取值很可能超过平台最大数目限制,而影响最终展示数据的效果。

示例2:

在一款休闲游戏中记录玩家在各关卡中的失败数据,并收集玩家具体信息。

5、 收集应用错误日志

收集应用的错误日志可帮助您来修正BUG,改善产品。为简化开发者的工作,我们提供自动获取异常信息的功能,并会记录发生事件、原因、堆栈调用情况等信息。 但衡量异常信息收集会损耗最终用户流量,因此自动捕获默认为关闭状态,您可根据需要开启此功能。

• 可向以下方法中传入YES(开启自动捕获)或NO(关闭自动捕获),来控制自动捕获功能的开关:

[TalkingData setExceptionReportEnabled:NO];

• 注意,以上调用方法必须早于“在application:didFinishLaunchingWithOptions:方法里面调用sessionStarted”之前调用,否则调用可能会生效。

四、重点问题解答

问题1:TalkingData 是否支持iOS OS 5.0?

解答:我们编译SDK时的设置为Base SDK:iOS 8.0, iOS Deployment Target:iOS 5.1.1,代码里面带有版本判断,可兼容iOS OS 5.1.1以上版本。

问题2:TalkingData 如何确定唯一设备,是否用了UDID?

解答:未调用。TalkingData SDK正式版自推出时起从未获取设备的UDID。当前SDK使用以IDFA为基础的信息来区别唯一设备,同时,TalkingData在设备本地存储了我们生成的随机唯一ID,以避免任何苹果的政策改动带来的风险。

加载中
返回顶部
顶部