友盟页面统计

页面统计集成正确,才能够获取正确的页面访问路径、访问深度(PV)的数据。
只由Activity构成的应用
如果您已经完成前面基础功能Session统计的代码添加,那么SDK已默认统计了每个Activity的跳转路径。页面统计不需要再添加其他代码。
应用中包含Fragment的情况比较复杂,首先要明确一些概念。
1、MobclickAgent.onResume() 和MobclickAgent.onPause() 方法是用来统计应用时长的(也就是Session时长,当然还包括一些其他功能)。
2、MobclickAgent.onPageStart()和MobclickAgent.onPageEnd() 方法是用来统计页面跳转的。

在仅有Activity的应用中,SDK自动帮助开发者调用了 2 中的onPageStart/onPageEnd方法,并把Activity 类名作为页面名称统计。但是在包含fragment的程序中我们希望统计更详细的页面,所以需要自己调用onPageStart/onPageEnd方法做更详细的统计。

首先,需要在程序入口处,调用 MobclickAgent.openActivityDurationTrack(false) 禁止默认的页面统计功能,这样将不会再自动统计Activity页面。

然后需要手动添加以下代码:

使用 MobclickAgent.onResume 和 MobclickAgent.onPause方法统计时长, 这和基本统计中的情况一样(针对Activity)。

使用 MobclickAgent.onPageStart 和 MobclickAgent.onPageEnd 方法统计页面(针对页面,页面可能是Activity 也可能是Fragment或View)

如果页面是直接由Activity实现的,统计代码大约是这样:

public void onResume() {
    super.onResume();
    MobclickAgent.onPageStart("SplashScreen"); //手动统计页面("SplashScreen"为页面名称,可自定义)
    MobclickAgent.onResume(this); //统计时长
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPageEnd("SplashScreen"); //手动统计页面("SplashScreen"为页面名称,可自定义),必须保证 onPageEnd 在 onPause 之前调用,因为SDK会在 onPause 中保存onPageEnd统计到的页面数据。
    MobclickAgent.onPause(this);
}

如果页面是使用FragmentActivity + Fragment实现的,需要在 FragmentActivity 中统计时长:

public void onResume() {
    super.onResume();
    MobclickAgent.onResume(this); //统计时长
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPause(this); //统计时长
}

并在其包含的 Fragment 中统计页面:

public void onResume() {
    super.onResume();
    MobclickAgent.onPageStart("MainScreen"); //统计页面("MainScreen"为页面名称,可自定义)
}
public void onPause() {
    super.onPause();
    MobclickAgent.onPageEnd("MainScreen"); 
}

注意: 这些方法的调用,需要保证线性不交叉,每个 onResume 都对应一个 onPause ,每个 onPageStart 都有一个 onPageEnd 配对。这样才能保证每个页面统计的正确。

你可能感兴趣的:(Android)