Cookie Banner 同意后怎么让第三方脚本重新加载?
我在用 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 也没收到数据,是不是漏了什么初始化步骤?
首先,确认
cookieConsent的值确实是'granted',可以在加载脚本前打个 console.log 来确认一下。其次,Google Analytics 需要初始化,你不仅需要加载脚本,还要调用相应的初始化代码。你可以在脚本加载完成后添加初始化逻辑。这里有一个示例:
这段代码会在脚本加载完成后执行初始化步骤,应该能解决你提到的问题。
最后,检查一下浏览器的网络请求,看看是否有相关的 GA 请求发出,有时候可能是 GA 的配置问题或者网络问题导致的。浏览器兼容性一般没问题,但也可以排除一下。
希望这能帮到你,如果还有问题再问我。
gtag('config')才能开始追踪。试试看这段代码,记得把 ID 换成你自己的。