1. iOS SDK 快速接入指南


本文档将帮助您快速接入大家都在使用的MTA统计功能,高级功能接入请参考高级功能接入或者 MTA.h 以及 MTAConfig.h 头文件。

使用cocoapods的开发者可前往https://github.com/tegdata/mta

1.1. 配置Xcode工程


(1) 前往“SDK下载中心”下载对应压缩包到本地。

(2)解压mta-ios-sdk-x.x.x.zip到本地目录,可以看到其中sdk目录下的三个文件libmtasdk.a, MTA.h, MTAConfig.h。

(3)将MTA.h, MTAConfig.h以及libmtasdk.a添加到工程。

(4)添加以下库或者framework的引用libz.tbd, libsqlite3.tbd, QuartzCore.framework, Security.framework, CFNetwork.framework, SystemConfiguration.framework, CoreTelephony.framework, UIKit.framework, Foundation.framework, CoreGraphics.framework以及libmtasdk.a。添加完成后,库的引用如下

(5)在工程配置的Other Linker Flags中添加 '-ObjC' 参数。如下图

linkflag

1.2. 嵌入MTA代码


(1) 切换到工程目录,打开AppDelegate.m,在文件开头import 部分增加import:

#import "MTA.h"
#import "MTAConfig.h"

(2)在启动方法

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

方法内添加如下语句

[MTA startWithAppkey:@"xxxx"]; //xxxx为注册App时得到的APPKEY

添加完成后的代码如下:

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // ...
    [MTA startWithAppkey:@"ABCDEFGH"];
    // ...
}

1.3. 验证数据上报


成功嵌入sdk后,在模拟器或手机运行您上面已经编译好的应用(确保已执行MTA代码),便会自动上报数据。

1

登陆MTA前台,等待5秒钟左右再刷新app首页,实时指标将有变化,表示已成功上报;若超过3分钟指标仍未变化,请按以下顺序检查:

(1)手机的wifi是否打开,是否正常联网;

(2)APPKEY设置是否正确;

(3)确保已触发MTA统计代码;

(4) 查看Xcode的输出是否有错误信息。

1.4. SDK嵌入完成


恭喜!到这里您已经顺利接入MTA的统计功能,需要获得更高级的服务功能,请参考接口说明

1.5. 接口说明


本文档提供了 MTA.h 头文件中大部分接口的使用方法。全部接口及使用方法请查看头文件 MTA.h。

1.5.1. 头文件 MTA.h

启动 MTA

使用统计功能以前,需要先启动MTA。在UIApplicationDelegate的

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

回调中调用 MTA 的 startWithAppkey 方法即可启动MTA。

(1)接口内容

/**
启动MTA

@param appkey 从网页申请的appKey
*/
+ (void)startWithAppkey:(NSString *)appkey;

/**
检测版本,并启动MTA。
如果当前MTA的版本小于ver参数,则MTA不启动。否则启动MTA。

@param appkey 从网页申请的appKey

@param ver 最低允许启动的版本

@return 如果MTA成功启动,返回YES,否则返回NO

*/
+ (BOOL)startWithAppkey:(NSString *)appkey checkedSdkVersion:(NSString *)ver;

(2)代码示例

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [MTA startWithAppkey:@"ABCDEFG"];
}

统计页面时长

页面时长可以统计某个页面的访问时长

(1)接口内容

/**
标记一次页面访问的开始
此接口需要跟trackPageViewEnd配对使用
多次开始以第一次开始的时间为准

@param page 页面ID,ID需要先在MTA前台配置好才能生效
*/
+ (void)trackPageViewBegin:(NSString *)page;

/**
标记一起页面访问的开始
并且指定上报方式
此接口需要跟trackPageViewEnd配对使用
多次开始以第一次开始的时间为准

@param page 页面ID,ID需要先在MTA前台配置好才能生效

@param appkey 若此参数不为nil,则上报到此appkey。否则,上报到startWithAppkey中传入的appkey
*/
+ (void)trackPageViewBegin:(NSString *)page appkey:(NSString *)appkey;


/**
标记一次页面访问的结束
此接口需要跟trackPageViewBegin配对使用
多次结束以第一次结束的时间为准

@param page 页面ID,ID需要先在MTA前台配置好才能生效
*/
+ (void)trackPageViewEnd:(NSString *)page;

/**
标记一起页面访问的结束

并且指定上报方式
此接口需要跟trackPageViewBegin配对使用
多次结束以第一次结束的时间为准

@param page 页面ID,ID需要先在MTA前台配置好才能生效
@param appkey 若此参数不为nil,则上报到此appkey。否则,上报到startWithAppkey中传入的appkey
@param isRealTime 是否实时上报,若传入YES,则忽略全局上报策略实时上报。否则按照全局策略上报。
*/
+ (void)trackPageViewEnd:(NSString *)page
appkey:(NSString *)appkey
isRealTime:(BOOL)isRealTime;

(2)代码示例

-(void) viewDidAppear:(BOOL)animated {
    [MTA trackPageViewBegin:@"Page"];
    [super viewDidAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated {
    [MTA trackPageViewEnd:@"Page"];
    [super viewWillDisappear:animated];
}

注意:trackPageViewBegin和trackPageViewEnd必须成对使用才能生效

使用时长统计

在UIApplicationDelegate的

- (void)applicationDidBecomeActive:(UIApplication *)application;
- (void)applicationWillResignActive:(UIApplication *)application;

两个回调中,分别添加对应的打点代码,即可上报app的使用时长。

(1)接口内容

/**
开始统计使用时长
建议在App进入前台时调用
*/
+ (void)trackActiveBegin;

/**
结束统计使用时长
建议在App离开前台时调用
*/
+ (void)trackActiveEnd;

(2)代码示例

// 开始打点
- (void)applicationDidBecomeActive:(UIApplication *)application {
    [MTA trackActiveBegin];
}

// 结束打点
- (void)applicationWillResignActive:(UIApplication *)application {
    [MTA trackActiveEnd];
}

1.5.2. 头文件MTAConfig.h

头文件 MTAConfig.h 提供了一些方法来自定义MTA的上报行为,比如上报策略,一次上报的条数等等。若有需要,可以查看 MTAConfig.h 头文件,做适当修改。

注:必须在调用 MTA 启动函数之前修改 MTAConfig 中的配置。否则配置可能不生效并且可能会引发 SDK 的一些未定义行为。

更多内容可参考sdk zip包中的开发文档

results matching ""

    No results matching ""