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

如何在自有网站展示Google Analytics仪表盘?PHP+API/OAuth实现可行性咨询

嘿,这两个关于Google Analytics(GA)的问题我之前做项目时刚好研究过,给你详细拆解下~

在自有网站展示Google Analytics仪表盘的方案

1. 如何在自有网站中展示Google Analytics仪表盘?

有两种主流方案,你可以根据需求的灵活度来选:

方案一:使用Google Analytics Embed API(推荐,灵活可定制)

这是官方专门为外部网站嵌入GA数据设计的方案,支持自定义报表、嵌入已保存的仪表盘,还能完美适配你的网站样式。步骤如下:

  • 准备工作:
    • 登录Google Cloud Console,新建一个项目,启用「Google Analytics Embed API」。
    • 配置OAuth同意屏幕(内部使用选「内部」,公开使用需要提交审核),然后创建「Web应用」类型的OAuth客户端ID,把你的网站域名添加到授权的JavaScript来源和重定向URI里。
  • 前端实现示例:
    先加载GA的API脚本,再初始化并渲染仪表盘:
    // 加载Embed API脚本
    (function(w,d,s,g,js,fjs){
      g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)}};
      js=d.createElement(s);fjs=d.getElementsByTagName(s)[0];
      js.src='https://apis.google.com/js/platform.js';
      fjs.parentNode.insertBefore(js,fjs);js.onload=function(){g.load('analytics')};
    }(window,document,'script'));
    
    // 初始化并渲染已保存的仪表盘
    gapi.analytics.ready(function() {
      // 先完成OAuth授权(这里用Google账号登录授权)
      const authInstance = gapi.auth2.getAuthInstance();
      authInstance.signIn().then(() => {
        // 替换成你自己的仪表盘ID和GA视图ID
        new gapi.analytics.googleCharts.Dashboard({
          container: 'ga-dashboard-container'
        }).embed({
          reportId: '你的仪表盘ID',
          viewId: '你的GA视图ID'
        });
      });
    });
    
    最后在你的HTML页面里加个容器:<div id="ga-dashboard-container"></div>

方案二:iframe嵌入(简单但受限)

如果只是想快速嵌入一个已有的GA仪表盘,用GA自带的分享功能就行:

  • 登录Google Analytics,打开你要展示的仪表盘,点击右上角的「分享」按钮。
  • 选择「嵌入仪表板」,复制生成的iframe代码,粘贴到你的网站页面中。
    不过这个方法有局限性:你的网站域名必须在GA的授权列表里,样式几乎没法自定义,而且只能展示固定的已保存仪表盘。

2. 是否可以通过PHP、API或OAuth技术在自有网站中展示Google Analytics仪表盘对象?

当然可以!而且有几种不同的实现思路,适配不同场景:

思路一:PHP + OAuth + Google Analytics Embed API

这种方式用PHP处理OAuth的服务器端逻辑,避免前端处理复杂的授权流程,适合两种场景:

  • 展示自己网站的GA数据:用服务账号(Service Account)授权,PHP通过服务账号获取访问令牌,再传递给前端的Embed API,用户不需要登录就能查看数据。
  • 让用户查看自己的GA数据:用OAuth 2.0授权码流程,PHP处理授权请求、获取访问令牌和刷新令牌,前端用这些令牌调用Embed API。

PHP端服务账号授权的示例(需要先安装Google Client库):

require_once 'vendor/autoload.php';

$client = new Google\Client();
$client->setApplicationName('自定义GA仪表盘');
$client->setScopes([Google\Service\Analytics::ANALYTICS_READONLY]);
// 替换成你从Cloud Console下载的服务账号密钥文件
$client->setAuthConfig('service-account-key.json');
$client->setAccessType('offline');

// 获取访问令牌
$token = $client->fetchAccessTokenWithAssertion();
$client->setAccessToken($token);

// 将令牌传递给前端(比如通过JSON输出)
echo json_encode(['access_token' => $token['access_token']]);

前端拿到令牌后,就可以直接初始化Embed API渲染数据,不需要用户登录。

思路二:PHP + Google Analytics Data API(自定义渲染仪表盘)

如果需要完全自定义仪表盘的样式和交互,可以用PHP调用GA的官方API(GA4用Google Analytics Data API,UA用Core Reporting API)获取原始数据,然后用Chart.js、Highcharts等前端图表库自己绘制仪表盘:

  • 用PHP的Google Client库调用API,获取页面浏览量、用户数等指标数据。
  • 将数据传递给前端,用图表库生成可视化报表,完全掌控样式和布局。
    这种方式工作量大,但灵活性最高,适合需要深度定制的场景。

思路三:前端直接用OAuth授权

如果不想用PHP做中间层,也可以直接在前端处理OAuth授权,调用Embed API或Data API,但这种方式安全性稍弱,适合简单的小型应用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:42:54