问题描述
我花了很多时间来解决我的问题。我想使用 gatsby-plugin-gdpr-cookies
检查我自己的 cookie 的值。我硬编码,gatsby-gdpr-google-analytics
的值总是正确的,以证明插件是否正常工作。问题是,我的网站在 <script>
部分仍然没有用于 Google 分析的 <head>
。任何想法如何解决这个问题?我试图在 gatsby-config.js
的不同级别上移动插件,但没有任何效果。
这是我的配置:
plugins: [
{
resolve: `gatsby-plugin-gdpr-cookies`,options: {
googleAnalytics: {
trackingId: 'MY_TRACKING_ID',cookieName: 'gatsby-gdpr-google-analytics',anonymize: true,allowAdFeatures: false
}
},environments: ['production','development']
},
解决方法
Google 最近对其分析 API 进行了一些更改(迁移到 v4
),而且似乎某些插件尚未更新,因此无法使用。您会注意到,因为 trackingId
更改了其格式。
您可以跟踪此 GitHub thread 中的堆栈跟踪(来自插件所有者)。
此时,您可以进行一些试验:
-
升级依赖项,记住它可能还不起作用:
npm upgrade gatsby-plugin-gdpr-cookies
或yarn upgrade gatsby-plugin-gdpr-cookies
-
切换到旧的分析跟踪:在您的分析仪表板中设置它,获取新的跟踪标识符并将其用于:
trackingId: 'OLD_TRACKING_ID',
-
使用一些其他支持
v4
跟踪的依赖项切换到另一种基于 React 的方法,例如ga-4-react
。您需要使用<head>
组件自定义您的<Helmet>
标记以添加跟踪标识符。为避免同一模块的多个实例,您可能需要使用某些gatsby-browsers.js
API,onClientEntry
或onInitialClientRender
应该适合您的用例:exports.onClientEntry = () => { yourAnalyticsFunction() }