由于无法进行验证,我试图确保我们的开发人员在我们的网站上正确设置了Google跟踪代码管理器(GTM)DataLayers。
情况如下: 我要求我们的开发人员使用window.dataLayer.push方法在我们网站的产品页面上设置DataLayers。他们说他们这样做了。
我在GTM帐户中设置了所有适当的变量,以匹配网站上收集的数据层名称。然后,我进入GTM的预览调试模式,以确保在任何产品页面上都填充了变量。但是,每次我检查时,变量都显示为“未定义”。嗯。
我的开发人员说一切都很好,并提供了Google Tag Assistant Chrome扩展程序的屏幕截图,该屏幕截图表明正在提取产品变量,我看到的是同一件事:
GoogleTagAssistantScreenshotProductPage
我检查了此产品页面的源代码,发现了这一点:
<script type="text/javascript">
(function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/vznvXB90INUtUFVnU1036xQfL3T6LgDlAYStvsoA/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
</script>
<script>
var toPushToDatalayer = ({"event":"productDetail","ecommerce":{"detail":{"products":[{"name":"Business Basics for Law Students","id":"10040","price":"80.9500","category":null,"magento_id":"36"}]}}}); dataLayer.push(toPushToDatalayer);
</script>
<script type="text/javascript">
//<![CDATA[
var Translator = new Translate([]);
//]]>
</script>
<meta name="msvalidate.01" content="DC61177F62A1EFB53CB064D74B1BB401" />
<meta name="google-site-verification" content="75YqkgTbUbVcW7fqgA9EmUo6lrULtbTDW8urj8TJMo0" />
我不是开发人员,因此担心在页面源代码的任何地方都看不到术语window.dataLayer.push
可能意味着该方法未用于在网站上实现DataLayers。特别是因为,尽管变量显示在“标记助手”窗口中,但它们仍在“变量”下的GTM预览调试窗口中显示为“未定义”(尽管它们确实出现在“数据层”标签下),如下面的屏幕截图所示对于同一页面:
因此,我想我的问题是:如果我的数据层变量正在我的产品页面上填充(每个TagAssistant屏幕截图和GTM预览调试屏幕截图中的数据层选项卡(上半部分),为什么我的变量显示为undefined
在GTM预览调试模式下的“变量”标签下(如GTM预览调试屏幕截图(下半部分)一样?
仅介绍我的所有基础知识,以下是一些示例,说明如何在Google跟踪代码管理器中为这些产品页面变量设置变量,以防问题出在这里:
很抱歉,我想提供所有相关信息。预先感谢您的帮助!
答案 0 :(得分:0)
我认为您的问题出在您的GTM设置上。要访问说“名称”,您实际上需要执行...
ecommerce.detail.products [0]。名称
但是以上内容只会为您提供第一个产品名称,因为可能会有很多产品。
也是供您参考,您无需为GTM中开箱即用的增强型电子商务创建数据层变量。