zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    wex5 实战 框架拓展之2 事件派发与data刷新
    wex5 实战 框架拓展之1 公共data组件(Data)
    wex5 实战 HeidiSQL 导入Excel数据
    wex5 实战 手指触屏插件 hammer的集成与优劣
    wex5 实战 登陆帐号更换与用户id一致性
    wex5 实战 用户点评与提交设计技巧
    wex5 实战 省市县三级联动与地址薄同步
    wex5 实战 wex5与js的组件关系与执行顺序(父子与先后)
    wex5 实战 单页模式下的多页面数据同步
    [BZOJ]4237: 稻草人
  • 原文地址:https://www.cnblogs.com/yegong0214/p/6502467.html
Copyright © 2011-2022 走看看