热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用Engagement衡量用户活跃度(转载)

Engagement(参与度)是一个特殊的度量,Avinash认为Engagement不应该作为网

Engagement(参与度)是一个特殊的度量,Avinash认为Engagement不应该作为网站分析的一个度量,它更像是不愿意去寻求衡量网站是否成功的真正指标时使用的一个借口。他列举了Engagement存在的几个缺陷:

  • Engagement对于不同网站而言是不同的,它不是一个统一的度量,难以用一个统一的标准去定义它;
  • Engagement更多的是从定性的角度来定义的,很多用户参与行为不能很好地量化,因此难以准确地度量;
  • 没有一个评判标准,对于一个网站而言用户参与度到底多少算是好;
  • 因为没有标准的定义,存在不固定性,因此不能作为衡量网站整体表现的参考指标。

 

所以,我们可以认为Engagement是一个非标准化的度量,但绕开Avinash所提及的那些误区之后,也许Engagement也并非一无是处,至少它可以作为网站自身的分析指标,衡量用户的活跃度。

 

如何合理地定义Engagement

 

如果你要用Engagement来衡量网站用户的活跃度,并且把它作为一个长期的指标进行趋势分析,那么首先在定义时必须确定那些被归为Engagement的行为是相对固定的, 在短期内不会发生变化。如对于一个论坛而言,“发帖”和“跟帖”行为是持续不变的交互行为,这些可以作为识别用户是否参与的标准;而网站中的一个活动按钮 或推广链接则不能作为识别Engagement的标准,因为推广活动一般是有期限的,在下线后用户的Engagement就会相应的降低,这样就会导致 Engagement的不稳定性,也就失去了分析的意义(或者你只是为了单独分析该次推广活动的用户参与度,那另当别论)。

 

这里先举两个例子,显示电子商务网站定义Engagement的例子:

 

  • 用户的注册行为;
  • 用户放入购物车或购买行为;
  • 用户的售前和售后的反馈行为;
  • 用户对商品的评价。

 

再来看一下微博中可以定义为Engagement的一些行为:

 

  • 用户注册行为;
  • 发布新微博或转发微博;
  • 发表对微博评论;
  • 关注新的用户。

 

non-standard可以看到电子商务网站的Engagement的定义与微博大相径庭,这也是为什么说Engagement是一个非标准化的度量的原因,网站间无法比较各自Engagement的优劣。所以Engagement应该作为网站内部分析指标,只用于衡量网站本身用户的活跃度变化趋势。

 

即使是一个网站的Engagement也有不同的定义方法,比如我也可以在微博的Engagement定义 中加入“收藏微博”的动作,所以我的建议是对于Engagement的定义,一个网站应该在一开始就形成一个标准,如果网站的性质没有发生大的变化就不要 轻易修改定义,不然即使是作为网站自身的评价指标,它也不能很好的发挥作用。

 

需要注意的是,Engagement只是用户的一系列动作或行为(Actions),并非网站的产出结果(Outcomes)。只能用于衡量网站用户活动的频繁度,进而分析网站用户近期的活跃程度,而不能用于衡量网站的效益

 

基于Engagement Index的分析

 

这里首先推荐一篇Eric T. Peterson在Web Analytics Demystified上的文章——How do you calculate engagement? ,里面提供了关于Engagement的十分全面和精彩的分析。

 

分析最好结合实例,所以这里还是以我的博客为例,假如我定义我的博客的Engagement包括以下的行为:

 

  1. 用户发表评论;
  2. 收藏或分享我的文章;
  3. 订阅我的博客或关注我;
  4. 停留时间(Time on site)超过3分钟。

 

首先涉及到数据获取的问题,其实通过点击流+事件追踪,大部分用户的行为还是可以跟踪得到的,这里就不再详细展开了。

 

接下去就是如何衡量Engagement。衡量Engagement的指标叫做参与度指数(Engagement Index),既然我们已经定义好了Engagement,我们就可以通过一些方法计算Engagement Index。这里建议Visit(或者叫Session)为单位计算用户一次访问是否Engaged,而不是计算每个Visit中Engage的次数,因为我们无法对某些行为精确定量它的次数,也许发表评论数可以计算次数,但是停留时间的长短就无法用次数来衡量,所以这里统一只判断一个Visit是否发生了上述的任何一类行为,发生则认为这次访问为Engaged,我们可以用一段形象的代码来解释:

 

帮助
1
2
3
4
5
boolean isEngaged(Visit) {
         if ( comment || share || feed || follow || time_on_site>=3min )
                  return true;
         else
                 return false; }

 

通过调用上面的“函数”我们可以获取到哪些Visits是Engaged Visits,就可以计算出总的Engaged Visits的数量就是Engagement Index的值。但是单纯的一个Engagement Index似乎没有对比的价值,我们可以通过计算跟网站总Visits的比值获取用户的参与率(Engagement Rate)

 

Engagement Rate = Engaged Visits / All Visits

 

也可以用下图来对比Engaged Visits与总Visits的关系:

 

engaged-visits

 

也可以分析定义Engagement中各类行为发生的比率:

 

engaged-visits-piechart

 

这里需要注意的是这个饼图中Visits的总和并非上面计算得到的Engagement Index,因为一个Visit可能既发表了评论,也订阅的博客,那么这个Visit就会被重复记录到两种行为的比例中。根据Engagement进行细 分来源的的分析上面推荐的Eric T. Peterson的文章中已经介绍的非常详细,有兴趣的朋友可以自己去看下。

 

如果你觉得还意犹未竟,认为那些用户参与的行为并非同等重要的,或许那些订阅了博客的用户或者在博客发表了评论的用户应该显得更加活跃,那么可以给这些行为赋予不同的权重,Sidney的博客中有过相关的介绍——网站分析的最基本度量(8)——Engagement,如果你想让权重显得更加客观和精确,可以使用我之前介绍过的层次分析法(AHP)来计算每个行为的权重,那么Engagement Index就是相应的加权和(定义每个Engaged Visits的数量为Ei,每个Engagement行为的权重为Wi):

 

engagement-index-wtd

 

分析Engagement的意义

 

有时我们需要细分,而有时我们需要将指标进行聚合来评价总体表现。所以建议不要试图使用次数去计算每个Visit的Engagement Index是多少,次数会由于网站设计上的变化(页面布局、交互按钮的设计等方面的变化)及行为实现的多样性(如果你要发条微博,那实现的途径太多了)而 呈现不稳定状态,使用Visits来度量的Engagement更具可比性,最总我们只是进行汇总来衡量整个网站的Engagement情况。

 

那么Engagement对于网站来说到底有什么用呢?这里有个最简单的例子,当一个电子商务网站发现近几天的订单量并无发生显著的变化,但是 用户活跃度却大幅上升,原因是某款商品的质量存在问题,大量的用户向网站反馈和抱怨,这时如果网站通过分析Engagement监控着用户的活跃度,那么 就可以迅速地发现并作出反应。其实这个例子也说明了对于某些网站来说Engagement越高,网站的绩效不一定越好,两者没有直接的联系。

我们已经步入WEB2.0的时代,用户与网站间的交互更加频繁,网站需要更多活跃用户来增加自身的活力,用户的参与有效地提升了网站与用户之间 的信息互通,为网站带来活力的同时也为网站创造着更多的信息,而且很多都是网站本身忽略的或者无法提供的有价值信息,而这些“用户智慧”的注入无疑可以为 网站带来更多的关注。


推荐阅读
  • Startup 类配置服务和应用的请求管道。Startup类ASP.NETCore应用使用 Startup 类,按照约定命名为 Startup。 Startup 类:可选择性地包括 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本文探讨了《魔兽世界》中红蓝两方阵营在备战阶段的策略与实现方法,通过代码展示了双方如何根据资源和兵种特性进行战士生产。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 深入解析JMeter中的JSON提取器及其应用
    本文详细介绍了如何在JMeter中使用JSON提取器来获取和处理API响应中的数据。特别是在需要将一个接口返回的数据作为下一个接口的输入时,JSON提取器是一个非常有用的工具。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • Python入门:第一天准备与安装
    本文详细介绍了Python编程语言的基础知识和安装步骤,帮助初学者快速上手。涵盖Python的特点、应用场景以及Windows环境下Python和PyCharm的安装方法。 ... [详细]
  • PHP中去除换行符的多种方法及应用场景
    本文将详细介绍在PHP中去除换行符的各种方法,并结合实际应用场景进行说明。通过本文,您将了解如何根据不同操作系统的特点,选择最合适的换行符处理方式。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 本文探讨如何在 C# 中将 If 语句中检索到的结果保存到一个变量中,以提高代码的可读性和可维护性。 ... [详细]
author-avatar
虚伪小仔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有