时长统计

时长统计

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()来统计,请参考页面时长的自动统计章节。

Last updated