繁体   English   中英

页面行动前的GTM触发事件如何?

[英]GTM fire event before page act, how?

我有一个简单的页面,该页面的URL为https://www.myshop.com/user/quickact ,而html如下所示:

<input id="pid" />Keyin Product ID
<input id="count" />Keyin product count
<a id="addList" href="javascript:void(0);" class="buttonAction">Add to List</a>
<!--some external js file handle click event for this link-->

当用户单击超文本[添加到列表]时,我的页面将:

  1. 获取pid / count值,放入javascript数组中。
  2. 用''重置pid,用1'重置计数。

我现在在GTM中所做的事情是:

  1. 当PageURL包含“用户/快捷方式”时
  2. 用户单击了ID为“ addList”的链接
  3. 获取pid / count值,然后通过GTM标签将其发送到GA。

这是我在GTM的自定义变量中阅读它们的方式

function()
{
  var pid=document.getElementById('pid').value;
  var count=document.getElementById('count').value;
  return pid+','+count;
}

我的问题是,GA事件确实触发了,但是值...我的自定义变量始终返回“,1”。

这意味着我的GTM标签在页面操作后触发 ,因此它只能读取重置值,而不能读取用户键入的实际值。

有人可以提出解决建议吗?

我不确定是否有解决方案来控制多个事件的执行顺序,但是一种解决方法是为GTM提供具有相同功能的必需数据,您将使用这些数据来获取值并重置它们。 假设您可以控制此代码。

你可以这样做:

function yourFunctionForButtonClick() {

  //Your code to get pid/count value, put into a javascript array.

  //new code to provide data to GTM
  dataLayer.push({
    event: 'newPidProvided',
    pidcountvalue: pid + ',' + count
  }); 

  //Your code to reset pid with '', reset count with 1'.

}

在这种情况下,您需要设置GTM触发器以侦听newPidProvided事件(而不是单击),同时仍要检查URL中是否存在“用户/快捷方式”。 (如果没有其他标记或触发器在其他页面的GTM中没有使用pid + count,则也可以在函数中完成此操作。)您还必须使用dataLayer变量而不是自定义JavaScript类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM