时长统计
MTA提供页面时长及APP使用时长统计:
页面时长
APP使用时长
页面时长
功能说明
单次使用时长指的是用户从进入应用前台到离开前台的时间。(默认一屏打开一个页面)
iOS 端
自动统计
iOS SDK 会自动统计 ViewController 中 View 的时长。若您自行实现了 ViewController 中的 viewDidAppear 和 viewWillDisappear 这两个方法。请在这两个方法中分别调用父类的对应方法。否则此功能可能无法正常工作。若您不想使用自动统计页面时长,将 MTAConfig
中的 autoTrackPage
属性置为 NO
即可。
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ...
[[MTAConfig getInstance] setAutoTrackPage:NO];
[MTA startWithAppkey:@"I2E3KXDU1E2W"];
// I2E3KXDU1E2W 属于独有的 Appkey 用于配置 SDK
// ...
return YES;
}
手动统计
若您想手动统计某个页面的时长。可以使用
+ (void)trackPageViewBegin:(NSString *)page;
+ (void)trackPageViewEnd:(NSString *)page;
这两个方法来手动统计页面时长。
示例代码:
// 开始统计
void start() {
[MTA trackPageViewBegin:@"my_view"];
}
// 结束统计
void stop() {
[MTA trackPageViewEnd:@"my_view"];
}
Android 端
自动统计
3.0.0及以上版本的Android SDK 默认通过Application.registerActivityLifecycleCallbacks()自动统计 Activity 的时长,也可以通过在Application.onCreate()初始化激活此功能。若不想使用自动统计页面时长,可在初始化StatService类接口之前调用 StatConfig.setAntoActivityLifecycleStat(false)
、StatConfig.setEnableAutoMonitorActivityCycle(false)
即可。
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
StatService.registerActivityLifecycleCallbacks(this);
// ...
}
}
手动统计
若手动统计某个页面的时长,可以使用以下2组方法。需要注意的是要确保初始化时已经调用过StatConfig.setAntoActivityLifecycleStat(false)、StatConfig.setEnableAutoMonitorActivityCycle(false)
禁止SDK的自动统计。
自动页面名称
SDK自动通过Activity类名作为页面名称,比如com.tencent.mm.MainActivity
,客户可通过管理台配置此名称的别名,方便查看。调用位置通常为Activity的onResume和onPause。
/**
* 记录用户进入activity时间,在Activity.onResume()处调用
* @param activity activity上下文
*/
public static void onResume(Context activity);
/**
* 记录用户离开activity时间,需要与onResume成对出现
*
* @param activity activity上下文,不能为null
*/
public static void onPause(Context activity);
自定义页面名称
采用客户调用时传递的页面名称,需注意方法调用成对匹配。调用位置通常为Activity的onResume和onPause。
/**
* 开始时长统计
* @param ctx context上下文
* @param pageName 被统计的页面名称
*/
public static void trackBeginPage(Context ctx, String pageName);
/**
* 结束时长统计
* @param ctx ontext上下文
* @param pageName 被统计的页面名称
*/
public static void trackEndPage(Context ctx, String pageName);
示例代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onPause() {
super.onPause();
// 以下二选一,注意成对匹配
StatService.onPause(this);
// StatService.trackBeginPage(this, "myPage");
// ...
}
@Override
protected void onResume() {
super.onResume();
// 以下二选一,注意成对匹配
StatService.onResume(this);
// StatService.trackEndPage(this, "myPage");
// ...
}
}
APP 使用时长
功能说明
统计整个 APP 的使用时长。
iOS端
自动统计
iOS SDK 会自动统计整个 App 的使用时长。若您不想使用这个功能,将 MTAConfig
中的 autoTM
属性置为 NO
即可。
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// ...
[[MTAConfig getInstance] setAutoTM:NO];
[MTA startWithAppkey:@"I2E3KXDU1E2W"];
// I2E3KXDU1E2W 属于独有的 Appkey 用于配置 SDK
// ...
return YES;
}
手动统计
若您想手动统计整个 App 的使用时长。可以使用
+ (void)trackActiveBegin;
+ (void)trackActiveEnd;
这两个方法来手动统计页面时长。 示例代码:
// 开始统计
void start() {
[MTA trackActiveBegin];
}
// 结束统计
void stop() {
[MTA trackActiveEnd];
}
Android端
Android端的使用时长主要是通过Application.registerActivityLifecycleCallbacks()来统计,请参考页面时长的自动统计章节。