如何使用 NextJS 13 实施 Google Analytics?

2023-12-25

//GoogleAnalytics.tsx

"use client";
import Script from "next/script";

const GoogleAnalytics = ({ GA_TRACKING_ID }: { GA_TRACKING_ID: string }) => {
  return (
    <>
      <Script
        src={`https://www.googletagmanager.com/gtag/js?id=${GA_TRACKING_ID}`}
        strategy="afterInteractive"
      />
      <Script id="google-analytics" strategy="afterInteractive">
        {`
        window.dataLayer = window.dataLayer || [];
          function gtag(){dataLayer.push(arguments);}
          gtag('js', new Date());

          gtag('config', ${GA_TRACKING_ID});
        `}
      </Script>
    </>
  );
};

export default GoogleAnalytics;
//layout.tsx

import GoogleAnalytics from "@/components/molecules/GoogleAnalytics";
import { ReactNode } from "react";

export default function RootLayout({ children }: { children: ReactNode }) {
  return (
    <html lang="en">
      <GoogleAnalytics GA_TRACKING_ID={process.env.GA_TRACKING_ID} />
      <body>      
        {children}
      </body>
    </html>
  );
}

With this code, the script tags are properly filled with my ID G-XXXXXXX. scripts tags

但是,加载页面时,我在浏览器控制台中收到“G 未定义”错误。

VM689:6 Uncaught ReferenceError: G is not defined
    at <anonymous>:6:26
    at loadScript (webpack-internal:///(:3000/app-client)/./node_modules/.pnpm/[email protected] /cdn-cgi/l/email-protection_dpxg4zawgzznnxdt7it3f5d76m/node_modules/next/dist/client/script.js:91:19)
    at eval (webpack-internal:///(:3000/app-client)/./node_modules/.pnpm/[email protected] /cdn-cgi/l/email-protection_dpxg4zawgzznnxdt7it3f5d76m/node_modules/next/dist/client/script.js:182:17)
    at commitHookEffectListMount (webpack-internal:///(:3000/app-client)/./node_modules/.pnpm/[email protected] /cdn-cgi/l/email-protection_dpxg4zawgzznnxdt7it3f5d76m/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js:26416:26)

我已经尝试将 GoogleAnalytics 标签放置在 body 中以及 head.tsx 中。同样的错误。


I found what "G is not defined" stands for. G is actually the first letter of the tracking ID. By using template strings here, I didn't realize that the final code was wrong. I am not importing a string here, but literally the tracking ID which is therefore considered a variable. enter image description here

为了解决这个问题,我简单地添加了引号:

gtag('config', '${GA_TRACKING_ID}');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 NextJS 13 实施 Google Analytics? 的相关文章

  • Google 同意模式适用于 UA,但不适用于 GA4

    我无法使用 GA4 在没有 cookie 的情况下进行跟踪 我有 UA 和 GA4 媒体资源 我正在使用 gtag 同时跟踪它们 window dataLayer window dataLayer function gtag dataLay
  • Google Analytics 的两个单独的脚本标签?

    有谁知道为什么 Google Analytics 需要两个单独的脚本标签 具体来说 他们的说明建议用户将以下代码片段嵌入网页中以进行跟踪
  • Crash Firebase vs Crashlytics vs HockyApp

    我一直在应用程序中使用 Crashlytics 我们的客户端使用 HockeyApp 并且我是通过 Google Firebase 最近的更新了解到的 有谁有机会使用上述工具 您的概述和建议是什么 您是否喜欢其中一个 为什么 祝你有美好的一
  • 如何使用 Firebase 跟踪 iOS 的应用程序卸载/删除事件?

    我需要使用 Firebase 获取 iOS 的每月卸载计数 我知道对于 Android 有一个 app remove 事件我可以使用 即使它不是很准确 但现在已经足够了 从 iTunesConnect 或 Playstore 他们只提供用户
  • cxApi.chooseVariation() 始终返回 0

    我的网站是一个单页网络应用程序 我正在使用我的实验 ID 加载实验代码 加载完所有内容后 在显示页面时 我通过调用执行以下操作的函数来选择正确的模板 ga set expId experiment id var variation cxAp
  • 如何在 Next.js 中渲染页面之前重定向?

    我想知道在 Next js 中渲染页面之前是否可以重定向用户 现在我有这个 import useRouter from next router export default function RedirectPage const route
  • 监控用户在应用程序不同部分花费的时间

    是否可以监控我的应用程序不同部分 活动 所花费的时间相对于总使用时长的百分比 活动是出路吗 Thanks Firebase Analytics 无法监控应用程序不同部分所花费的时间百分比 对于事件 您可以计算某些操作 但不能计算操作的时间
  • 如何从谷歌分析中删除网站

    我是谷歌分析上多个网站的管理员 我可以删除其中一些吗 如果是 怎么办 你们中的许多人建议我删除我的个人资料 所以我的疑问是 1 我是多个项目的管理员 我只想删除其中一些 2 如果我删除我的个人资料 我会丢失所有物品吗 这是截至 2013 年
  • Next.js 使用 getServerSideProps 如何将属性从页面传递到组件?

    我正在尝试获取coingecko api访问比特币的实时价格 我正在尝试将 getServerSideProps 的返回道具传递给我的
  • 在 Next.js 13 中使用标记为“use client”的提供程序包装整个应用程序

    我正在 Next js 中开发一个小型应用程序 但我还没有完全理解客户端与服务器端渲染的情况 我一直在工作这个伟大的指南 https www misha wtf blog supabase auth next 13 pkce关于使用 Sup
  • Google Universal Analytics - 命令被忽略

    我正在使用 Google Universal Analytics 来跟踪页面浏览量 当我导航到具有 Google Analytics 网站实时功能的页面时 我可以看到 因此我的代码一定可以正常工作 然而 Chrome 一直在控制台中显示 I
  • next.js 环境变量未定义(Next.js 10.0.5)

    我正在使用 Next js 编写一个网站 并尝试添加谷歌标签管理器 我按照 Next js Github 示例上的教程进行操作 但由于某些原因我无法访问我的环境变量 它说我的变量未定义 我在项目文件夹中创建了一个文件 env local 与
  • 生产中未使用快速会话设置 Cookie

    我的应用程序分为客户端和服务器 客户端是托管在 Now sh 上的前端 Nextjs 应用程序 服务器是使用 Express 创建并托管在 Heroku 上的后端 因此域是 client app now sh 和 server app he
  • 在 NextJS 上运行开发服务器(在网络上)

    在使用 ReactJS 时 当我们使用命令 npm start 时 它会在 localhost 3000 以及网络 192 168 1 2 3000 上启动开发服务器 这非常简单 我可以通过进入该地址在所有设备上测试我的应用程序 最近我开始
  • 将远程和本地图像与 next/image 一起使用

    我正在尝试使用next image加载本地图像以及远程图像 我有我的本地图像public assets images以及AWS S3中的远程图像 我想在上传图像之前使用占位符图像 来自本地 然后在上传后将其替换为远程图像 我已经添加了dom
  • Google Analytics 正则表达式排除短语

    我正在使用以下 URL 创建内容分组 my category something my category somethingelse my category product1 brand color my category product2
  • 如何使用新的analytics.js跟踪多个帐户?

    我需要使用 Google 的新的analytics js 跟踪一个页面上两个帐户的综合浏览量 有大量教程和示例如何使用较旧的 ga js 进行操作 但我发现的只是这个分析文档页面 https developers google com an
  • 在 Google Analytics 中跟踪应用程序版本

    我正在使用谷歌分析模块 https marketplace appcelerator com apps 5081 2014113336 https marketplace appcelerator com apps 5081 2014113
  • 如何跟踪推文按钮点击次数?

    我想通过 Google Analytics 跟踪推文按钮点击 但推文按钮是一个包含来自另一个域的内容的 iframe 是否有一些技巧可以为推文按钮点击添加回调 或者 您可以简单地将事件添加到您的 div 中 然后等待该 div 被单击 例如
  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe

随机推荐

  • 从 Web 应用程序中删除经过 Firebase 身份验证的用户

    我想添加选项以从我的 Web 应用程序中从经过 Firebase 身份验证的用户列表中删除用户 我使用的身份验证方法是电子邮件和密码身份验证 该应用程序是移动单页应用程序 基于js html css 文件 浏览器应用程序 我可以使用 fir
  • LINQ TO Nhibernate 计数

    我正在尝试使用 LINQ to Nhibernate 来获取数据库中表的计数 但是 我正在运行的代码是拉回表中的所有记录 而不是从表中运行 select count 这是我的代码 public int GetTotalCount Func
  • 我需要将 strtol 的结果转换为 int 吗?

    以下代码不会对 g 4 1 1 发出警告 并且 Wall int octalStrToInt const std string s return strtol s c str 0 8 我期待一个警告 因为 strtol 返回一个long i
  • LINQ 表达式树是真正的树吗?

    LINQ 表达式树是否是正确的树 如图中所示 有向或无向 维基百科似乎不太同意 而没有循环 以下 C 表达式的表达式树的根是什么 string s gt s Length 表达式树如下所示 其中 gt 表示可访问其他节点的节点的属性名称 g
  • ngOninit 变量未在 html Angular 4 中绑定

    在谷歌地图上工作 能够显示地图 我想显示当前位置但不显示 export class AppComponent title ngOnInit if navigator geolocation navigator geolocation get
  • Xml 中的非法字符

    我有一个 PHP 文件 它根据从多个来源导入的数据生成 Xml 站点地图 由于导入数据的一行中存在非法字符 我的站点地图目前格式不正确 但我正在努力将其删除 该字符看起来代表 平方 或上标 2 并且被表示为正方形 我尝试将其粘贴到十六进制编
  • Glide - 如何并行加载多个图像?

    我正在尝试一个简单的测试 MainActivity java public class MainActivity extends AppCompatActivity private static final int N 20 private
  • numeric_limits::digits10 的含义是什么

    numeric limits digits10 的确切含义是什么 stackoverflow中的一些其他相关问题让我认为这是双精度的最大精度 但是 当精度大于 17 2 numeric limits digits10 时 以下原型开始工作
  • 向某些用户显示管理消息的最佳方式?

    我正在用 PHP MySQL jQuery 构建一个社交网站 用户登录我的网站后 我想查询数据库并获取管理员公告 如果存在 这将是一个消息框 在页面上向所有用户显示 但它会有一个X单击它并且不再显示它 直到管理员发布新的公告消息 因此 如果
  • 等到线程执行结束后再执行下一个方法

    我有一个 JFrame 子类 它管理我的 UI 并调用 Item 对象的方法来导入数据库中的项目 public TestGUI throws IOException initComponents Item importItems progr
  • 带有自定义cacheResolver的spring缓存

    我想要动态缓存名称和 spring4 1 允许 http docs spring io spring docs current spring framework reference html cache html 从 Spring 4 1
  • 加载 MySQLdb 模块时出错:libmysqlclient.so.20:无法打开共享对象文件:没有这样的文件或目录

    我有一个正在运行的 django 项目 由于某些原因 我必须删除当前的 mysql 版本并在我的计算机中安装不同的 MySQL 版本 但现在当我尝试运行该程序时出现如下错误 raise ImproperlyConfigured Error
  • Golang通道,执行顺序

    我正在学习 Go 并且遇到了以下代码片段 package main import fmt func sum a int c chan int sum 0 for v range a sum v c lt sum send sum to c
  • CodeIgniter 验证码验证

    我创建了一些表单 用于将数据插入数据库并检查数据是否是从人类发送的 我使用了已经集成到 CI 中的验证码 这是我的控制器 checkrules array img path gt realpath APPPATH upload checki
  • 如何在 Tkinter 中获取屏幕尺寸?

    我想知道是否可以使用 Tkinter 计算屏幕尺寸 我想要这个 这样可以使程序在屏幕中央打开 import tkinter as tk root tk Tk screen width root winfo screenwidth scree
  • [[15.0.0,

    图书馆com google android gms play services measurement base 15 0 0 15 0 0 16 0 0 16 0 0 处的各个其他库正在请求 但解析为 16 0 0 禁用插件并使用 gra
  • 由于从 float 自动转换为 double,std::num_put 出现 nan-boxing 问题

    我在用着这个帖子 https stackoverflow com a 53691931 3336423用一些额外的信息来扩展 nan 值和这个帖子 https stackoverflow com a 35272035 3336423修改st
  • PHP - 自动创建多维数组

    所以这是输入 in a b c d value 以及所需的输出 out a b c d value 有任何想法吗 我尝试过以下代码 但没有任何运气 in a b c d value str a b c d str implode explo
  • spring boot setContentType 不起作用

    我正在尝试在 spring boot 1 2 2 上返回图像我应该如何设置内容类型 以下内容都不适合我 这意味着响应标头根本不包含 内容类型 标头 RequestMapping value files2 file name method R
  • 如何使用 NextJS 13 实施 Google Analytics?

    GoogleAnalytics tsx use client import Script from next script const GoogleAnalytics GA TRACKING ID GA TRACKING ID string