跳转至主要内容
Deno 2 终于来了 🎉️
了解更多
Google Analytics with Deno

如何在 Deno Deploy 中使用 Google Analytics(谷歌分析)

Google Analytics(谷歌分析) 是一种流行且简单的方法,可以获取您网站的基本分析数据。虽然在客户端放置 GA 的 JavaScript 代码片段很容易,但当访问者使用广告拦截器时,它就无法工作。(例如,超过 70% 的受众使用广告拦截器。)使用服务器端 GA 不仅可以避免广告拦截器,而且更可靠、更准确。

Deno Deploy

Deno Deploy 是我们的边缘计算服务,可在全球范围内运行现代 JavaScript 和 TypeScript。Deno Deploy 上的服务具有高可用性和最低延迟,可用于各种用例,从静态网站和电子商务商店到 OAuth 微服务。(您正在阅读的这篇博客就托管在 Deno Deploy 上!)

无论您在 Deno Deploy 上的用例是什么,现在您都可以轻松添加 Google Analytics(谷歌分析),以更好地了解用户如何与您的网站或服务进行互动。

示例

我们编写了一个 GA 集成模块,可以直接导入到您的 Deno CLI 或 Deploy 项目中。请注意,该模块目前支持经典的 Universal Analytics,但我们正在研究迁移到 GA4。

import { createReporter } from "https://deno.land/x/g_a/mod.ts";
import { serve } from "https://deno.land/std/http/server.ts";

const ga = createReporter({ id: "UA-123" });

serve((req, connInfo) => {
  let err;
  let res;
  const start = performance.now();
  try {
    res = new Response("hello world");
  } catch (e) {
    err = e;
  } finally {
    ga(req, connInfo, res, start, err);
  }
  return res;
});

或者在 Deno Deploy playground 中尝试此示例:server-side-ga

如果您使用的是 Deno 的 HTTP 中间件服务器 oak,那么您也可以将 GA 作为中间件添加。

import { createReportMiddleware } from "https://deno.land/x/g_a/mod.ts";
import { Application } from "https://deno.land/x/oak/mod.ts";

const ga = createReportMiddleware({ id: "UA-123" });
const app = new Application();

app.use(ga);
app.use((ctx) => {
  ctx.response.body = "Hello World!";
});

app.listen();

您还可以在 Deploy 设置中将您的 UA 属性设置为环境变量 GA_TRACKING_ID

Setting GA_TRACKING_ID as an environmental variable

以上集成即可开箱即用。

Google Analytics Real-time Reporting

后续计划

Google Analytics(谷歌分析)是一款功能强大且免费的分析工具。我们目前正在研究迁移到 GA4,以及添加对发送事件的支持。如果您正在使用此 GA 模块,我们希望能得到您的反馈