【问题标题】:Show live user count on website with Google Analytics使用 Google Analytics 在网站上显示实时用户数
【发布时间】:2017-10-18 12:38:08
【问题描述】:

如何通过 Google 分析显示任何页面加载时的在线访问者数量?

例如,当访问者在某处加载页面时,它会显示“58 位访问者在线”。

【问题讨论】:

  • 严格来说,在您发布消息时他们不一定在线,因为会话到期,人们关闭标签/浏览器等 :)
  • 这仍然是这种情况还是更新的 API 允许您这样做?
  • 我怀疑这仍然是这种情况.. 虽然我会有一个小提琴看看:P

标签: php javascript html google-analytics


【解决方案1】:

这不能在分析中完成;但是,您可以通过在 JavaScript 中使用 ping-back 功能自己完成此操作,其中每隔 N 秒,您使用 XHR 向您的服务器发起一个“心跳”请求,并包含某种唯一 ID。当一段时间(超过 N 秒)没有来自给定 ID 的心跳时,您可以假设用户不再活跃在该站点上。此外,您可以将其与可见性 API 结合起来,以仅显示正在积极查看页面的用户集(而不是打开页面但在后台选项卡中的用户)。

【讨论】:

    【解决方案2】:

    正如 Trott 之前所解释的,分析中没有这样的功能。但是,我给你一个非常非常古老的选择。我在 2004 年写了这个,所以它已经过时了,但基本上可以工作。此外,它无需使用任何数据库即可工作。有时您需要像这样的复古解决方案 :)

    现场演示:kopli.pri.ee/stackoverflow/6976362.php

    (您需要为当前文件夹设置 777 chmod,以便自动创建 users.dat)

    <?php
    $current_users_file = 'users.txt';
    if (!file_exists($current_users_file)) fclose(fopen($current_users_file, "w"));
    $users = file($current_users_file);
    $found = false;
    $user_count = count($users);
    $fp = fopen($current_users_file, "w");
    foreach($users as $user) {
        $user = explode("|", $user);
        if ($user[1]+300 < time()) {
            $user_count--;
            continue;
        } elseif ($user[0] == $REMOTE_ADDR) {
            $user[1] = time();
            $found = true;
        }
        $user = trim(implode("|", $user))."\n";
        fputs($fp, $user);
    }
    if (!$found) {
        fputs($fp, $REMOTE_ADDR."|".time()."\n");
        $user_count++;
    }
    fclose($fp);
    echo 'Active users <b>' . $user_count . '</b>';
    ?>
    

    【讨论】:

    • 这是我开始学习php的时候。。后来我添加了记录最大值的功能。用户数量。基本上是另一个 .dat 文件,每次加载都会与 $user_count 进行比较。不是最好的方法,但是嘿,对于新手来说还不错..:D
    【解决方案3】:

    你不能。 Google Analytics 不提供最新数据。您将不得不找到一种替代方法。

    (由于您标记了问题 PHP:一种快速而肮脏的方法可能是利用 PHP 会话并使用时间截止,例如如果会话在 5 分钟内未处于活动状态,则它们不被视为“在线“。您需要确保在每次页面加载时更新会话。我想您必须阅读包含会话文件的目录并检查文件的时间戳。如果您的网站需要扩大规模,但如果你只是这样做的话,对于最初的概念验证快速和肮脏的模型来说可能还可以。)

    【讨论】:

      【解决方案4】:

      我看到谷歌已经在有限访问测试版中发布了这个;

      Real Time Reporting API 使您能够为经过身份验证的用户请求实时数据。这使您可以报告当前在您的财产上发生的活动。您可以使用 Real Time Reporting API 查询维度和指标,以构建面向客户的 Web 小部件和仪表板。

      https://developers.google.com/analytics/devguides/reporting/realtime/v3/

      【讨论】:

        【解决方案5】:

        登录谷歌并转到Service account

        1) 选择项目或创建项目

        2) 创建服务帐号

        3) 选择提供新的私钥。

        4) 点击创建。

        detailed info

        【讨论】:

          猜你喜欢
          • 2014-03-18
          • 1970-01-01
          • 1970-01-01
          • 2016-08-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-18
          相关资源
          最近更新 更多