如何动态更改谷歌标签帐户ID - 角度应用程序



我正在尝试在我的应用程序中实现谷歌标签管理器(angular 5应用程序(

但是,我的应用程序正在为一些客户(公司帐户(提供服务,这些客户(公司帐户(从多个路径访问该应用程序,例如:www.myapp.com/dymamiPath123(完全动态 - 不能硬编码(

我需要根据来自服务器的数据更改Google标签ID(我将每个帐户谷歌标签ID保存在我的数据库中(

我目前的索引中有这个.html

 <script>
    (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;
        f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'dataLayer', '** id ***');
</script>

如何在部署应用之前\之后更改它?更改函数中的 ID 就足够了吗?(不是我知道怎么做(还是更改所有呈现的标签?

谢谢!

这看起来有点旧,但我有同样的问题。根据引用者的不同,同一页面必须使用GTM或其他页面。这是因为相同的 JSP 用于 severeal 客户端。

所以我添加了一个变量'${gtmIdentificador}',在那里我加载了GTM。我看工作。

这在Java上使用JSP。您可以使用 chrome 上的 dataslayer pluing 来测试它。

<script> (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;
f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','${gtmIdentificador}');</script>

我的应用程序中遇到了类似的情况,在不同的环境(dev/stage/prod(中,我们有不同的谷歌标签ID。要在脚本标记中解决此问题,请根据域名动态文件路径将脚本保留在三个单独的文件中

gta.script.dev.js
gta.script.stage.js
gta.script.prod.js
<script>
// change to hostname
let domain = window.location.host;
let src = './path/gta.script.prod.js';
if (domain === "stage.domain.name") {
    src = './path/gta.script.stage.js';
}
else if (domain === "prod.domain.name") {
    src = './path/gta.script.prod.js';
}
else if (domain === "stage.domain.name") {
    src = './path/gta.script.prod.js';
}
function addScript(src) {
    var s = document.createElement('script');
    s.setAttribute('src', src);
    document.body.appendChild(s);
}
addScript(src);

为什么不只使用一个 GTM 并为要向其发送信息的 Web 属性创建一个查找表?

因此,您只需要一个始终可用的变量(我们称之为 origin(。并且您使用特定来源或通用来源的触发器设置所有标签,但始终使用表格,以便根据来源将点击发送到不同的 GA 帐户。

最后,如果您想

拥有一个包含所有数据的中央网络媒体资源,则可以选择复制匹配(在用户一级使用自定义维度来保存来源(。这是我们的导师:https://www.simoahava.com/gtm-tips/send-google-analytics-tag-multiple-properties/

希望对您有所帮助!

相关内容

最新更新