我一直在尝试让这个工作一段时间,似乎很少有关于这是如何工作的信息。
首先,我想说我尝试了下面的方法来让它工作,所以请在发布解决方案之前阅读这个。
What I tried:我在一个自定义的HTML块中添加了谷歌分析实验代码,并让它只在谷歌声明的原始页面中运行。这不起作用,似乎给用户创造了一个循环。当用户进入实验页面时,会出现一个白页面。
有人知道怎么让这个工作吗?感谢
Google Content Experiments的Javascript版本目前在GTM中实际上并不支持(他们确实做了重定向或动态更改网站,因为很难提前说在页面加载期间标签触发的哪一点,以及它的顺序,这不是很好地工作-在最好的情况下,原始页面将在访问者被重定向到一个变体之前完全加载)。
GTM的特性页面将A/b测试标签列为"即将到来",但至少从一年前开始就这样做了,所以我不会屏住呼吸。
但是,您可以在服务器端执行变体(您必须实现自己的逻辑以向每个用户显示适当的变体),并通过GTM将实验id和变体编号传递给GA。我不认为有其他(可靠的)方法来做这件事,至少现在还没有。如果你需要使用javascript,你应该将实验脚本添加到页面代码中,而不是通过标签管理部署它们。
话虽如此,还是有一些关于使用Experiments Javascript API和一些jQuery绕过GTM限制的描述(这里有一个)。当谷歌说某些东西"不支持"时,可能只是意味着他们不想测试所有可能的边缘情况,而在安全方面犯错误。所以,如果你一定要使用GTM进行内容实验,你就必须测试这样的东西是否适合你。
我希望我能很好地理解你的问题。如果是,你可以使用谷歌优化而不是谷歌实验。
我是这么做的
-
对于实验中的页面,我使用Analytics .js而不是GTM以"老式方式"实现了Google Analytics。
-
我测试了(与实时分析)这和实验页和谷歌标签页都报告数据。
我发了帖子问是否会有冲突
可以修改Google Tag Manager (GTM)代码片段以同步运行,方法是删除j.async=true;
行并将其置于页面顶部,紧跟在开始的<head>
元素之后。像这样:
<!-- 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.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXX');</script>
<!-- End Google Tag Manager -->
您也可以通过在GTM指定的原始位置插入<iframe>
部分代码来保留对没有Javascript的用户的支持(在您打开<body>
元素之后)。
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe</noscript>
然后可以在GTM中插入Google Analytics Experiments代码作为自定义HTML标签。只要确保你勾选了'support document.write()'复选框。
只是不要忘记在GTM-XXXX中更新您的容器ID。