使用Google Analytics在网站上展示实时用户数量

6

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

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


严格来说,当您发布消息时,它们不一定在线,因为会话过期,人们关闭选项卡/浏览器等等 :) - Antony Scott
这还是现状吗?或者更新的API让你可以做到这一点了吗? - Waterfr Villa
我怀疑这仍然是事实..不过我会试试看 :P - Nicekiwi
5个回答

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

3
根据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>';
?>

1
这是我开始学习 PHP 的时候.. 后来我添加了记录最大用户数量的功能。基本上又是一个 .dat 文件,每次加载时都与 $user_count 进行比较。虽然不是最好的方法,但对于新手来说还不错.. :D - Kalle H. Väravas

2
你无法获得实时数据,因为Google Analytics不提供。你需要寻找替代方法。
(由于你标记了PHP问题:一个快速而粗糙的方法可能是利用PHP会话并使用时间截止,比如如果一个会话在5分钟内没有活动,则不被视为“在线”。你需要确保在每个页面加载时更新会话。我想你需要读取包含会话文件的目录并检查文件的时间戳。如果你的网站需要大规模扩展,这可能是一种可怕的方法,但如果你只是做一个初步的概念验证快速而粗糙的模型,那么这可能是可以接受的。)

0

我看到谷歌发布了这个有限访问的测试版;

实时报告 API 允许您请求已认证用户的实时数据。这使您能够即时报告财产上正在发生的活动。您可以使用实时报告 API 查询维度和指标,以构建面向客户的 Web 小部件和仪表板。

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


0

登录谷歌并转到服务帐户

1)选择一个项目或创建一个项目

2)创建服务帐户

3)选择提供新的私钥。

4)单击创建。

详细信息


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接