Точное отслеживание событий с несколькими пикселями

Точное отслеживание событий с несколькими пикселями

@FacebookAdsChannel

Правильная интеграция пикселя на сайте одна из самых важных задач перед настройкой рекламы, поскольку пиксель необходим для оптимизации рекламы и сбора аудиторий. Одна из рекомендаций Facebook - размещение только одного пикселя на сайте, но иногда случается что на сайте стоит 2 и более пикселей. В таких случаях мы можем получать ряд ошибок, такие как ненужные конверсии (например, пользователь пикселя 1 считает нажатие на кнопку "скачать прайс" целью, а вы, пользователь пикселя 2, так не считаете, но каждый раз получаете эту конверсию в свой пиксель, а у вас на это событие совсем другие планы). Наконец и тут Facebook пошел нам на встречу и сделал возможным выбирать в какой пиксель какие данные отправлять.

На developers.facebook.com установлено 9 пикселей

Проблема

Давайте рассмотрим на примере где и как можно столкнуться с проблемой искажения данных.

Рассмотрим сценарий, в котором Агентство A хочет отслеживать покупку в пикселе A и Агентство B, хочет отслеживать пользовательское событие (шаг 4) на пикселе B. Они установили два основных кода пикселя на одной странице.

Установлен следующий код:

  <script>
    ... base code truncated
    'https://connect.facebook.net/en_US/fbevents.js');
    fbq('init', '<PIXEL_A>');
    fbq('track', 'PageView');
    fbq('track', 'Purchase', {
                    'value': 4,
                    'currency': 'USD'
    });
  </script>

  <script>
    ... base code truncated
    'https://connect.facebook.net/en_US/fbevents.js');
    fbq('init', '<PIXEL_B>');
    fbq('track', 'PageView');
    fbq('trackCustom', 'Step4'); //fires for both Pixel A and B
  </script>

По идее событие "Purchase" должно срабатывать в пикселе А, а в пикселе B должно срабатывать событие "Step4"; Но вне не так просто. Результат можно увидеть в таблице:

в пиксель A событие step4 тоже попадает

ВАЖНО: Даже если есть два и более пиксельных кода, код fbevents.js загружается только один раз.

Таким образом вы можете объединять все в один контейнер. Например:

  <script>
    ... base code truncated
    'https://connect.facebook.net/en_US/fbevents.js');
    fbq('init', '<PIXEL_A>');
    fbq('track', 'PageView');
    fbq('track', 'Purchase', {
                    'value': 4,
                    'currency': 'USD'
    });

    fbq('init', '<PIXEL_B>');
    fbq('track', 'PageView');
    fbq('trackCustom', 'Step4'); //fires for both Pixel A and B
  </script>

Но и этот код по-прежнему дает те же результаты что и были выше.

Почему так происходит?

Функция "init" вызывает пиксель и записывает его в глобальную "очередь", а далее любой последующий вызов события запускается для любого пикселя, который был вызван ранее.

В предыдущем примере именно поэтому пользовательское событие Step4 запускается для пикселя A, даже когда событие trackCustom вставлено после вызова пикселя B. Если вы этого не знаете, то вы получаете не точные данные.

Новые возможности - trackSingle и trackSingleCustom

В начале ноября 2017 года к пикселю были добавлены две новые возможности (trackSingle и trackSingleCustom). Эти параметры позволяют выборочно запускать события для определенного пикселя, даже если на странице инициализируются несколько пикселей.

Например, чтобы запустить стандартное событие "Purchase" только на пользовательских событиях в пикселе A и "Step4" только в пикселе B, вы можете использовать функцию trackSingle или trackSingleCustom.

  <script>
    ... base code truncated
    'https://connect.facebook.net/en_US/fbevents.js');
    fbq('init', '<PIXEL_A>');
    fbq('init', '<PIXEL_B>');
    fbq('track', 'PageView'); //fire PageView for both initialized pixels

    // only fire the Purchase event for Pixel A
    fbq('trackSingle', '<PIXEL_A>', 'Purchase', {
          value: 4,
          currency: 'USD',
    });

    // only fire the custom event Step4 for Pixel B
    fbq('trackSingleCustom', '<PIXEL_B>', 'Step4',{
      //optional parameters
    });

  </script>

Таким образом мы получим нужный результат:

Добавляя параметр trackSingle и trackSingleCustom мы сами выбираем куда нам отправлять нужное событие

trackSingle используем для стандартных событий пикселя

trackSingleCustom используем для кастомных событий

Использование этих новых возможностей позволяет точно отслеживать несколько пикселей и обеспечивает отсутствие противоречивого или неожиданного поведения при срабатывании событий.

Ссылка на оффициальную информацию от Facebook

Удачной рекламы и успешной аналитики! Подписывайтесь ;-)

Все вопросы можно задать в чате @FacebookAd


Report Page