簡體   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