• APP统计


    APP统计就是统计用户使用app的各项指标,比如说日活跃量,页面打开次数,新增用户数量,用户年龄分布,用户地区分布,用户性别分布以及用户使用时间段等等。将统计出来的用户信息进行比对分析,可以服务公司的营销策略和投资策略。

    目前做应用统计的公司很多,比较好的有友盟统计,它的主要功能有这些:

      统计新增用户和启动次数

      统计页面停留时间

      统计崩溃日志

      统计行为和事件

      统计终端信息,比如用户区域,手机品牌,网络状态等。

    友盟统计SDK开发环境的准备:

      首先,获取appKey,在管理后台主页创建应用,填写信息,系统会自动生成appKey

      其次,对于AndroidStudio环境,则添加gradle依赖:

    dependencies {
       compile 'com.umeng.analytics:analytics:latest.integration'
    }

      然后,在manifest文件中配置appKey,以及添加相关权限

    <manifest……>
        <uses-sdk android:minSdkVersion="8"></uses-sdk>
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
        <application ……>
        
            <activity ……/>
            <meta-data android:value="58b7fe1aae1bf82ad4001a1d" android:name="UMENG_APPKEY"/>
            <meta-data android:value="heima_store" android:name="UMENG_CHANNEL"/>
        </application>    
    </manifest>

    环境搭建完毕之后,现在开始几个常用统计的使用

      1、使用MobclickAgent统计App的新增用户,并且启用debug模式,便于观察日志。由于MobclickAgent统计新增用户的原理是依据于安装app设备的设备id,所以我们尝试修改设备id,重新安装,然后查看结果。

    @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              //开启debug模式,会打印emeng的操作日志
              MobclickAgent.setDebugMode(true);
          }
          @Override
          protected void onResume() {
              super.onResume();
              MobclickAgent.onResume(this);
          }
          @Override
          protected void onPause() {
              super.onStop();
              MobclickAgent.onPause(this);
          }

    2、使用MobclickAgent统计app启动次数,分析友盟统计启动次数的原理,尝试修改后并进行验证,然后,自定义MobclickAgemnt记录app启动的时间周期,然后进行验证。

    //自定义启动会话时间周期
    MobclickAgent.setSessionContinueMillis(2000);

    3、统计页面停留时间,有两种情况:统计Activity停留的事件和Fragment停留的时间

    @Override
    protected void onResume() {
        super.onResume();
        //记录页面启动时间点
        MobclickAgent.onPageStart(getClass().getSimpleName());
        MobclickAgent.onResume(this);
    }
    @Override
    protected void onPause() {
        super.onStop();
        //记录页面退出时间点
        MobclickAgent.onPageEnd(getClass().getSimpleName());
        MobclickAgent.onPause(this);
    }

      注意:如果需要对多个Activity统计停留时间,那么应该将上面的代码写到基类中。

      !!!!!!!!!!!  

      注意:如果想统计Fragment的停留时间,这个由于友盟自身的原因,我么需要首先禁止Activity的追踪统计功能,代码乳腺下:

     
    //设置禁用只统计Activity的停留时长
    MobclickAgent.openActivityDurationTrack(false);

    并且需要去掉BaseActivity中统计Activity的代码:

    @Override
    protected void onResume() {
        super.onResume();
    //        MobclickAgent.onPageStart(getClass().getSimpleName());
        MobclickAgent.onResume(this);
    }
    @Override
    protected void onPause() {
        super.onPause();
    //        MobclickAgent.onPageEnd(getClass().getSimpleName());
        MobclickAgent.onPause(this);
    }

    然后在Fragment界面中,添加相同的统计代码,同样的如果多个和Fragment需要统计功能,那么应该将下面的代码添加到BaseFragment中。

    public class MyFragment extends Fragment {
        @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
            TextView textView = new TextView(getContext());
            textView.setText("我是Fragment");
            textView.setTextSize(25);
            textView.setTextColor(Color.GREEN);
            return textView;
        }
        @Override
        public void onResume() {
            super.onResume();
            MobclickAgent.onPageStart(getClass().getSimpleName());
        }
        @Override
        public void onPause() {
            super.onPause();
            MobclickAgent.onPageEnd(getClass().getSimpleName());
        }
    }

    4、统计崩溃错误日志

      友盟会自动统计app中的崩溃日志,这个功能可以让我们及时发现错误和定位错误,及时修复bug,提示app的稳定性和用户体验。如果想关闭统计崩溃日志功能,可以这样做:

    MobclickAgent.setCatchUncaughtExceptions(false);

    另外,我们也将自己捕获的错误上传到Umeng进行统计分析:

     
    public static void reportError(Context context, String error)   
    //
    public static void reportError(Context context, Throwable e)

    5、统计行为和事件 !!!!!

    在app使用行为中,有些细节的行为和事件可能需要统计,比如当发红包按钮被点击了,我们就认为这是一个发红包事件;比如当发语音按钮被点击了,我们就认为这是一个发语音的事件;再比如用户更换了头像,我们则认为这是一个换头像的行为事件。通过这些用户的使用行为分析,可以让我们更懂用户,更好地为用户服务。比如统计数据显示,用户发语音的行为非常多,那么在下一个版本中,我们可以将发语音的功能做的更易用更炫酷。

    由于这些事件和行为是和我们app的业务逻辑相关联的,所以没有通用的事件行为。在我们自己的app中,我们需要自己定义需要统计的事件和行为。

    Umeng提供了2种类型的事件统计:

    • 计数事件,我们只关心该事件行为的数量,比如统计一首歌被播放了多少次;
    • 计算事件,我们关心该事件行为的持续时间,比如统计一个人听某首歌听了多久;

    比如,我们想统计一个发红包的按钮被点击的事件行为,并且,这是一个计数事件,我们需要在后台添加这个id为fahongbao的计数事件,就可以查看统计的数据了。代码如下:

    //当按钮点击的时候,说明用户想发红包,那么则记录此行为 MobclickAgent.onEvent(getContext(),"fahongbao");

    比如,我们想统计林俊杰的<<江南>>被用户听了多久,那么这就是一个计算事件。代码如下:

    //我们计算好的播放时间
    int duration = 500000;
    String eventId = "hotsong";//热歌榜
    //事件描述信息,比如歌手是谁,歌曲名称
    Map<String,String> eventDesc = new HashMap<String, String>();
    eventDesc.put("singer","JJLin");
    eventDesc.put("song","江南");
    MobclickAgent.onEventValue(getContext(),eventId,eventDesc,duration);
  • 相关阅读:
    关于Excel无法打开,因为文件格式或文件扩展名无效的解决方法
    SpringBoot整合rabbitmq
    异步线程池的使用
    java1.8新特性之stream流式算法
    hashMap的底层实现
    redis底层设计(五)——内部运作机制
    redis底层设计(四)——功能的实现
    redis底层设计(三)——redis数据类型
    redis底层设计(二)——内存映射数据结构
    redis底层设计(一)——内部数据结构
  • 原文地址:https://www.cnblogs.com/yegong0214/p/6502467.html
Copyright © 2020-2023  润新知