2016-12-28 154 views
0

我正在审核我们网站上的Google动态再营销代码。它是通过GTM和我在线阅读的内容完成的,而不是使用自定义JavaScript代码库变量传递的数据层。下面是它被实施的方式,这是令人困惑的。我只想知道这是否是正确的执行方式,或者我应该重新做标签吗?Google Adwords通过GTM实施 - 请建议正确实施

我们有一个自定义JavaScript变量“google_tag_params” javascript variable - google_tag_params

然后我们有AdWords再执行标签,其引用的数据层变量“google_tag_params”那火上的所有网页

Adwords -Remarketing Tag

然后我们有几个其他的gtm标签:主页,产品,购物车等(定制html类型),填充google_tag_params。下面是其触发对网页的网页和产品

adwords- homepage

为例

adwords-product

产品

,说明此项当前的实现将是有帮助的任何文件。

感谢

回答

0

这看起来像一个工作的实施,虽然它否定具有标签管理系统的几乎所有优点。

再营销对用户的权重取决于他们访问过哪个网页 - 对于刚刚查看过主页的用户而言,其价值低于查看产品类别或产品详细信息的用户的价值(加上您了解的更多信息产品的视角越精确,您可以根据客户的喜好量身定制广告,或理论如此)。这就是为什么您需要传递访问网站的数据以及通过JavaScript对象查看的产品 - “google_tag_params”。

通常这些数据将在您的网站的源代码中提供 - 理想情况下为数据层格式,尽管全局JavaScript变量也适用。

显然你正在看的网站不这样做。所以实现这个的人使用了自定义的HTML标签来创建具有必要数据的全局JS变量。这将数据放入全局名称空间。然后,他创建了一个JavaScript变量,用于读取从标记创建的js变量并将其提供给Adwords标记。

有多个自定义HTML标记,其中包含google_tag_params的定义。我非常肯定,如果你看触发器,你会发现它们被触发在特定的页面上 - “主页”只在你的网站的根页面,产品详细信息页面上的“产品变量”等。这样,google_tag_params对象包含相应页面类型所需的数据。由于网站不提供产品数据,因此在“产品变量”标签中有一些自定义JavaScript来从DOM中提取数据。

这是行不通的?好吧,我想是的。它是优雅的吗?当然不是 - GTM的两个主要优点是封装(您需要的唯一全局变量是数据层数组,因此可以减轻命名冲突的风险)以及相当健壮的选择器引擎。你的代码不会使用任何代码。

值得改变吗?或许一点点。如果google_tag_params将在自定义JavaScript变量(采用返回值的匿名函数的格式)中创建,则会更优雅一些。此外,DOM提取代码可以移动到自定义JavaScript变量或DOM类型变量(如果您可以拿出适当的选择器,它将从HTML元素中读取数据,而无需任何自定义代码)。然而,尽管这意味着你有一个更好和更可靠的实现,这意味着一些努力获得基本相同的结果。

然而,正确的实现将依赖于由您的页面提供的数据层(即,它是通过服务器端代码创建的)。 DOM提取是一件多变的事情,如果你改变你的标记,你会破坏你的Adwords跟踪。

如果你不能通过服务器端代码实现dataLayer,那么务实的解决方案可能会让事情保持原样。它确实给你带来了一些问题(如果你改变了标记或者引入了一个名为“price”或“qty”的全局JS变量,那么你的实现就被搞砸了),但显然这已经完成了它的工作,所以为什么要额外的英里。

+0

感谢Eike的一个很棒的解释! – user3465554