(GTM) Получить textContent of previousElementSibling в стандартном событии fb pixel

Я пытаюсь добавить текстовое содержимое ближайшего тега html (с идентификатором) к моему стандартному параметру события пикселя facebook. Он должен работать с любым тегом html, я бы хотел, чтобы он был гибким, находится ли текст внутри div, span, p или еще.

Ниже приведен jQuery, который я добавил в свой тег GTM. Обратите внимание, что {{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>
  • So basically, in my FB pixel event, I should have the following:
    • content_name: Product 1
    • при нажатии на первую ссылку Заказать
  • and
    • content_name: Product 2
    • при переходе по второй ссылке «Заказать».

Любая помощь будет очень рада!

Большое спасибо.


person Benjamin    schedule 27.06.2017    source источник


Ответы (1)


В вашем случае вам нужно создать триггер:

  • Тип события: Клик - Просто ссылки
  • Щелкните элемент; соответствует селектору css; .buy введите здесь описание изображения

Затем создайте тег:

  • Тип тега: Пользовательский 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>

  • Триггер - триггер, определенный выше

person Victor Leontyev    schedule 28.06.2017
comment
Не могли бы вы принять мой ответ, если он работает для вас - person Victor Leontyev; 28.06.2017