0

我正在努力确保我们的开发人员在我们的网站上正确设置了 Google Tag Manager (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。特别是因为尽管变量出现在 Tag Assistant 窗口中,但它们在 GTM 预览调试窗口中的“变量”下仍然显示为“未定义”(尽管它们确实出现在“数据层”选项卡下),如下面的屏幕截图所示对于同一页面:

GTMPreviewDebug截图

所以,我想我的问题是:如果我的数据层变量填充在我的产品页面上(根据 TagAssistant 屏幕截图和 GTM 预览调试屏幕截图(上半部分)中的数据层选项卡,为什么我的变量显示为undefinedGTM 预览调试中的变量选项卡下模式(如 GTM 预览调试屏幕截图(下半部分))?

为了涵盖我的所有基础,这里有几个示例说明我如何在 Google 跟踪代码管理器中为这些产品页面变量设置变量,以防问题出在此处:

GTMVariableSetUp

抱歉发了这么长的帖子,我想提供所有相关信息。提前感谢您的帮助!

4

1 回答 1

0

我认为您的问题与您的 GTM 设置有关。要访问说“名称”,您实际上需要做...

ecommerce.detail.products[0].name

但以上只会给你第一个产品名称,因为可能有很多产品。

也仅供参考,您不需要为 GTM 中的开箱即用增强电子商务创建数据层变量。

于 2018-11-02T20:23:50.787 回答