【问题标题】:Migrate from analytics.js to gtag.js with CSP使用 CSP 从 analytics.js 迁移到 gtag.js
【发布时间】:2021-12-21 11:05:42
【问题描述】:

我有一个包含 analytics.js 和内容安全策略 (CSP) 的网站。我想添加一个 Google 广告再营销受众群体。

文档非常混乱,因为与 Google 分析一起使用的 gtag.js 似乎与 Google 跟踪代码管理器 (GTM) 相似但不同。

这是我当前的分析 sn-p:

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXX-1', 'auto');
ga('set', 'dimension1', 'value');
ga('set', 'userId', 'X');
ga('send', 'pageview');

Google 提供了将 GTM 与 CSP here 结合使用的说明。尽管 GTM 的 URL 与分析提供的使用 gtag.js 的 URL 不同。 叹息

无论如何,在梳理了一堆文档之后,我得出了这个结论:

(function(w,d,s,l,i){
  w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;var n=d.querySelector('[nonce]');n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','UA-XXX-1');
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config',
     'UA-XXX-1',
     {'user_id': uuid,
      'custom_map': {'dimension1': 'user_status'}});
gtag('event', 'user_status_event', {'user_status': user_status});

但 Google 分析受众数据仍为空白。

关于如何让它发挥作用的任何想法?

【问题讨论】:

    标签: javascript google-analytics google-tag-manager content-security-policy google-remarketing-audience


    【解决方案1】:

    我已经切换到这个,因为它不太复杂:

      <script nonce='{{ nonce }}' async src="https://www.googletagmanager.com/gtag/js?id=UA-XXX-1"></script>
      <script nonce='{{ nonce }}'>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());
        gtag('config',
             'UA-XXX-1',
             {'custom_map': {'dimension1': 'user_status'}});
        gtag('event', 'user_status_event', {'user_status': user_status});
      </script>
    

    如果有效我会更新。

    【讨论】:

      猜你喜欢
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      相关资源
      最近更新 更多