• 小米开放平台,移动统计分析



    查看统计数据步骤:

    (1) 链接:http://dev.xiaomi.com/
    文档 dev.xiaomi.com/doc/p=3995/index.html
    (2) 登录——统计服务——你的APP——查看统计报表——左边菜单栏“集成测试”——测试设备
       即可看到已有测试设备的统计信息

    (3)新增测试设备方法:
        Activity中,初始化后加入:
        String deiviceId = .getDeviceID(this);
        if(deiviceId!=null){
              Log.d("test","deviceId = "+deviceId);
        }
        在Log中得到当前小米盒子的deviceId
        在之前网站中点击列表上方“新增测试设备”,输入名称和deviceId

    (4)项目中使用方式
            1、初始化
                //建议放在LauncherActivity中,如果放在Application中,如有后台sevice会导致统计数据不准确
                MiStatInterface.initialize(this, XIAOMI_APP_ID, XIAOMI_APP_KEY, "xiaomi channel"); 

                //上传方式,当前选择实时上传,第二个参数只在延时上传时才需设置
                MiStatInterface.setUploadPolicy(MiStatInterface.UPLOAD_POLICY_REALTIME, 0);       

                //是否需要打印Log。Log的TAG为:MI_STAT
                MiStatInterface.enableLog();

             2、记录一次操作。Acitivity结束之后,仍会在线程中自动上传
                MiStatInterface.recordPageStart(LoginActivity.this, "familycircle launcher");            //在onResume中调用
                MiStatInterface.recordPageEnd();                                                                         //在onPause中调用
     
         如需记录用户整个Session和操作路径,需在每个Activity中加入此代码。
       曾经尝试放在BaseActivity中,取class的name,取到的是当前的Activity的名称,但是初始化如果放在BaseActivity中,会调用多次。
       放在其他Activity中,在BaseAcitiity中会报空指针
              String name = this.getClass().getName();
              if(name!=null){
                    name = name.substring(name.lastIndexOf(".")+1,name.length()-8);    //名字去掉Acitivity
                    Log.d("test", name);
              }
     

    (5)Notes:
      第一次安装时,会自动采集设备信息上传。例如:
            "key":"IMEI","type":"字符串属性","value":"XXXXXXXXX"
            "key":"resolution","type":"字符串属性","value":"1080x1920"
            "key":"locale","type":"字符串属性","value":"zh_CN"
            "key":"new","type":"计数","value":"1"
            "key":"model","type":"字符串属性","value":"MiBOX2"
            "key":"OS","type":"字符串属性","value":"android19"

              之后再进入应用,会从LocalDB中取record数据。有时会将多次操作打包,只上传一次。虽然选择实时上传方式。事实上也不完全实时
              recordPageStart,recordPageEnd    如果在init之前调用的话,会报空指针异常。为防止只能try catch。


        上报策略
    • UPLOAD_POLICY_REALTIME 实时上报。每当有一条新的记录,就会激发一次上报。
    • UPLOAD_POLICY_WIFI_ONLY 只在WIFI下上报。当设备处于WIFI连接时实时上报,否则不上报记录。
    • UPLOAD_POLICY_BATCH 批量上报。当记录在本地累积超过一个固定值时(50条),会触发一次上报。
    • UPLOAD_POLICY_WHILE_INITIALIZE
      启动时候上报。每次应用启动(调用initialize方法)时候,会将上一次应用使用产生的数据记录打包上报。    
    • UPLOAD_POLICY_INTERVAL
      指定时间间隔上报。开发者可以指定从5分钟-1天之间的任意时间间隔上报数据记录。需要注意,由于SDK并没有使用安卓的实时唤醒机制,因此采用此策略上报,SDK做不到严格的遵守开发者设定的间隔,而会根据应用数据采集的频率和设备休眠策略,会有一定的偏差。
    • UPLOAD_POLICY_DEVELOPMENT
      调试模式。使用此策略,只有开发者手动调用一个接口才会触发上报,否则在任何情况下都不上报。SDK中提供了一个triggerUploadManually方法用于手动触发。这种策略主要用于开发者调试时候可手动控制上报时机,便于做数据对比。

      小米统计服务的本地缓存最长会保存3天,只要在3天内上报流程被触发,就会将本地之前没上报成功的所有数据打包上报。如果数据上报成功,则会把已经成功的数据从本地删除。


     




  • 相关阅读:
    区块链解读
    如何在ASP.NET Core项目启动时执行异步定时任务
    深入理解ASP.NET Core中的Program类和Startup类
    VS 2017 .Net Core Error : 项目文件不完整,缺少预期导入。
    dotnet不是内部或外部的命令,也不是可运行的程序或批处理文件
    win10系统卸载matlab时出现exeption calling main怎么解决?
    解决mui错误:Unable to preventDefault inside passive event listener due to target being treated as passive.
    类型"*.Properties.Resources" 没有名为"*"的属性
    C#生成唯一不重复订单号帮助类
    Day16.参数传递(token传递,接口关联等)
  • 原文地址:https://www.cnblogs.com/maxiaodoubao/p/4229095.html
Copyright © 2020-2023  润新知