我已在我的网站上安装了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
如何将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
我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
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组件?
标题可能看起来有点含糊,但这是因为我目前在将 Google Optimize 集成到我们的 React / Next.js 项目中时遇到了多个问题。我将尝试尽可能详细地解释我的问题和行动。但是,如果有不清楚的地方,请告诉我。
<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 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
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跟踪代码管理器与编写自定义事件跟踪代码之间的差异和关系.
Google跟踪代码管理器是一种更轻松的方式来跟踪信息而无需编写JS吗?
我正在尝试将Google跟踪代码管理器与我的Ember应用程序集成.我很难理解如何通知GTM页面已更改,并发送页面查看事件.
我在线阅读了很多东西,主要是为"虚拟页面"创建一个新变量,但显然这远非理想.
我希望能够dataLayer.push用来通知实际更改的页面.有没有一个简单的方法我没有找到,或者在SPA上跟踪GTM真的很痛苦?
我正在使用购物应用程序,并希望跟踪我的移动应用程序上发生的事件.我的目标是使用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