gpt4 book ai didi

javascript - 更新同意后未设置任何分析 cookie

转载 作者:行者123 更新时间:2023-12-05 00:25:17 28 4
gpt4 key购买 nike

我正在使用谷歌标签管理器和一个引用默认谷歌分析脚本的标签。我的解决方案基于来自这些资源的信息:

  • https://www.iubenda.com/en/help/27137-google-consent-mode
  • https://www.simoahava.com/analytics/consent-settings-google-tag-manager/
  • https://www.simoahava.com/analytics/consent-mode-google-tags/

  • 代码很简单( commit):
    index.html:定义 gtag()并将拒绝设置为所有存储的默认值
      <script>
    window.dataLayer = window.dataLayer || [];
    function gtag() { window.dataLayer.push(arguments); }
    gtag('consent', 'default', {
    ad_storage: 'denied',
    analytics_storage: 'denied',
    personalization_storage: 'denied',
    functionality_storage: 'granted',
    security_storage: 'granted',
    wait_for_update: 400,
    });
    然后从 localStorage 加载用户配置并调用更新:
    handleCookies(preferences) {
    console.log('handleCookies callback');
    gtag('consent', 'update', {
    ad_storage: preferences.ad,
    analytics_storage: preferences.analytics,
    personalization_storage: preferences.personalization,
    });
    console.log(window.dataLayer);
    },
    到目前为止一切顺利,因为我看到事件队列在 dataLayer 中更新了:
    chrome console
    随着同意的设置,我预计现在将为 Google Analytics 设置 cookie。但他们不见了。我犯了什么愚蠢的错误?
    cookies box
    GTM configuration

    最佳答案

    您的 update命令发生在浏览器呈现 GTM 容器片段之后,因此仅在处理完所有页面触发器之后才处理更新命令。
    您需要延迟标签以在稍后触发时触发(例如 DOM 就绪)或更改脚本的工作方式以推送 'update'尽快指挥。
    或者,您可以使用模板库中的同意模式标签模板通过 GTM 编排所有内容。该模板使用 GTM 的同步同意 API,可确保立即应用同意状态,而不是只应用一次 dataLayer队列被处理。

    关于javascript - 更新同意后未设置任何分析 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70266113/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com