【问题标题】:How to Calculate Average Scroll Depth?如何计算平均滚动深度?
【发布时间】:2018-11-30 16:51:04
【问题描述】:

我正在尝试计算网站页面的平均滚动深度。在 Google Analytics(分析)中,我的事件以 10% 增量的里程碑触发——所以当用户到达页面下方的 10%、20%、30% 等等时。我为每个里程碑都有一个自定义指标(因此我可以通过指标或事件进行跟踪)。

我的问题是:有了这些信息,我如何计算页面的平均滚动深度?或者换句话说,我如何找到用户向下滚动页面的平均距离?


事件数据示例:

Milestone Events 
10%       500
20%       400
30%       475
40%       300 
50%       200 
60%       100
70%       75 
80%       60  
90%       20
100%      10

自定义指标数据示例:

Page     10 Scroll  20 Scroll  30 Scroll  40 Scroll  50 Scroll  60  Scroll  70 Scroll  80 Scroll  90 Scroll  100 Scroll
Name     500         400        475       300         200        100          75        60          20          10

【问题讨论】:

  • 记住小学公式mean = sum(value * P(value))
  • 问题是,滚动深度事件通常是累积的。因此,如果有人滚动 100%,他们将首先触发所有较低百分比的事件。 (样本数据很奇怪,因为 30% 的值高于 20%,这通常不会发生。)如果可以只发送“最终”滚动深度,那就太好了,但很难发送使该工作可靠。由于具有累积性,简单的加权平均不会给出有意义的结果。

标签: math google-analytics average


【解决方案1】:

(根据要求编辑)

简答 - 使用这个公式:

平均滚动深度 = [({{Scroll 25%}} – {{Scroll 50%}}) * 0.25 + ({{Scroll 50%}} – {{Scroll 75%}}) * 0.50 + ({ {滚动 75%}} – {{滚动 100%}}) * 0.75 + {{滚动 100%}} * 1)]/{{浏览量}}

其中 {{Scroll 25%}} 是 25% 滚动等事件的总数,我们设置为事件操作值(或事件标签,但你是这样做的)。如果您使用 10% 的增量,那么它将是 0.1*(10%-20%) + 0.2*(20%-30%) + ... 等等。

这些数字字段将包含 Null,因此您可以使用 NARY_MAX(Scroll XX%, 0) 在 Data Studio 图表中定义您的指标。我认为将每个 Scroll XX% 事件计数作为唯一变量会更清晰、更有用,因此我进入资源 > 管理添加的数据源并使用此公式为每个 XX% 事件操作值添加新字段:

COUNT(CASE WHEN REGEXP_MATCH(Event Action, "XX%" ) THEN 1 ELSE 0 END)


冗长的迂腐回答 - 原因如下:

看了这个视频后发现了这个话题 https://www.youtube.com/watch?v=EMJzHycsNy4 并实现了他的方法 1。然后我看到几个用户遇到了和我一样的问题:平均滚动深度超过 100%。

经过反思,在方法 1 中,{{Scroll Depth}} / {{Pageviews}} 无法给出有意义的平均滚动深度。

因为我们将自定义指标 Scroll Depth 设置为事件类别,每次标签触发时递增 1,{{Scroll Depth}} 只是滚动深度标签触发的事件总数。例如,如果您将其设置为在 25%、50%、75% 和 100% 触发,并且用户在一次网页浏览上一直向下滚动,它将触发 4 次。所以对于这个单一的网页浏览,“平均”将是 4/1 = 400%。

{{Scroll Depth}} / {{Pageviews}} 如果您仅触发滚动深度标签在每页触发一次,则可能会很有用,因此每个网页浏览都有一个二进制值 0 或 1。然后,划分将为您提供进行任何深度滚动的用户与根本不滚动的用户的平均数量。根据您是否认为正在滚动但未在页面上执行任何其他操作的访问者仍应计为跳出,关于您是否应该将滚动设置为交互命中或非交互命中的讨论很多。不同的讨论。

经典平均值是每个事件的总和乘以其权重除以事件总数,如上文和此处所建议:Average scroll rate in Google Studio 平均滚动深度 = ({{Scroll 25%}} * 0.25 + {{Scroll 50%}} * 0.50 + {{Scroll 75%}} * 0.75 + {{Scroll 100%}} * 1) / {{Scroll Depth }} / 100

但这在这里行不通,因为每个触发器都会在一个阈值处触发,每个网页浏览都有多个事件。例如,对于仅滚动到 25% 的单个用户,这是唯一的事件。但如果他们滚动到 50%,那么您有两个事件,一个在 25%,一个在 50%。将它们经典地求和得出 (1 * 0.25 + 1 * 0.50)/2 = 0.375,显然不对 - 这将是两次浏览量的平均值,一次为 25%,一次为 50%。我们只想要每个页面浏览的最大滚动深度。因此,在单个页面浏览中,每个后续事件都会否定前一个事件。 所以正确的公式是:

平均滚动深度 = [({{Scroll 25%}} – {{Scroll 50%}}) * 0.25 + ({{Scroll 50%}} – {{Scroll 75%}}) * 0.50 + ({ {滚动 75%}} – {{滚动 100%}}) * 0.75 + {{滚动 100%}} * 1)]/{{浏览量}}

因此,一位用户和一次浏览量的最大深度由下式给出:

  • 1 个用户滚动到 25%:(1 – 0) * 0.25 + (0 – 0) * 0.50 + (0 – 0) * 0.75 + 0 * 1 = 0.25
  • 1 个用户滚动到 50%:(1 – 1) * 0.25 + (1 – 0) * 0.50 + (0 – 0) * 0.75 + 0 * 1 = 0.5
  • 1 个用户滚动到 75%:(1 – 1) * 0.25 + (1 – 1) * 0.50 + (1 – 0) * 0.75 + 0 * 1 = 0.75
  • 1 个用户滚动到 100%:(1 – 1) * 0.25 + (1 – 1) * 0.50 + (1 – 1) * 0.75 + 1 * 1 = 1

如果您有两个用户和两个浏览量:

  • 用户 1 滚动到 50% = 0.5
  • 用户 2 滚动到 75% = 0.75

所以平均值应该是 (0.5 + 0.75)/2 浏览量 = 0.625

应用滚动深度公式,求和除以二:

用户 1:(1 – 1) * 0.25 + (1 – 0) * 0.50 + (0 – 0) * 0.75 + 0 * 1 = 0.50

用户 2:(1 – 1) * 0.25 + (1 – 1) * 0.50 + (1 – 0) * 0.75 + 0 * 1 = 0.75


两者:[(2 – 2) * 0.25 + (2 – 1) * 0.50 + (1 – 0) * 0.75 + 0 * 1]/2 页面浏览量 = 0.625

如果您有三个用户和三个浏览量:

  • 用户 1 滚动到 50% = 0.5
  • 用户 2 滚动到 75% = 0.75
  • 用户 3 滚动到 100% = 1

所以平均值应该是 (0.5 + 0.75 + 1)/3 浏览量 = 0.75

用户 1:(1 – 1) * 0.25 + (1 – 0) * 0.50 + (0 – 0) * 0.75 + 0 * 1 = 0.50

用户 2:(1 – 1) * 0.25 + (1 – 1) * 0.50 + (1 – 0) * 0.75 + 0 * 1 = 0.75

用户 3:(1 – 1) * 0.25 + (1 – 1) * 0.50 + (1 – 1) * 0.75 + 1 * 1 = 1


全部:[(3 – 3) * 0.25 + (3 – 2) * 0.50 + (2 – 1) * 0.75 + 1 * 1]/3 = 0.75

等等。不幸的是,我无法找到一种方法来设置 GA 计算指标中特定事件操作数的计数。 Data Studio 为您提供了更多的灵活性;在那里,您可以使用过滤器为每个事件操作设置一个计算变量,然后从中获取总体平均值。

【讨论】:

  • 您的答案不清楚 - 如果您发现确实有效的东西,您能否在开头(简单地说)?
  • 对不起,我昨天才刚弄完;现在我可以说是的,它看起来可以工作 - 尽管任何未损坏的代码可能还没有经过充分测试:-)
  • 在 Data Studio 中如何计算?
【解决方案2】:

它在顶部的更新简短答案中。还附加了 GTM 标签和触发器设置。 GTM TriggerGTM Tag 在 Data Studio 中,我转到管理添加的数据源并使用此公式为每个 XX% 事件操作值添加新字段:

滚动 25% = COUNT(CASE WHEN REGEXP_MATCH(Event Action, "25%" ) THEN 1 ELSE 0 END) 滚动 50% = COUNT(CASE WHEN REGEXP_MATCH(Event Action, "50%" ) THEN 1 ELSE 0 END) 滚动 75% = COUNT(CASE WHEN REGEXP_MATCH(事件操作,“75%”) THEN 1 ELSE 0 END) 滚动 100% = COUNT(CASE WHEN REGEXP_MATCH(Event Action, "100%" ) THEN 1 ELSE 0 END)

然后使用以下公式在您的报告中计算值: 平均滚动深度 = [({{Scroll 25%}} – {{Scroll 50%}}) * 0.25 + ({{Scroll 50%}} – {{Scroll 75%}}) * 0.50 + ({{Scroll 75 %}} – {{Scroll 100%}}) * 0.75 + {{Scroll 100%}} * 1)]/{{Pageviews}

新的长答案:我的组织从 GA 切换到 Adob​​e Analytics,并从 GSuite 切换到 MS265,因此我们失去了企业访问权限,但我的老板和我将 GA 的所有权转移到了我们的个人电子邮件中,所以我们仍然把它作为遗迹工具。无法再共享 Data Studio 报告,所以现在是 Power BI。

但是有了免费的 GA,我们有一个数据上限,我发现 Scroll Depth 很快就以巨大的优势成为了顶级事件,并且给我们提供的可操作信息相对较少,所以我暂停了这个标签。

【讨论】:

    【解决方案3】:

    我试图解决这个完全相同的问题。尝试将滚动阈值乘以事件数 (10x500) + (20x400) + (30x475) +(40x300) + (50x200) + (60x100) +(70x75) +(80x60) + (90x20) + (100x10)

    然后,将总数除以事件总数。 500 + 400 + 475...等

    【讨论】:

    • 不幸的是,这个公式没有给出有意义的数字作为结果。 DLuber 的答案,虽然可以说他们的解释比必要的要长,但它们是正确的。即,这些答案中所述的公式会产生有意义的数字。
    猜你喜欢
    • 2012-01-07
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多