Динамические события в Facebook Pixel

Помню, в свое время, я потратил довольно много времени, чтобы найти работающий скрипт, с помощью которого будет отрабатывать событие на нажатие кнопки.

И вот, я решил поделиться этим, чтобы те, кто не знают как это сделать могли сразу применить. Динамическое событие действительно даст довольно сильный толчок для настройки рекламы в Facebook. Тем более, когда у вас открытая форма на странице. И не нужно будет делать никаких редиректов на страницу «Cпасибо» после отправки формы. 

UPD 

Добавил рабочий скрипт для срабавтыванясобтия при прокрютке страницы до определенного блока.

Отслеживание отработки скрипта с помощью расширения Facebook Helper

Вот пример рабочего скрипта на нажатие кнопки:

 
 
<button id="айди вашей кнопки"> Текст на кнопке </button>
<script>
var button = document.getElementById('айди вашей кнопки');
  button.addEventListener(
    'click', 
    function() { 
      fbq('track', 'название события');          
    },
    false
  );
</script> 

Название события — событие, которое записывается в Facebook Pixel.

Айди вашей кнопки — id кнопки, после нажатия которой должно отрабатывать это событие.

Скрипт, который отслеживает нажатие на любую ссылку или кнопку с соотвествующим классом.

 
 
<script>
    var btns = document.querySelectorAll('.fb-track');
        for (let i = 0; i < btns.length; i++) {
              btns[i].onclick = function () { 
                  fbq('track', btns[i].id); 
                  } 
        }
</script>

А, еще, сейчас довольно часто все пользуются тильдой и первый скрипт там не работает, но после многих попыток удалось получить работающий скрипт и на tilda: 

 
 
<script> 
$(document).on('click', 'a[href="#popup:marquiz_5b7fec0682b5eb0042782ae3"]', function() {
 fbq('track', 'push-the-button'); 
}); 
</script> 

Этот отрабатывает при открытии поп-апа.

Рабочий скрипт для отработки события Facebook Pixel при прокрутке до нужного блока на странице:

 
 
<div id="айди элемента, на котором нужно записывать событие"></div> 
<script>
      var executeWhenElementIsVisible = function(dom_element, callback) {
        if (!(dom_element instanceof HTMLElement)) {
          console.error('dom_element must be a valid HTMLElement');
        }
        if (typeof callback !== 'function') {
          console.error(
            'Second parameter must be a function, got',
            typeof callback,
            'instead',
          );
        }
        function isOnViewport(elem) {
          var rect = elem.getBoundingClientRect();
          var docElem = document.documentElement;
          return (
            rect.top >= 0 &&
            rect.left >= 0 &&
            rect.bottom <= (window.innerHeight || docElem.clientHeight) &&
            rect.right <= (window.innerWidth || docElem.clientWidth)
          );
        }
        var executeCallback = (function() {
          var wasExecuted = false;
          return function() {
            if (!wasExecuted && isOnViewport(dom_element)) {
              wasExecuted = true;
              callback();
            }
          };
        })();
        window.addEventListener('scroll', executeCallback, false);
      };
     
      var element = document.getElementById('айди элемента, на котором нужно записывать событие');
      executeWhenElementIsVisible(element, function() {
        fbq('track', 'название события');
      });
</script>

Название события — событие, которое записывается в Facebook Pixel.

Айди элемента, на котором нужно записывать событие — id блока или любого тега, долистав до которого отрабатывает событие.

Александр Арефьев

Идейный вдохновитель 3A

"