Cookie Banner 同意后怎么让第三方脚本重新加载?

晨曦 Dev 阅读 3

我在用 React 做一个 GDPR 合规的 Cookie Banner,用户点击“接受”后,我想动态加载 Google Analytics 这类第三方脚本。但试了几次,脚本好像没生效,是不是我加的方式不对?

目前我是这样写的:

useEffect(() => {
  if (cookieConsent === 'granted') {
    const script = document.createElement('script');
    script.src = 'https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID';
    script.async = true;
    document.head.appendChild(script);
  }
}, [cookieConsent]);

但控制台没报错,GA 也没收到数据,是不是漏了什么初始化步骤?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
小克培
小克培 Lv1
光把脚本插进去没用,你漏了初始化配置那一步,脚本加载完后还得手动调一下 gtag('config') 才能开始追踪。试试看这段代码,记得把 ID 换成你自己的。

useEffect(() => {
if (cookieConsent === 'granted') {
window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
window.gtag = gtag;

const script = document.createElement('script');
script.src = 'https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID';
script.async = true;
script.onload = () => {
window.gtag('config', 'GA_MEASUREMENT_ID');
};
document.head.appendChild(script);
}
}, [cookieConsent]);
点赞
2026-03-03 21:46