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

时间:2011-08-07 22:56:04

标签: php javascript html google-analytics

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

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

5 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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>';
?>

答案 2 :(得分:2)

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

(因为你标记了问题PHP:快速而肮脏的方式可能是利用PHP会话并使用时间截止,就像会话在5分钟内没有活动,那么它们不被视为“在线” “。你需要确保在每次加载页面时更新会话。我想你必须阅读包含会话文件的目录并检查文件的时间戳。如果你的话,这可能是一种可怕的方法。网站需要向上扩展,但如果你正在做的那样,那么最初的概念验证快速和肮脏的模型可能还可以。)

答案 3 :(得分:0)

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

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

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

答案 4 :(得分:0)

登录google并转到Service account

1)选择项目或创建项目

2)创建服务帐户

3)选择提供一个新的私钥。

4)点击“创建”。

detailed info