Google Analytics与Nextjs

3gtaxfhh  于 2023-04-30  发布在  Go
关注(0)|答案(1)|浏览(220)

我一直在尝试使用Google Analytics与Next。js和我通过观看这个YouTube视频配置了它-https://www.youtube.com/watch?v=lMSBNBDjaH8
基于视频,我在_document中添加了这两个脚本。js

<script async src={`https://www.googletagmanager.com/gtag/js?id=${process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS}`}/>
<script dangerouslySetInnerHTML={{
                               __html: `
                               window.dataLayer = window.dataLayer || [];
                               function gtag(){dataLayer.push(arguments);}
                               gtag('js', new Date());
                               gtag('config', '${process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS}', {
                               page_path: window.location.pathname,
                            });
                          `,
                        }}
                    />

在_app中添加以下代码。tsx -

useEffect(() => {
    const handleRouteChange = (url: any) => {
      pageview(url);
    };

    //When the component is mounted, subscribe to router changes
    //and log those page views
    router.events.on("routeChangeComplete", handleRouteChange);

    // If the component is unmounted, unsubscribe
    // from the event with the `off` method
    return () => {
      router.events.off("routeChangeComplete", handleRouteChange);
    };
  }, [router.events]);

并在lib/ga中添加了以下代码。ts -

export const pageview = (url: any) => {
    if (typeof window !== 'undefined') {
        (window as any)?.gtag('config', process.env.NEXT_PUBLIC_GOOGLE_ANALYTICS, {
            page_path: url,
        });
    }
};

export const event = ({ action, params }) => {
    if (typeof window !== 'undefined') {
        (window as any)?.gtag('event', action, params);
    }
};

我面临一些问题-
1.如果页面没有文档标题,它将不会在“实时”选项卡中显示页面名称。有没有什么方法可以动态添加文档标题在每个网页或网页名称在谷歌分析使用的网址?

1.为了测试,我在其中一个页面中添加了文档标题,并且它在实时选项卡中工作。但在互动〉页面和屏幕选项卡下,我看不到页面名称,因为我们可以在下面的屏幕截图中看到。
如果有人知道如何解决上述问题,需要非常需要的帮助。非常感谢

bfnvny8b

bfnvny8b1#

这里有很多事情要注意。

  1. GA 4中的真实的报告被窃听,如果你能帮助它,就应该避免。在进行专业的企业跟踪实现时,我们通常根本不使用它。相反,我们研究网络呼叫。
  2. GA 4中的“报告”部分基于聚合不良的数据快照。一般的建议是避免它,总是使用资源管理器代替。资源管理器是数据保留设置的一个主题,但它要精确得多。
    1.当您执行gtag('event', action, params)时,gtag将args推送到dataLayer,gtag正在监听它。js.Gtag.js当它看到一些东西被推送到DL时,它会抓取该数据并开始形成分析请求。分析请求包含的数据比您通常推送的数据多几倍。页面标题就是其中之一。它试图从页面上的url、referrer、useragent等等为你抓取它。这些字段中的大多数都可以通过设置参数覆盖。可以通过设置page_title参数来覆盖页面标题。以下是有关字段的更多文档: www.example.com
    1.如果您在实现中缺少适当的文档,就像您试图使用gtag一样,这样的覆盖是有意义的。js从后端。虽然这是可以做到的,但它过于复杂,因为你必须补偿不正确/不一致的客户端ID和会话ID。这是个问题你可能不想走这条路。
  3. GTM。如果可以的话就用它。它简化了跟踪中的许多事情,为您抽象了许多不必要的复杂性。当需要跟踪后端数据时,只需将其发送到前端,然后通过dataLayer与GTM进行通信。

相关问题