You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Google Analytics实时活跃用户数公开并嵌入Web应用用于推广

如何公开Google Analytics实时活跃用户数用于推广展示

你的核心问题是:现有Embed API需要用户登录授权才能查看数据,但你想公开展示这个实时用户数给所有访问你应用的用户(不需要他们登录谷歌账号)。直接用前端的Embed API肯定不行,因为它依赖用户的个人授权,我们需要换一种服务器端获取数据的方式,再把数据提供给前端展示。

下面是完整的实现方案:

一、准备工作:配置Google Cloud服务账号与Analytics权限

要绕过用户授权,我们需要用Google Cloud服务账号来调用Analytics的Real Time API,步骤如下:

  • 登录Google Cloud控制台,创建一个新的服务账号,下载JSON格式的密钥文件(务必妥善保存,仅在服务器端使用)
  • 打开你的Google Analytics(UA或GA4均可,操作逻辑类似),进入「管理」→「用户管理」,把刚才创建的服务账号邮箱添加为「读取者」权限,确保它能访问你的Analytics数据

二、服务器端:编写接口获取实时活跃用户数

我们需要在自己的服务器上写一个接口,用服务账号认证后调用Google Analytics Real Time API,拿到数据后返回给前端。这里以Node.js为例:

首先安装依赖:

npm install googleapis express

然后编写核心代码(比如server.js):

const { google } = require('googleapis');
const express = require('express');
const app = express();

// 加载服务账号密钥
const auth = new google.auth.GoogleAuth({
  keyFile: './your-service-account-key.json', // 替换成你的密钥文件路径
  scopes: ['https://www.googleapis.com/auth/analytics.readonly'],
});

// 初始化Analytics服务(UA版本,GA4需调整为analyticsdata/v1beta)
const analytics = google.analytics({
  version: 'v3',
  auth: auth,
});

// 定义获取实时用户的接口
app.get('/api/active-users', async (req, res) => {
  try {
    const response = await analytics.data.realtime.get({
      ids: 'ga:YOUR_VIEW_ID', // 替换成你的UA视图ID(格式为ga:xxxxxx)
      metrics: 'rt:activeUsers',
    });
    res.json({ activeUsers: response.data.rows[0][0] });
  } catch (error) {
    console.error('获取实时用户数失败:', error);
    res.status(500).json({ error: '无法获取数据' });
  }
});

app.listen(3000, () => {
  console.log('服务器运行在http://localhost:3000');
});

三、前端:展示实时用户数并自动更新

现在前端可以直接调用你自己的后端接口,不需要用户授权,然后每隔几秒刷新一次数据:

<div id="active-users-container">加载中...</div>

<script>
// 定义获取数据的函数
async function fetchActiveUsers() {
  try {
    const response = await fetch('/api/active-users');
    const data = await response.json();
    document.getElementById('active-users-container').textContent = `当前实时活跃用户:${data.activeUsers}人`;
  } catch (error) {
    console.error('获取数据失败:', error);
    document.getElementById('active-users-container').textContent = '数据加载失败';
  }
}

// 页面加载时获取一次,之后每隔5秒自动刷新
fetchActiveUsers();
setInterval(fetchActiveUsers, 5000);
</script>

关键注意事项

  • 为什么不用原来的Embed API?因为Embed API是给个人用户查看自己的Analytics数据设计的,必须用户登录授权,完全不适合公开展示给所有访客
  • 服务账号的密钥文件绝对不能暴露在前端代码里,必须放在服务器端安全存储
  • 如果使用GA4,需要调用GA4的Real Time API(版本为analyticsdata/v1beta),请求参数和UA略有差异,可根据官方文档调整

内容的提问来源于stack exchange,提问作者solimanware

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:56:53