惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
V2EX
大猫的无限游戏
大猫的无限游戏
腾讯CDC
博客园 - Franky
WordPress大学
WordPress大学
Jina AI
Jina AI
GbyAI
GbyAI
云风的 BLOG
云风的 BLOG
B
Blog RSS Feed
Last Week in AI
Last Week in AI
The Cloudflare Blog
V
Visual Studio Blog
P
Proofpoint News Feed
博客园 - 叶小钗
L
LangChain Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Recorded Future
Recorded Future
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
罗磊的独立博客
雷峰网
雷峰网
博客园 - 【当耐特】
Microsoft Security Blog
Microsoft Security Blog
L
LINUX DO - 热门话题
Cisco Talos Blog
Cisco Talos Blog
L
Lohrmann on Cybersecurity
Martin Fowler
Martin Fowler
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
Engineering at Meta
Engineering at Meta
C
Cybersecurity and Infrastructure Security Agency CISA
小众软件
小众软件
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Recent Announcements
Recent Announcements
T
Threat Research - Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
量子位
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
宝玉的分享
宝玉的分享
D
DataBreaches.Net
T
The Exploit Database - CXSecurity.com
Vercel News
Vercel News
IT之家
IT之家
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
T
Troy Hunt's Blog
aimingoo的专栏
aimingoo的专栏

十月指南

使用AI开发一个应用最好的时间是现在 Kimi K2 发布并开源,实测效果确实很强! Vibe Coding实战:从翻车到上线,我开发了一款提前还贷计算器小程序 告别熬夜写代码!AI编程让我用Vibe Coding轻松上线 10 + 工具 用Vibe Coding方式打造 AI 内容创作平台 我连代码都没写,却做出JSON格式化工具—Vibe Coding了解一下 GPT 4.1、DeepSeek R1、Claude 3.7 代码生成横评,谁才是设计稿还原之王? AI 时代程序员生存指南 Cursor+Figma MCP 设计稿还原如此简单 MCP(模型上下文协议)是什么?它如何简化与API的AI集成 号外!我用Trae+Claude3.7开发的小程序上线啦 30分钟开发完成!Trae+Claude 3.7 打造小程序全流程揭秘! 5 分钟打造超酷小程序设计稿,Trae+Claude 3.7 太神了! 一句话生成设计稿,Trae+Claude 3.7 Sonnet,设计师也要被AI取代了 一句话生成应用!程序员效率翻倍的AI代码生成工具大盘点 我用AI创作了一首歌:Suno、海绵音乐、天工AI音乐生成效果测评 从哪吒2热潮到AI短片创作:AI视频实战测评 shadcn_ui:2024年最受欢迎的前端项目 实战:基于 Next.js+MoonShot API 开发一个 Github Trending 总结助手 技术篇:构建与部署 技术篇:Next.js 多环境配置 技术篇:数据库-Prisma 技术篇:身份验证-NextAuth 技术篇:CSR、SSR、SSG、ISR 与客户端、服务端组件 技术篇:Next.js 路由与页面管理 技术篇:Next.js 项目结构 技术篇:Next.js 简介与概览 技术篇:从零开始掌握 Tailwind CSS 设计篇:独立开发设计入门 开篇:走上独立开发之路 Ollama:本地大模型运行指南 TooTool.net 理解 CSS 中的 Containing Block(包含块) 独立开发者工具大全(持续更新) TimeFlow 如何快速拥有一个技术博客 一个人从零开发上线一款App需要多少钱?终于有答案了! 深入理解HTTPS Nginx实战 Flutter Platform Channel 使用与源码分析 Android SDK类产品开发总结 360插件化框架 RePlugin 之 ClassLoader Hook Mac下Charles抓包配置 十一大西北体验 利用ContentProvider实现同步Binder macOS修改Android模拟器Hosts 走过 登山记 期待成长 小雨 静夜思 关于
技术篇:Google 统计服务
十月 · 2024-11-20 · via 十月指南

学习目标:掌握 Google 统计服务接入方式

Google Analytics 是一个功能强大的工具,帮助开发者和网站所有者追踪网站流量、用户行为、以及其他重要的分析数据。将 Google Analytics 集成到项目中,可以为你提供深刻的用户洞察,帮助优化网站性能。本文将详细介绍如何在 Next.js 13 中接入 Google Analytics。

为什么使用 Google Analytics? #

Google Analytics 提供了丰富的功能和数据,包括:

  • 实时数据:实时监控用户在网站上的活动。
  • 受众分析:了解用户的地理位置、设备、浏览器等信息。
  • 行为分析:分析用户在网站上的操作路径和停留时间。

准备工作 #

在开始集成 Google Analytics 之前,你需要完成以下准备工作:

  1. 创建 Google Analytics 帐号:如果你还没有 Google Analytics 帐号,可以通过 Google Analytics 官网 创建一个新的账号,并设置一个新的属性。
  2. 获取跟踪 ID:在 Google Analytics 中,为你的网站创建一个新的属性,并获取跟踪 ID,格式通常为 G-XXXXXXXXXX
  • 创建账号
image.png
  • 创建媒体资源
image <em>1</em>.png
  • 商家描述
image <em>2</em>.png
  • 业务目标
image <em>3</em>.png
  • 数据收集
image <em>4</em>.png
  • 设置数据流
  • 设置 Google 代码
image <em>7</em>.png
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-LZHFHGMSKZ"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-LZHFHGMSKZ');
</script>

在 Next.js 13 中集成 Google Analytics #

在 Next.js 13 中集成 Google Analytics 主要分为以下几个步骤:安装必要的依赖,配置 Google Analytics 跟踪代码,并在组件中加载 Google Analytics 脚本。

目前 Next.js 已经发布了实验性质的三方包,由于还没有正式的 Release,因此我们还用传统的方式集成。 https://nextjs.org/docs/app/building-your-application/optimizing/third-party-libraries#google-analytics

配置 Google Analytics 跟踪代码 #

在 app 目录下创建 google-analytics.js

// google-analytics.js
"use client";

import Script from "next/script";

const GoogleAnalytics = () => {
  const GA_TRACKING_ID = "G-LZHFHGMSKZ";

  return (
    <>
      <Script
        strategy="afterInteractive"
        src={`https://www.googletagmanager.com/gtag/js?id=${GA_TRACKING_ID}`}
      />
      <Script
        id="gtag-init"
        strategy="afterInteractive"
        dangerouslySetInnerHTML={{
          __html: `
                      window.dataLayer = window.dataLayer || [];
                      function gtag(){dataLayer.push(arguments);}
                      gtag('js', new Date());
                      gtag('config', '${GA_TRACKING_ID}', {
                      page_path: window.location.pathname,
                      });
                    `,
        }}
      />
    </>
  );
};

export default GoogleAnalytics;

然后将代码 app/layout.js

import GoogleAnalytics from "./google-analytics";

export default function RootLayout({ children }) {
  return (
    // https://github.com/pacocoursey/next-themes
    // 不加suppressHydrationWarning会有警告
    <html lang="en" suppressHydrationWarning>
      <body>
        <GoogleAnalytics />
        <AuthProvider>
          <ThemeProvider attribute="class" defaultTheme="dark">
            <Suspense fallback={<div>Loading...</div>}>{children}</Suspense>
          </ThemeProvider>
        </AuthProvider>
      </body>
    </html>
  );
}
  • Script 组件next/script 组件用于动态加载第三方脚本,strategy="afterInteractive" 表示在页面交互之后加载脚本,以减少初始加载时间。

测试集成是否成功 #

在你的网站上成功集成 Google Analytics 后,你可以通过以下方式进行测试:

  1. 浏览器控制台:打开浏览器控制台,导航到你的 Next.js 网站,并确保没有出现与 Google Analytics 相关的错误。
  2. 实时数据:登录到 Google Analytics 仪表板,导航到“实时数据”部分,查看是否可以看到当前访问你网站的用户数据。
image <em>8</em>.png

进阶功能:事件追踪 #

除了基本的页面访问数据外,Google Analytics 还支持事件追踪,让你能够跟踪用户在网站上的特定操作,如点击按钮、提交表单等。

自定义事件追踪 #

你可以通过 gtag 函数手动发送事件到 Google Analytics。例如,在一个按钮点击事件中发送一个自定义事件:

// 在页面或组件中
const handleClick = () => {
  window.gtag('event', 'button_click', {
    event_category: 'button',
    event_label: 'cta_button',
  });
};

return <button onClick={handleClick}>点击我</button>;

最佳实践 #

使用环境变量管理跟踪 ID #

为了确保生产环境和开发环境的配置分离,建议使用环境变量管理 Google Analytics 的跟踪 ID。你可以在 .env 文件中定义跟踪 ID:

NEXT_PUBLIC_GA_TRACKING_ID=G-XXXXXXXXXX

然后在代码中使用它:

const GA_TRACKING_ID = process.env.NEXT_PUBLIC_GA_TRACKING_ID;

在开发环境中禁用 Google Analytics #

为了避免在开发过程中生成不必要的分析数据,你可以在开发环境中禁用 Google Analytics。

if (process.env.NODE_ENV === 'production') {
  // 加载 Google Analytics 脚本
}

总结 #

将 Google Analytics 集成到 Next.js 13 项目中,可以帮助你更好地了解用户行为和网站性能。通过本文的步骤,你可以轻松配置 Google Analytics,并确保在不同环境中合理管理和使用跟踪信息。通过事件追踪等进阶功能,你还可以获得更精细的用户行为数据,从而优化网站内容和用户体验。