【发布时间】:2022-01-21 13:58:47
【问题描述】:
我早些时候在我的 gatsby 项目中使用 gatsby-plugin-google-gtag 添加 2 个 Google Analytics 跟踪 ID,它运行良好,但不幸的是,我的项目已经有 gatsby-plugin-google-analytics,它不支持多个跟踪 ID,就像文档中显示的 gtag 插件一样.所以我找到了一篇文章,他们说要把它放在 html.js 文件中,所以在Customizing-html.js 的文档中,我使用cp .cache/default-html.js src/html.js 将我的文件复制到了 src/ 现在我想知道将我得到的脚本放在哪里来自谷歌分析......另外,我已经安装了 react-helmet.. 那么使用哪种方式放置脚本?
- 手动在头部?像这样 -
import React from "react";
import PropTypes from "prop-types";
export default function HTML(props) {
return (
<html {...props.htmlAttributes}>
<head>
<meta charSet="utf-8" />
<meta httpEquiv="x-ua-compatible" content="ie=edge" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, shrink-to-fit=no"
/>
{props.headComponents}
<script
async
src="https://www.googletagmanager.com/gtag/js?id=UA-123456789-1"
/>
<script
dangerouslySetInnerHTML={{
__html: `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-123456789-1');
`,
}}
/>
</head>
<body {...props.bodyAttributes}>
{props.preBodyComponents}
<div
key={`body`}
id="___gatsby"
dangerouslySetInnerHTML={{ __html: props.body }}
/>
{props.postBodyComponents}
</body>
</html>
);
}
HTML.propTypes = {
htmlAttributes: PropTypes.object,
headComponents: PropTypes.array,
bodyAttributes: PropTypes.object,
preBodyComponents: PropTypes.array,
body: PropTypes.string,
postBodyComponents: PropTypes.array,
};
OR tbh Idk 我必须在 html.js 中的什么地方插入这个.. 可能?
<Helmet>
{/* other stuff... */}
{/* Global site tag (gtag.js) - Google Analytics */}
<script async src={`https://www.googletagmanager.com/gtag/js?id=${googleAnalyticsId}`}></script>
<script>
{`
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', "${googleAnalyticsId}");
`}
</script>
</Helmet>
不胜感激任何帮助或文章链接可供阅读,因为我对谷歌分析非常陌生。我的 gatsby.config.js 文件中已经有一个跟踪代码,就像 { resolve: "gatsby-plugin-google-analytics", options: { trackingId: "UA-123456789-3", head: true, anonymize: true }, }, 只需要帮助放置第二个跟踪代码。
【问题讨论】:
标签: reactjs google-analytics gatsby react-helmet gatsby-plugin