2017-06-27 20 views
0

私のfacebookピクセル標準イベントパラメータに最も近いhtmlタグ(id付き)のテキストコンテンツを追加しようとしています。任意のHTMLタグで動作するはずですが、テキストがdiv、span、pなどの範囲内にある場合でも柔軟に対応したいと思います。(GTM)fbピクセル標準イベント内のpreviousElementSiblingのtextContentを取得します

以下は、私のGTMタグに追加したjQueryです。 {{Click Element}}はネイティブのGTM変数です。また、GTMタグを起動するために使用しているGTMトリガー(下のjQueryコード)は、「購入」クラス(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

関連する問題