如何在 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
。
以上集成即可开箱即用。
后续计划
Google Analytics(谷歌分析)是一款功能强大且免费的分析工具。我们目前正在研究迁移到 GA4,以及添加对发送事件的支持。如果您正在使用此 GA 模块,我们希望能得到您的反馈。