我在使用Google跟踪代码管理器在localhost上跟踪Google Analytics时遇到问题.我可以在API for Analytics(https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#localhost)上看到,我需要做的就是将cookieDomain设置为none.我在Google跟踪代码管理器中找不到此选项.有谁知道如何做到这一点?
我一直在尝试Google Tag Manager为移动设备,特别是Android的,但我不断收到一条消息说"无效的宏"当试图getString(myKeyValue对)Container.
这是我的MainActivity中代码的一部分:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtHello = (TextView)findViewById(R.id.txtHello);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String hello = mContainer.getString("hello");
long l = mContainer.getLong("long");
txtHello.setText(hello + l);
}
});
tagManager = TagManager.getInstance(this);
ContainerOpener.openContainer(tagManager, CONTAINER_ID, OpenType.PREFER_NON_DEFAULT, null, new ContainerOpener.Notifier() {
@Override
public void containerAvailable(Container container) {
mContainer = container;
}
});
}
Run Code Online (Sandbox Code Playgroud)
我在清单中添加了这些权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
我有正确的Container_id,因为它以编程方式刷新后显示正确的版本.
这是我的assets/tagmanager/CONTAINER_ID.json文件(当然使用正确的文件名):
{
'hello': …Run Code Online (Sandbox Code Playgroud) 我创建了Google跟踪代码管理器数据层变量并发布了容器.当我访问该页面时,我在Chrome控制台中收到错误消息
dataLayer is not defined
Run Code Online (Sandbox Code Playgroud)
数据层推送脚本位于HEAD元素中,GTM代码段位于Body标记中.
是否可以在执行服务器上托管由Google Analytics生成的脚本,尤其是Tag Manager,而不是通过Google的脚本块托管客户端?
目标是避免对外部脚本的任何依赖.
我知道谷歌建议不要在本地托管分析,也不管标记管理器,但是可以这样做吗?
据我所知,标记管理器通过嵌入本地脚本来工作:
<!-- Google Tag Manager -->
<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','YOUR-GTM-CODE');</script>
<!-- End Google Tag Manager -->
Run Code Online (Sandbox Code Playgroud)
当它执行客户端时,它会获取新生成的脚本(https://www.googletagmanager.com/gtm.js?id=YOUR-CODE),其中包含自上次发布以来编辑器已添加到容器中的所有新标记或触发器.
除了丢失新的标签管理器功能和新生成的标签外,这还有效吗?
使用Google跟踪代码管理器将Google Analytics新迁移到"全球网站代码"会让我感到困惑.它是标签管理器,但它不是!?
常规Google跟踪代码管理器集成如下所示:
<!-- Google Tag Manager -->
<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-XXXXXXX');
</script>
Run Code Online (Sandbox Code Playgroud)
而谷歌Analytics(分析)全球网站标签一体化是这样的:
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXXX-X"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-XXXXXXXXX-X');
</script>
Run Code Online (Sandbox Code Playgroud)
他们加载不同的资源.但两者都启动了dataLayer push方法.创建对象的方式不同(假设两种方式可以互换).我们是否应该并排使用两个集成,尽管一个实现中的dataLayer对象与另一个实现冲突?
在旁注.这两个资源都与jQuery 1.9.1捆绑在一起.虽然加载和实例化jQuery两次不是最佳的,(如果我们在此基础上有自己的jQuery,则三次).有没有变通办法或建议?
Chrome正在报告以下警告:
在https://www.googletagmanager.com/上设置了与跨站点资源关联的cookie,但未设置该
SameSite属性。如果将来的Chrome浏览器版本将cookie设置为SameSite=None和,则仅会提供带有跨站点请求的cookieSecure。您可以在“应用程序”>“存储”>“ Cookies”下的开发人员工具中查看Cookie,并在https://www.chromestatus.com/feature/5088147346030592和https://www.chromestatus.com/feature/5633521622188032上查看更多详细信息。
我有两种此类警告。这三个饼干我看到的是gtm_auth,gtm_preview和gtm_debug。所有会话cookie。我看到gtm_auth设置了Secure属性(SameSite属性为空)。另外两个cookie没有设置任何一个属性。
顺便说一下,它们被分类为分析性cookie,而不是市场营销cookie。
使用Google Tag Manager,如何设置或修改这些Cookie?我不想更新代码中的cookie。我想象使用添加cookie属性应该是可行的Google Tag Manager。Google如何使用Google Analyticsand 解决此问题的立场是什么Google Tag Manager?
cookies google-analytics session-cookies google-tag-manager samesite
我在使用Google代码管理器(GTM),Google分析(GA)和Google adwords时遇到了一个非常奇怪的问题.到目前为止,我无法解决它.
设置:
我们有一个单页应用程序(骨干和牵线木偶),我们使用GTM使用标准dataLayer.push事件(如果相关,还有电子商务事件)将虚拟网页浏览推送到GA.此设置通常正常.
问题:
问题是用户来自adwords,带有gclid标签.跟踪这些用户的第一次网页浏览并正确归因于adword广告系列,但只要他们点击网站上的任何链接,他们似乎就会在GA中获得新会话,然后原始会话计为退回.所有网页都在同一个网域上,我们已经确认这些广告系列用户实际上没有弹跳,他们仍然在网站上,但在某种程度上被GA错误标记.
IE
重要说明:此问题仅适用于广告系列访问者!没有广告系列标记的用户在点击链接时不会获得新会话.
以前有没有人遇到这样的问题?在单页应用上通过GTM使用adwords时是否有任何特殊事项需要考虑?什么可能导致谷歌分析失去这样的会议?
有问题的网站是https://fyndiq.se,在移动设备中(它使用动态服务,问题不在桌面版本上,而不是SPA).
编辑 - 问题摘要和当前不完善的解决方案
我们已经设法达到了可接受的水平,但它远非完美.由于解决方案全部在评论中展开,我想我会在这里总结一下结果.
问题确实是Google Analytics为Adwords用户创建了新会话,从而失去了对广告系列的跟踪.Analytics将在几种不同条件下为用户启动新会话.最常见的情况是当用户处于非活动状态30分钟,用户从新广告系列进入网站时,以及用户从已知搜索引擎进入网站时.
最后两个是这里的问题.Google根据广告系列代码(gclid或utm_)和引荐来源的组合判断这些条件,并且在单个页面上应用引荐来源不会更新!
IE
为了防止这种情况,我们最终做了两件事.首先,我们手动向Google跟踪代码管理器发送引荐来源(如果没有发送,则默认为document.referrer,如上所述,不会更新).在第一个页面加载中,我们使用真正的引荐来源,以便正确地归属命中.在任何后续页面加载中,我们将自己的域名作为引荐来源发送,就像它在非SPA上一样.这告诉分析我们正在内部路由并且它不应该启动新会话.
引用者可以像发送虚拟网页浏览网址一样发送给GTM,并且(在写作的那一刻)设置在与url和pagetitle相同的位置.我们确保在发送到分析的所有事件上完成此操作,而不仅仅是网页浏览.
第二件事来自下面的Jareds答案,我们确保设置页面而不仅仅是位置(见下文为什么这些不同).可以在GTM的高级设置中设置页面.只需要这两件事中的一件,但我们两件事都只是为了安全.
这似乎给了我们大部分正确的数据.与adwords的数据相比,我们仍然缺少大约15%的cpc交易,但我们很难知道我们到底有多接近.Adwords和analytics不会测量相同的东西,因此可以预期差异,差异的大小会因页面而异.然而,对我们来说,它足以用于测试和营销,因此它现在必须要做.
如果有人发现更一致的解决方案,请写一个新的答案!
google-analytics google-adwords backbone.js single-page-application google-tag-manager
我不是在谈论复制(即导入/导出,这需要替换所有网站的跟踪代码),而是关于在错误的帐户中打开容器和/或需要合并时的情况.
可能吗?
在我的Swift应用程序中尝试实施Google跟踪代码管理器v5时,我遇到了以下警告,这给我带来了一些麻烦:
GoogleTagManager警告:找不到默认容器.容器需要添加到容器文件夹并添加到目标.
它花了我更多的时间,而且因为我的问题的答案很难找到而且不是这样,我决定创建这个问答,以防有些人和我的情况一样!
我有一个使用Angular 4构建的单页面应用程序.我已将GTM代码段放在index.html的body标签下方.然后在Google代码管理器面板中,我创建了一个历史记录更改事件.如文档中所述
当我用户注册时,有3个步骤1)步骤一次(当我点击电子邮件链接时,我来到此页面)2)第二步(一旦完成步骤1并点击下一步2打开)3)第三步(一次)第2步完成,点击下一步3打开)4)第四步(一旦完成第3步,点击下一步4打开)
But I cannot track my goals correctly for step 4.
Run Code Online (Sandbox Code Playgroud)
第4步的Google分析仅显示2,但我的管理员的实际数量为92但是第1步正确跟踪.
难道我做错了什么?
google-analytics single-page-application google-tag-manager angular
javascript ×2
android ×1
angular ×1
backbone.js ×1
cookies ×1
firebase ×1
ios ×1
jquery ×1
localhost ×1
samesite ×1