标签: google-tag-manager

确保在重定向前完成 Google Tag Manager 和 Google Analytics

我有一个指向我的网页的链接,我希望在将用户重定向到外部页面之前使用 Google Analytics 和 Google Tag Manager 跟踪用户。

我想确保在执行重定向之前完成 GA 和 GTM。最好的方法是什么?

一个简单的方法是使用 setTimeout。但是 1000 毫秒是太长还是太短?如果可以在跟踪实际完成时进行重定向,会更喜欢吗?。GTM 和 GA 跟踪是否在文档准备好之前完成?如果不能,这可以强制吗?

<html lang="sv">
<head>
<title></title>
<meta charset="utf-8"/>
<script src="~/Scripts/jquery-2.1.0.min.js"></script>
<!-- ANALYTICS CODE -->
</head>
<body>

<!-- TAG MANAGER CODE -->

<script language="javascript">
    $(function() {
        setTimeout(function() {
            window.location.replace("http://externalwebsite.com");
        },1000);
    });
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在 GTM 存储桶中,我有 Twitter 和 Facebook 再营销标签。

更新的解决方案

我已经更新了我的解决方案。因为我最感兴趣的是确保 GA 在重定向之前绝对触发,这会更好。

<html lang="sv">
<head>
    <title></title>
    <meta charset="utf-8"/>
    <script src="~/Scripts/jquery-2.1.0.min.js"></script>
    <script language="javascript">

        var redirect = function(waitFor) {
            return function(signal) {
                waitFor[signal] …
Run Code Online (Sandbox Code Playgroud)

javascript google-analytics google-tag-manager

6
推荐指数
1
解决办法
6603
查看次数

如何在自定义 HTML 中获取 Google 标签管理器变量值

我的数据层中有动态值,我想从 Google 跟踪代码管理器中的自定义 HTML 访问这些动态值

标签中的自定义 HTML:{用于跟踪订单的像素图像}

<img src="https://httpool-secure.net/p.ashx?o=59&e=51&f=img&t={{transactionId}}&etc={{transactionTotal}}" width="1" height="1" border="0"
Run Code Online (Sandbox Code Playgroud)

我的数据层对象:

[{
    "event": "ordersuccess",
    "transactionId": 86886,
    "transactionAffiliation": "Powai",
    "transactionTotal": 158,
    "transactionTax": 17.5,
    "transactionProducts": [{
        "sku": "2395",
        "name": "Masala Calzone ",
        "category": "OTHERS",
        "price": "70",
        "quantity": "2"
    }]
}, {
    "gtm.start": 1454584525056,
    "event": "gtm.js"
}, {
    "event": "gtm.dom"
}, {
    "event": "gtm.load"
}]
Run Code Online (Sandbox Code Playgroud)

数据层变量transactionId

数据层变量transactionTotal

现在,当我发布标签时,我收到错误:

在标签中发现未知变量“transactionTotal”。编辑标签并删除对未知变量的引用。

在标签中发现未知变量“transactionId”。编辑标签并删除对未知变量的引用。

如何将变量关联到我的标签???

google-analytics google-tag-manager

6
推荐指数
1
解决办法
1万
查看次数

Google Tag Manager 导致 SPA 中的整页重新加载 - React

当我在 React 上的 GTM 中添加触发器<a /><Link />元素它会在单击时导致整个页面重新加载,而不是仅重新呈现应用程序的一部分。

当我删除谷歌跟踪时,一切正常。有没有办法,如何配置 GTM 不影响应用程序的行为?

single-page-application google-tag-manager reactjs

6
推荐指数
1
解决办法
2414
查看次数

Google 跟踪代码管理器脚本未捕获类型错误:无法读取未定义的属性“测试”

我正在尝试在我的页面上实施Google 跟踪代码管理器脚本,但它抛出了错误。我将 html 页面精简为最简单的内容:

<html>
<head>
    <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','GTM-XXXX');</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但我仍然看到控制台中抛出以下错误:

Uncaught TypeError: Cannot read property 'test' of undefined
    at <anonymous>:14:12
    at gtm.js?id=GTM-XXXX:57
    at Object.Th (gtm.js?id=GTM-XXXX:59)
    at sf (gtm.js?id=GTM-XXXX:31)
    at uk.B (gtm.js?id=GTM-XXXX:90)
    at ag (gtm.js?id=GTM-XXXX:99)
    at jg (gtm.js?id=GTM-XXXX:39)
    at Array.a.push (gtm.js?id=GTM-XXXX:105)
    at Array.<anonymous> (gtm.js?id=GTM-XXXX:105)
    at Lf (gtm.js?id=GTM-XXXX:34)
Run Code Online (Sandbox Code Playgroud)

GA 调试器 Chrome 扩展显示脚本仍在“工作”,即所有正确的 ga 方法都在触发。我只是关心这个错误是什么。

请注意,我在 Firefox 和 Safari 中也遇到了相同的错误(跟踪看起来略有不同,但它是相同的错误):

TypeError: undefined is not an object (evaluating 'tryformurls.test')
    Global Code (Script Element …
Run Code Online (Sandbox Code Playgroud)

javascript google-analytics google-tag-manager

6
推荐指数
0
解决办法
1万
查看次数

为什么 Google 标签管理器的宏不会传递变量的对象内容

所以我在 GTM 中有一个自定义的 javascript 变量:

function(){
  var products = {{dlv ecommerce products}};
  var prodinfo = [];

  for(var i = 0; i < products.length; i++){
        prodinfo.push({
          'subTotal': products[i].price,
          'category': products[i].category,
          'sku': products[i].id,
          'quantity': products[i].quantity,
          'name': products[i].name
        });
    }
  return prodinfo;
}
Run Code Online (Sandbox Code Playgroud)

我正在为我的事件 event_process 运行此代码,并将其推送到数据层,成功地在该事件中为调试器填充:

[
  {
    subTotal: '149.99',
    category: 'main-product',
    sku: 'WB36',
    quantity: 1,
    name: 'The Revolutionary Wombo'
  },
  {
    subTotal: '0',
    category: 'accessory',
   sku: 'LL550',
   quantity: 1,
   name: '7-day warranty'
 }]
Run Code Online (Sandbox Code Playgroud)

Google Analytics 标签在调试器中成功显示了此信息,但在我的自定义 HTML 标签的调试器中:

"[object, Object],[object Object]"
Run Code Online (Sandbox Code Playgroud)

并且网络似乎没有选择键值对。标签在正确的事件上触发,而其他标签正在拾取对象数组,所以我很困惑为什么这个标签不能显示数组中的对象。我唯一能想到的可能是自定义 …

javascript arrays object google-tag-manager

6
推荐指数
0
解决办法
342
查看次数

Google 跟踪代码管理器中的 JavaScript,“=”输出为“\x3d”,如何修复?

标签如下:

<script type="text/javascript">
    var foo = "="
</script>
Run Code Online (Sandbox Code Playgroud)

但是当我在预览模式下查看它时,它显示:

<script type="text/gtmscript>
    var foo = "\x3d"
</script>
Run Code Online (Sandbox Code Playgroud)

我完全迷失了这个,这是在“自定义 HTML 标签”中。

我究竟做错了什么?

javascript escaping google-tag-manager

6
推荐指数
1
解决办法
3272
查看次数

如何缩小 Google 跟踪代码管理器

Google 跟踪代码管理器 (GTM) 会缩小所有标签和代码片段并提供缩小的服务。这很好。

但加载标签本身的 javascript 并未最小化。

例如: https: //www.googletagmanager.com/gtm.js? id=GTM-WPGCQNW

// Copyright 2012 Google Inc. All rights reserved.
(function(w,g){w[g]=w[g]||{};w[g].e=function(s){return eval(s);};})(window,'google_tag_manager');(function(){

var data = {
"resource": {
  "version":"137",
  "macros":[{
      "function":"__jsm",
      "vtp_javascript":["template","(function(){var a=new Date(document.querySelector('meta[name\\x3d\"article_date_original\"]').content);return a.toISOString()})();"]
...
Run Code Online (Sandbox Code Playgroud)

在这里您可以看到总的 javascript 并未缩小,但每一行的内容都缩小了。

我的问题是,是否有答案:如何链接到缩小版本?谷歌也提供这个吗?

google-tag-manager

6
推荐指数
1
解决办法
7834
查看次数

谷歌标签管理器脚本降低页面性能

当我按照谷歌的script强烈推荐将谷歌标签管理器放在我网站的头部时;

该脚本基本上延迟了 onload 事件,从而增加了页面的交互时间。

我通过在 3000 毫秒后使用setTimeout() function.

这极大地提高了网站的性能。但这不是由Google. 因为我知道 gtm 脚本有问题。有解决方法吗?

javascript pagespeed google-tag-manager pagespeed-insights

6
推荐指数
1
解决办法
983
查看次数

Google Analytics Web+App 事件配置:错误“gtag 未定义”

我正在尝试为网站设置 Google Analytics App+Web 的电子商务事件配置。请参阅此处的文档。

因为电子商务配置有很多自定义代码,所以我不能使用通用的 GA App+Web webevent 模板,所以在这种情况下我使用自定义 HTML 标签。

作为第一个测试,我尝试触发以下简单事件:

<script>

  gtag('event', 'blabla', {
  'test_param1': 'test_value_1'
});

</script>
Run Code Online (Sandbox Code Playgroud)

但是,事件没有正确发送到 GA;相反,控制台中返回以下错误:

未捕获的 ReferenceError:gtag 未定义

要重现,请参阅以下页面:https : //www.hema.nl/mooi-gezond/make-up/make-up-accessoires/toilettassen-1/toilettas-11830901.html

附加信息:

  • GA App+Web 基础初始化是(成功)通过 GTM 完成的,通过 GA App+Webconfiguration 模板标签。
  • 我还通过 GA App+Web webevent 模板标签通过 GTM 配置了一些其他(简单的非电子商务)GA App+Web 事件,这些事件成功发送到 GA。

有谁知道出了什么问题,为什么会出现控制台错误以及为什么事件没有发送到 GA?

google-analytics google-tag-manager

6
推荐指数
3
解决办法
1万
查看次数

谷歌标签管理器脚本注入

我最近的任务是清理我们的 GTM 标签。我注意到很多标签通过使用 JS 将它们注入到 DOM 中来包含远程脚本,例如:

var head = document.getElementsByTagName('head')[0]
var js = document.createElement('script');
js.src = 'https://cdn.somewhere.com/script.js';
head.appendChild(js);
Run Code Online (Sandbox Code Playgroud)

人们这样做而不是仅仅使用它有什么具体的原因吗?

<script type="text/javascript" src="https://cdn.somewhere.com/script.js" async></script>
Run Code Online (Sandbox Code Playgroud)

第一种方式有什么好处?有没有更好的方法来处理外部脚本?

javascript google-tag-manager

6
推荐指数
1
解决办法
3881
查看次数