标签: google-tag-manager

Google跟踪代码管理器未加载javascript,错误消息"匿名函数"

我已在我的网站上安装了Google跟踪代码管理器,并使用它将一些Javascript加载到我的网站上.但是,GTM不再加载,我的Javascript没有加载,错误代码不是很有帮助.

这是我网站上的GTM代码:

<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MFQ99J"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<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=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-MFQ99J');</script>
<!-- End Google Tag Manager -->
Run Code Online (Sandbox Code Playgroud)

这是我在GTM标签中包含的代码:

<!-- Qualaroo for your website -->
<!-- Paste this code right after the <body> tag on every page of your site. -->
<script type="text/javascript">
  var _kiq = _kiq || [];
  (function(){
    setTimeout(function(){
    var d = document, f = d.getElementsByTagName('script')[0], s = d.createElement('script'); s.type = 'text/javascript';
    s.async = true; s.src = '//s3.amazonaws.com/ki.js/50553/aS-.js';f.parentNode.insertBefore(s, f);
    }, 1); …
Run Code Online (Sandbox Code Playgroud)

javascript anonymous-function google-chrome-devtools google-tag-manager

18
推荐指数
2
解决办法
3万
查看次数

使用AngularJS的Google跟踪代码管理器?

如何将GTM与Angular一起使用?

我正在尝试使用此代码加载新的部分时触发(虚拟)网页浏览事件:

dataLayer.push({
    'event' : 'pageview',
    'pageview' : $location.path(),
    'virtualUrl' : $location.path()
 });
Run Code Online (Sandbox Code Playgroud)

但我没有看到事件触发(我正在使用Google Analytics Chrome调试扩展程序来查看已触发的事件).

javascript google-analytics google-analytics-api angularjs google-tag-manager

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

GTM在单页面应用中随机跳过初始网页浏览

Pageview在Google跟踪代码管理器中有跟踪SPA网页浏览量的标记,与本指南中描述的相同.基本上,它是具有链接的Google Analytics ID的通用分析,它是在历史记录更改All Pages触发的(在某些时候,触发器也被添加但没有成功).

在我当前的应用程序中,GTM会Pageview在没有异步解析器的所有路由上的初始页面浏览量上跳过标记.通常路由有时会触发标记(5次中的1次),这可能会有所不同,具体取决于条件(缓存与未缓存,本地主机与生产).

在具有长持续时间(> 1s)的解析程序的路径上,Pageview始终在初始网页浏览中触发标记(5次中的5次).

Pageview应用初始化(pushState)后,在所有路由上正常触发标记.

GTM调试控制台和GA实时监控确认了此行为.

设置似乎是推荐的,GTM代码段被加载<head>,Angular 2应用程序在末尾加载<body>.

<html>
  <head>
    <script>/* Google Tag Manager snippet */</script>
    ...
  </head>

  <body my-app>
    ...
    <script src="my-app-bundle.js"></script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Angular 2像往常一样被引导:

platformBrowserDynamic().bootstrapModule(MyAppModule);
Run Code Online (Sandbox Code Playgroud)

我试图在前后移动GTM代码段my-app-bundle.js,甚至用同步代替它:

<script>
  window.dataLayer = ...
</script>
<script src="https://www.googletagmanager.com/gtm.js?id=..."></script>
Run Code Online (Sandbox Code Playgroud)

默认代码段没有区别.

我通过反复试验发现,Pageviews如果应用程序以相当大的延迟,200-1000毫秒进行自举,则开始在初始页面浏览量上正常工作(起初DOMContentLoaded似乎有诀窍,但延迟还不够):

setTimeout(() => {
  platformBrowserDynamic().bootstrapModule(MyAppModule);
}, 1000);
Run Code Online (Sandbox Code Playgroud)

我希望这个问题对于使用SPA/Angular 2应用程序完成GTM的专家来说很熟悉. …

google-analytics single-page-application google-tag-manager angular2-routing angular

18
推荐指数
1
解决办法
1513
查看次数

如何使用 next/script 组件 (Next.js 11) 加载 Google 跟踪代码管理器?

ScriptNext.js v11 发布了一个具有不同策略的新组件。

建议加载带afterInteractive策略的 Google TagManager。

我试过了

// _app.js

import Script from 'next/script';

class MyApp extends App {
  public render() {
    const { Component, pageProps } = this.props;

    return (
      <>
        <Script strategy="afterInteractive">
          {`(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-XXXXXXX');`}
        </Script>
        <Component {...pageProps} />
      </>
    );
  }
}

export default MyApp;
Run Code Online (Sandbox Code Playgroud)

它工作正常,它加载谷歌标签管理器,但问题是它在每个页面导航上注入相同的脚本,这会产生重复的标签。

如何使用新Script组件?

javascript google-tag-manager next.js

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

React / Next.js 中 Google Optimize 的一般问题

标题可能看起来有点含糊,但这是因为我目前在将 Google Optimize 集成到我们的 React / Next.js 项目中时遇到了多个问题。我将尝试尽可能详细地解释我的问题和行动。但是,如果有不清楚的地方,请告诉我。

问题:

  1. 虽然头顶添加了谷歌优化,但我们总是会遇到页面闪退。这意味着用户首先看到我们的页面,然后什么都没有(异步隐藏功能启动),然后页面再次发生变化。
  2. 我创建了一个实验,可以重新排序导航链接、删除一个导航链接并更改我们的 CTA 文本。出于测试目的,我已将变体设置为 100%。会发生什么(与问题 1 相关),是我们首先看到我们的原始网页,然后是更改,然后又是我们删除了一个导航链接的原始网页。这意味着它添加了变体,但删除了一些更改。
  3. 在动态页面上添加实验时,无法应用更改。当我运行实验时,没有任何变化,当我重新打开可视化编辑器时,它说更改存在问题。即使更改只是简单的文本更改。

我试过的:

  1. 默认情况下在 html 上添加“异步隐藏”类名。这会将网页默认设置为隐藏。如果我使用 Google Optimize 同步,这很好用。但是,如果我将其设置为异步,则需要 1 到 2 秒才能显示页面,这不是很好的性能。
  2. 我按照谷歌在这里提到的确切步骤在谷歌标签管理器中添加了谷歌优化。是的,我确实将异步隐藏函数中的 Google Optimize 容器 ID 更改为 GTM 容器 ID。
  3. 我取消了上面的第 2 部分并像这样手动添加了 Google Optimize。
<Html lang="en" className="async-hide">
<Head>
  {/* 
    Google Optimize Ant-Flicker Snippet
    https://support.google.com/optimize/answer/9692472?ref_topic=6197443
  */}
  <style
    dangerouslySetInnerHTML={{
      __html: `.async-hide { opacity: 0 !important}`,
    }}
  />
  <script
    dangerouslySetInnerHTML={{
      __html: `
      (function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date;
      h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')};
      (a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c;
      })(window,document.documentElement,'async-hide','dataLayer',4000,
      {'OPT-OPTIMIZE_ID':true});
    `,
    }}
  /> …
Run Code Online (Sandbox Code Playgroud)

google-tag-manager reactjs next.js google-optimize

17
推荐指数
1
解决办法
3482
查看次数

如何在没有 Google 跟踪代码管理器的情况下以编程方式将事件发送到 GA4?

我想以编程方式将自定义事件发送到新的 Google Analytics(分析),而不是先在 GTM 中定义它。

我正在使用 Google 跟踪代码管理器,根据这篇文章: https ://developers.google.com/analytics/devguides/collection/ga4/translate-events

这只能通过在 GTM 本身中定义事件来实现。我不能这样做,并且想继续使用旧方法执行此操作,您可以这样做:

        if ("ga" in window) {
            var tracker = ga.getAll()[0];
            if (tracker) {
                tracker.send("event", eventCategory, eventAction);
            }
        }
Run Code Online (Sandbox Code Playgroud)

如何使用 JavaScript 和新的 Google Analytics (GA4) 来实现这种效果?

window.gtag未定义,因为我使用 GTM,并且window.ga未定义,因为我使用 GA4。GTM 中配置的唯一标签是“Google Analytics:GA4 配置”。

javascript google-analytics google-tag-manager google-analytics-4

17
推荐指数
2
解决办法
2万
查看次数

我可以用 gtag() 替换 dataLayer.push() 吗?

dataLayer.push()在尝试实现和理解 Google 标签管理器和 Google Analytics 的使用时,我想知道为什么在某些地方谈论,而在其他地方gtag()用于类似的操作。尽管结果并不完全相同,但它们似乎服务于相同的目的。

gtag()定义为:

function gtag(){dataLayer.push(arguments)};
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用 gtag 时的代码,我会得到一个包装参数对象。所以我明白这是有区别的,但这有关系吗?它们应该用于不同的目的吗?

> dataLayer = []
> dataLayer.push({'event','login'})
[{'event','login'}]
> dataLayer = []
> gtag({'event','login'})
[Arguments({'event','login'})]
Run Code Online (Sandbox Code Playgroud)

什么时候应该使用其中之一,或者我可以决定只使用其中之一?

google-analytics google-tag-manager

17
推荐指数
1
解决办法
8256
查看次数

Google跟踪代码管理器与谷歌分析

我正在尝试了解如何在新网站上整合Google Analytics和自定义事件跟踪.在研究之后,我似乎无法理解Google跟踪代码管理器与编写自定义事件跟踪代码之间的差异和关系.

Google跟踪代码管理器是一种更轻松的方式来跟踪信息而无需编写JS吗?

google-analytics google-tag-manager

16
推荐指数
1
解决办法
7207
查看次数

Google跟踪代码管理器和单页应用

我正在尝试将Google跟踪代码管理器与我的Ember应用程序集成.我很难理解如何通知GTM页面已更改,并发送页面查看事件.

我在线阅读了很多东西,主要是为"虚拟页面"创建一个新变量,但显然这远非理想.

我希望能够dataLayer.push用来通知实际更改的页面.有没有一个简单的方法我没有找到,或者在SPA上跟踪GTM真的很痛苦?

google-tag-manager

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

Android - Google Analytics管理器,包含Google Analytics和Firebase Analytics

我正在使用购物应用程序,并希望跟踪我的移动应用程序上发生的事件.我的目标是使用Firebase Analytics和Google跟踪代码管理器跟踪事件,并将相同的事件推送到Google分析.

我的活动> Firebase> Google代码管理器> Google Analytics

我按照以下指南将Google代码管理器和Firebase分析集成到我的应用程序中.

https://developers.google.com/tag-manager/android/v5/

我能够在Firebase控制台上记录我的事件并在调试控制台中查看.我在gradle中添加了Tag管理器的依赖项,以便事件也发送到标记管理器.

现在我想知道,我如何将这些事件从Google代码管理器推送到Google分析?有人可以向我提供有关在Tag manger和Google Analytics上配置标记和触发器的见解

我记录事件的Android代码如下

 public void logEventClicked(View view){
    Toast.makeText(this, "Logging event", Toast.LENGTH_SHORT).show();
    Bundle bundle = new Bundle();
    bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "150");
    mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.ADD_TO_CART, bundle);
}
Run Code Online (Sandbox Code Playgroud)

java android analytics google-tag-manager firebase-analytics

15
推荐指数
2
解决办法
3082
查看次数