2017-06-27 41 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

相关问题