在产品运营的工作过程中,需要每日关注产品的核心指标变化情况,监控其整体运营状况。华为分析服务提供查看吸引新用户卡片,该卡片展示了新增用户数、人均会话次数、人均访问时长、人均页面访问数。借助该页面运营可观察拉新效果,判断产品对新用户的吸引力。

问题描述

某开发者在集成华为分析服务后,发现AGC概览页面上的人均会话时长突增至原来的两倍,但是人均会话次数并没有改变,具体见下图:

该突变现象不符合正常逻辑,需要深度定位突变原因。

定位过程

(1)排除云测数据同步过程异常问题

首先需要排查HUAWEI Analytics云测各计算节点有无异常。通过排查各个云测节点未发现异常,从端测采集上来的用户数和事件数都没有在云测各节点发生改变。

(2)客户侧在数据突增当天是否有重大变更情况

经过确认,该开发者在问题发生前一天发布了新版本。但客户新版本发布并没有重大内容变更,人均会话时长突增至2倍以上依然难以解释;

(3)分析变化较大的用户事件和用户属性

通过分析现网用户事件和用户属性,发现现网中有部分用户setAnalyticsEnabled开关原来为false的被置位true,即现网中原来有一批不参与分析的用户在App升级后参与了分析,开发者没有在App新版本中继承原来的开关状态。最终导致新增一批参与分析的用户,且这部分用户会话时长较长,最终导致人均会话时长增加。

再近一步分析这群新增用户,我们发现主要为iOS用户。iOS当时还未提供切后台关闭会话的机制,所以iOS用户在切后台后并不会像Android一样30秒后关闭会话,而是直到系统或者用户将App完全关闭后才关闭会话,所以iOS系统用户会话时间更长,最终导致整体的平均会话时长突增。

原因总结

开发者App新版本上线后,现网中有部分用户原来setAnalyticsEnabled开关为false的被置为true,新增一批参与分析的用户。即现网中有一批原来不参与分析的用户在App升级后参与了分析,开发者没有在App新版本中继承原来的开关状态。最终导致新增一批参与分析的用户,且这部分用户绝大多数为iOS用户,iOS当时还未提供后台运行关闭会话的接口,导致整体人均会话时长突增。

解决方案

1.App新版本更新是继承前一个版本的setAnalyticsEnabled开关状态;

2.HUAWEI Analytics后续针对iOS版本的SDK提供session关闭接口,开发者届时可自定义session关闭策略,可解决会话时长突增的问题。

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

【FAQ】用户访问次数不变,访问时长却突增2倍,分析服务发生数据异常该如何解决?的更多相关文章

  1. 以springMVC为例获取上传视频文件时长

    毕设项目是一个在线学习系统,教师用户有上传视频的功能,在答辩之前赶了一个demo出来,好多功能都写死了,比如课程学习进度就是被我写死在前端的一个变量,最近导师要我把项目打包发给他,这才心慌慌赶紧把这些 ...

  2. VS2010 F5调试时出现:“ 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常”解决

    VS2010 F5调试时出现 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常 两个解决方法:1) 打开项目属性,选择调试选项卡,将“启用非托管代码调试”一项钩上.2) 打开项目属性,选择调试选 ...

  3. Django Rest Framework之用户频率/访问次数限制

    内置接口代码基本结构 settings.py: REST_FRAMEWORK = { 'DEFAULT_THROTTLE_CLASSES':['api.utils.mythrottle.UserThr ...

  4. 利用 awk 统计nginx 中某一个用户的访问次数

    线上总是会遇到攻击,所以就需要分析 access.log 看看那些用户的访问次数不正常,针对这些不正常的用户,要做处理,以 access.log为例说明下怎么统计. 通过 access.log 日志来 ...

  5. PHP实现redis限制单ip、单用户的访问次数功能

    本文实例讲述了PHP实现redis限制单ip.单用户的访问次数功能.分享给大家供大家参考,具体如下: 有时候我们需要限制一个api或页面访问的频率,例如单ip或单用户一分钟之内只能访问多少次 类似于这 ...

  6. Oracle+struts2实现用户登入并显示访问次数

    实体类: package entity; public class userfo { private int id;//id private String name;//用户名 private Str ...

  7. Java web--Filter过滤器分IP统计访问次数

    分IP统计访问次数即网站统计每个IP地址访问本网站的次数. 分析 因为一个网站可能有多个页面,无论哪个页面被访问,都要统计访问次数,所以使用过滤器最为方便. 因为需要分IP统计,所以可以在过滤器中创建 ...

  8. 学习笔记_过滤器应用_1(分ip统计网站的访问次数)

    分ip统计网站的访问次数 ip count 192.168.1.111 2 192.168.1.112 59 统计工作需要在所有资源之前都执行,那么就可以放到Filter中了. 我们这个过滤器不打算做 ...

  9. Java web 实现 之 Filter分析ip统计网站的访问次数

    统计工作需要在所有资源之前都执行,那么就可以放到Filter中了. 我们这个过滤器不打算做拦截操作!因为我们只是用来做统计的. 用什么东西来装载统计的数据.Map<String,Integer& ...

  10. 使用redis限制ip访问次数

    策略1: 在redis中保存一个count值(int),key为user:$ip,value为该ip访问的次数,第一次设置key的时候,设置expires. count加1之前,判断是否key是否存在 ...

随机推荐

  1. JavaScript之原生ajax && jQuery之ajax

        ajax提供了异步访问服务器的方法,使页面无须刷新就可以更改页面内容,在实际情况中使用原生的情况较少但是原理需要掌握,一般都是使用jquey更轻量级的实现ajax但是原理是共同的.     原 ...

  2. C#系列文章索引

    由于有读者说,是否可以讲C#一类的文章都统一在一起,因此我做了个索引文章置顶起来,以后C#相关文章也会同步更新到该索引文章下,以便查找 .Neter所应该彻底了解的委托 - RyzenAdorer - ...

  3. 二十: MySql 事务日志

    MySql 事务日志 事务有4种特性:原子性.一致性.隔离性和持久性.那么事务的四种特性到底是基于什么机制实现呢? 事务的隔离性由 锁机制 实现. 而事务的原子性.一致性和持久性由事务的 redo 日 ...

  4. Java 从键盘上输入"year"“month”和“day”,要求通过程序输出 输入的日期为第几年的第几天

    1 /** 2 * 编写程序: 3 * 从键盘上输入"year""month"和"day",要求通过程序输出 4 * 输入的日期为第几年的第 ...

  5. Sermant运行流程学习笔记,速来抄作业

    本文分享自华为云社区<Sermant 的整体流程学习梳理>,作者:用友汽车信息科技(上海)有限公司 刘亚洲 Java研发工程师. 一.sermant架构 Sermant整体架构包括Serm ...

  6. go程序在mac下的交叉编译

    主页 微信公众号:密码应用技术实战 博客园首页:https://www.cnblogs.com/informatics/ 背景 go语言的一大优势就是跨平台,go语言是编译型语言,与Java.C#等语 ...

  7. 学习笔记-涛讲F#(基础)

    目录 简介 类型推导 多个输入参数的函数 定义单位 偏函数 常量也是函数 返回值(unit与ignore) 函数串联实现"开方乘十" 使用管道符 |> 元组(参数加上括号) ...

  8. python tcp socket 源码分享

    服务端的源码: import socketserver class Handler_TCPServer(socketserver.BaseRequestHandler): ""&q ...

  9. JavaFx 模拟键盘和鼠标事件

    模拟键盘事件 可实现按键的模拟,包含快捷键 模拟按下ctrl+v示例代码: val robot = Robot() robot.keyPress(KeyEvent.VK_CONTROL) robot. ...

  10. C++ 赋值运算符和拷贝构造函数

    拷贝构造函数 class Foo{ public: Foo(); Foo(const Foo&); //自己定义的拷贝构造函数 }; 如果不自己定义,编译器会自己合成一个默认拷贝构造函数: c ...