Google 通过 GTM 实施 Adwords - 请建议正确的实施
Google Adwords implementation via GTM - Please suggest correct implementation
我正在尝试审核我们网站上的 Google 动态再营销标记。它是通过 GTM 和我在网上阅读的内容完成的,而不是使用通过代码库变量传递的数据层,它使用自定义 javascript。下面是它的实现方式,令人困惑。我只想知道这是否是正确的实施方式,还是我应该重新做标签?
我们有一个自定义 javascript 变量 "google_tag_params"
然后我们实施了 adwords 再营销标记,它引用在所有页面上触发的数据层变量 "google_tag_params"
然后我们还有其他几个 gtm 标签:主页、产品、购物车等(自定义 html 类型)填充 google_tag_params。下面是在主页和产品上触发的主页示例
产品
解释当前实施的任何文档都会有所帮助。
谢谢
这看起来像是一个可行的实现,尽管它否定了拥有标签管理系统的几乎所有优势。
再营销根据用户访问过的页面为用户赋予不同的权重 - 刚刚浏览过主页的用户的价值低于浏览过产品类别或产品详细信息的用户(加上您了解的越多关于查看的产品越精确,您就可以根据客户的口味定制广告,或者理论上是这样)。这就是为什么您需要通过 javascript 对象 - "google_tag_params" 传递有关访问的站点和查看的产品的数据。
通常,这方面的数据会在您网站的源代码中提供 - 最好是数据层格式,尽管全局 javascript 变量也可以。
显然您正在查看的网站不会这样做。所以实现这个的人使用自定义 HTML 标签来创建具有必要数据的全局 JS 变量。这会将数据放在全局命名空间中。然后 (s)he 创建了一个 javascript 变量,该变量读取从标签创建的 js 变量并将其提供给 Adwords 标签。
有多个自定义 HTML 标签定义了 google_tag_params。我很确定,如果您查看触发器,您会发现它们在特定页面上被触发 - "Homepage" 仅在您网站的根页面上,"Products Variables" 在产品详细信息页面上等。这样google_tag_params 对象包含相应页面类型所需的数据。由于该网站不提供产品数据,因此 "Products Variables" 标签中有一些自定义 javascript 从 DOM.
中提取数据
这个有用吗?好吧,我想是的。优雅吗?当然不是——GTM 的两个主要优点是封装(您唯一需要的全局变量是数据层数组,从而减轻命名冲突的风险)和相当健壮的选择器引擎。您的代码使用了其中的 none。
值得换吗?或许一点点。如果 google_tag_params 在自定义 javascript 变量中创建(它采用匿名函数的格式,returns 一个值),那会更优雅一些。此外,DOM 提取代码可以移动到自定义 javascript 变量或 DOM 类型变量(如果你能想出,它从 HTML 元素读取数据而没有任何自定义代码正确的选择器)。然而,虽然这意味着您有一个更好、稍微更可靠的实现,但这意味着要为基本相同的结果付出一些努力。
然而,正确的实现将依赖于您页面提供的数据层(即它是通过服务器端代码创建的)。 DOM 提取是一项变化无常的业务,如果您更改标记,您将破坏 Adwords 跟踪。
如果您不能通过服务器端代码实现数据层,那么务实的解决方案可能是保持原样。它确实让你面临一些问题(如果你更改标记或引入一个名为 "price" 或 "qty" 的全局 JS 变量,那么你的实现就搞砸了)但显然到目前为止这已经完成了它的工作,所以为什么要加倍努力。
我正在尝试审核我们网站上的 Google 动态再营销标记。它是通过 GTM 和我在网上阅读的内容完成的,而不是使用通过代码库变量传递的数据层,它使用自定义 javascript。下面是它的实现方式,令人困惑。我只想知道这是否是正确的实施方式,还是我应该重新做标签?
我们有一个自定义 javascript 变量 "google_tag_params"
然后我们实施了 adwords 再营销标记,它引用在所有页面上触发的数据层变量 "google_tag_params"
然后我们还有其他几个 gtm 标签:主页、产品、购物车等(自定义 html 类型)填充 google_tag_params。下面是在主页和产品上触发的主页示例
产品
解释当前实施的任何文档都会有所帮助。
谢谢
这看起来像是一个可行的实现,尽管它否定了拥有标签管理系统的几乎所有优势。
再营销根据用户访问过的页面为用户赋予不同的权重 - 刚刚浏览过主页的用户的价值低于浏览过产品类别或产品详细信息的用户(加上您了解的越多关于查看的产品越精确,您就可以根据客户的口味定制广告,或者理论上是这样)。这就是为什么您需要通过 javascript 对象 - "google_tag_params" 传递有关访问的站点和查看的产品的数据。
通常,这方面的数据会在您网站的源代码中提供 - 最好是数据层格式,尽管全局 javascript 变量也可以。
显然您正在查看的网站不会这样做。所以实现这个的人使用自定义 HTML 标签来创建具有必要数据的全局 JS 变量。这会将数据放在全局命名空间中。然后 (s)he 创建了一个 javascript 变量,该变量读取从标签创建的 js 变量并将其提供给 Adwords 标签。
有多个自定义 HTML 标签定义了 google_tag_params。我很确定,如果您查看触发器,您会发现它们在特定页面上被触发 - "Homepage" 仅在您网站的根页面上,"Products Variables" 在产品详细信息页面上等。这样google_tag_params 对象包含相应页面类型所需的数据。由于该网站不提供产品数据,因此 "Products Variables" 标签中有一些自定义 javascript 从 DOM.
中提取数据这个有用吗?好吧,我想是的。优雅吗?当然不是——GTM 的两个主要优点是封装(您唯一需要的全局变量是数据层数组,从而减轻命名冲突的风险)和相当健壮的选择器引擎。您的代码使用了其中的 none。
值得换吗?或许一点点。如果 google_tag_params 在自定义 javascript 变量中创建(它采用匿名函数的格式,returns 一个值),那会更优雅一些。此外,DOM 提取代码可以移动到自定义 javascript 变量或 DOM 类型变量(如果你能想出,它从 HTML 元素读取数据而没有任何自定义代码正确的选择器)。然而,虽然这意味着您有一个更好、稍微更可靠的实现,但这意味着要为基本相同的结果付出一些努力。
然而,正确的实现将依赖于您页面提供的数据层(即它是通过服务器端代码创建的)。 DOM 提取是一项变化无常的业务,如果您更改标记,您将破坏 Adwords 跟踪。
如果您不能通过服务器端代码实现数据层,那么务实的解决方案可能是保持原样。它确实让你面临一些问题(如果你更改标记或引入一个名为 "price" 或 "qty" 的全局 JS 变量,那么你的实现就搞砸了)但显然到目前为止这已经完成了它的工作,所以为什么要加倍努力。