2017-06-27 60 views
0

我試圖將最接近的html標記(帶有id)的文本內容添加到我的facebook像素標準事件參數中。它應該可以與任何html標籤一起工作,無論文本是在div,span,p還是其他內容中,我都希望它很靈活。(GTM)在fb像素標準事件內獲取previousElementSibling的textContent

下面是我添加到我的GTM標記中的jQuery。請注意{{Click Element}}是一個本地GTM變量。另外請注意,我正在使用GTM觸發器來觸發GTM標記(所以下面的jQuery代碼),因此在點擊「buy」類(請參閱HTML代碼)時啓動腳本。

<script> 
    // look for the content_name 
var presentElement = {{Click Element}}; 
var product_name_element = presentElement; 
var cond = true; 
while(cond){ 
    if(product_name_element.id=="product_name"){ 
     cond = false; 
    }else{ 
     product_name_element = product_name_element.previousElementSibling; 
    } 
} 
var product_name = product_name_element.textContent; 
fbq('track', 'AddToCart', { 
content_name: product_name 
}); 
</script> 

和HTML:

<p id="product_name">Product 1</p> 
    <p><a href="#" class="buy">Order</a></p> 
    <p id="product_name">Product 2</p> 
    <p><a href="#" class="buy">Order</a></p> 
  • 所以基本上,我在FB像素事件,我應該具備以下條件:
    • CONTENT_NAME:產品點擊時1
    • 第一個訂單鏈接
    • CONTENT_NAME:產品單擊第二個訂單鏈接時2

任何幫助都會很高興!

非常感謝。

回答

0

你的情況,你需要創建觸發器:

  • 事件類型:點擊 - 不僅僅是鏈接
  • 點擊元素;匹配css選擇器; .buy enter image description here

然後創建標籤:

  • 標籤類型:自定義HTML
  • HTML

    <script> // look for the content_name var presentElement = {{Click Element}}; var product_name_element = presentElement.parentElement; var cond = true; while(cond && product_name_element!= null){ if(product_name_element.id=="product_name"){ cond = false; }else{ product_name_element = product_name_element.previousElementSibling; } } if (product_name_element != null) { var product_name = product_name_element.textContent; fbq('track', 'AddToCart', { content_name: product_name }); } </script>

  • 觸發 - 上面

  • 定義觸發
+0

非常感謝你,它就像一個魅力! :) – Benjamin

+0

你能否接受我的答案,如果它適合你 –

+0

當然,它已經完成,它完美的工作! – Benjamin

相關問題