Доброго времени суток, арбитраны! Сегодня хочу рассказать о том, как довести Фейсбуковский пиксель из ссылки в РК до страницы спасибо. Сделать это можно несколькими способами:

  1. Собирая $_GET параметры
  2. Складируя в куки
  3. Складируя в сессию

Рассмотрим сегодня 1-й способ. Сразу отмечу, что способы 2 и 3 я не использую тк считаю, что нет ничего надежнее, чем выдрать пиксель из урлки по первому способу. Но вы сами там решайте как вам удобнее работать. Осведомлен — значит вооружен. Погнали!

Готовим ссылку с метками

Этот способ годится и не только для проброса пикселя, но и любых меток, которые вы запихали рекламную ссылку. Метки — это параметры, начинающиеся после ? в url-строке. Вот пример:

https://croyman.ru/?pixel=123456789&utm_content=primer_ssilki

Здесь вы видите две метки: pixel и utm_content. Им я присвоил произвольные значения. Метки можно называть как угодно и присваивать любые значения. На открываемую по ссылке страницу метки ни каким образом не повлияют.

Все что идет после знака вопроса ? попадает в глобальный массив $_GET и с легкостью извлекается оттуда внутри нашего PHP кода страницы. Делается это вот так:

$pixel = $_GET['pixel'];
$utm_content = $_GET['utm_content'];

Теперь значения, которые мы присвоили меткам записав их в урл, присвоятся переменным $pixel и $utm_content. И дальше мы сможем делать с ними все что захотим.

Начинаем проброс

Находим на нашем прокло-ленде форму и смотрим что там есть. Для примера покажу на пустом HTML без лишнего контента.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Проброс пикселя</title>
  </head>
  <body>

    <div class="form_place">

      <form class="order-form" action="order.php" method="POST"> // наша формочка

        <input type="name" name="name" placeholder="Введите ФИО" required></input>
        <input type="phone" name="phone" placeholder="+7 900 000 00 00" required></input>
        <button id="sendLead">Отправить</button>
  
      </form>

    </div>

  </body>
</html>

Видим что на форме есть два поля для заполнения юзером: ФИО и Телефон. При нажатии на кнопку button, данные из этих полей полетят в обработчик order.php (у вас может быть любое другое название файла обработчика). Чтобы пробросить пиксель на страницу Спасибо, нам необходимо добавить еще одно скрытое поле в форму и присвоить ему значение, прописанное в урлке. Делается это так: дописываем парочку инпутов с типом hidden («скрытый»).

<input type="hidden" name="pixel"></input>
<input type="hidden" name="utm_content"></input>

А затем выдираем из массива $_GET нужные нам значения и присваиваем их нашим инпутам:

<input type="hidden" name="pixel" value="<?=$_GET['pixel']?>"></input>
<input type="hidden" name="utm_content" value="<?=$_GET['utm_content']?>"></input>

Я тут заодно с пикселем и метку свою решил пробросить. В обработчиках от ПП обычно уже встроен сбор GET параметров, но мы то с вами просто учимся делать это самостоятельно) Поймете принцип работы — дальше разберетесь самостоятельно с кодом от ПП.

В итоге наша форма будет выглядет так:

<form class="order-form" action="order.php" method="POST"> // наша формочка

  <input type="hidden" name="pixel" value="<?=$_GET['pixel']?>"></input>      
  <input type="hidden" name="utm_content" value="<?=$_GET['utm_content']?>"></input>
      
  <input type="name" name="name" placeholder="Введите ФИО" required></input>  
  <input type="phone" name="phone" placeholder="+7 900 000 00 00" required></input>     
  <button id="sendLead">Отправить</button>
  
</form>

Во фронте теперь все готово для дальнейшего проброса. Идем в бэкенд — открываем наш обработчик.

Допиливаем обработчик и редиректим на Спасибу с параметрами

ВАЖНО: Если в обработчике встроен сбор GET параметров и из них формируется массив данных для отправки в ПП, то нужно найти и добавить в него свои метки, либо пользоваться для передачи пикселя метками, предлагаемыми ПП. Например, класть пиксель в sub_id5. И в дальнейшем юзать именно эту метку.

Рассмотрю на примере куска кода обработчика из прошлой статьи. Там посмотрите полный код, я лишь кусочек выну, необходимый именно для проброса пикселя на спасибу.

if ($response['success'] === true)
{

  // редирект в случае успеха
  header('Location: ./confirm.php');

} else {
  // редирект в случае ошибки
  header('Location: ./error.php');

}

Здесь мы видим 2 редиректа: в случае успеха и в случае ошибки. Нам нужен первый. Чтобы пиксель улетел на спасибу, нужно в хвост к ссылке редиректа приклеить опять наш пиксель. Делается это так:

// редирект в случае успеха
  header('Location: ./confirm.php?pixel=' . @$_POST['pixel']);

Поскольку в обработчик из формы мы отправляем значения инпутов методом POST, то и вынимать их нужно уже не из урлки, как в самом начале мы делали, а уже из глобального массива $_POST. Символ @ перед массивом ставится, чтобы PHP не отстукивал ошибку в браузер, на случай отсутствия метки pixel.

Можно еще влепить небольшую проверочку, но практического толку от нее никакого))

$pixel = @$_POST['pixel'];
$utmStr = '';

if(isset($pixel))
{
  $utmStr = '/?pixel=' . $pixel;
}

// редирект в случае успеха
  header('Location: ./confirm.php' . $utmStr);

В итоге должно получиться вот так:

if ($response['success'] === true)
{

  $pixel = @$_POST['pixel'];
  $utmStr = '';

  if(isset($pixel))
  {
    $utmStr = '/?pixel=' . $pixel;
  }

  // редирект в случае успеха
  header('Location: ./confirm.php' . $utmStr);

} else {

  // редирект в случае ошибки
  header('Location: ./error.php');

}

Теперь, при успешном засыле лида в ПП, произойдет редирект на Спасибу и в урл добавится наш пиксель. На самой Спасибе мы как обычно коротким IMG кодом фб пикселя отлавливаем событие. Из уже знакомого нам массива $_GET выковыриваем ID пикселя вот таким кодом:

<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=<?=@$_GET['pixel']?>&ev=Lead">

Вот, собственно, и все по этому вопросу. Принцип работы я рассказал. Надеюсь, всем понятно) По всем вопросам пишите в телегу. Всем высоких РОИ и крепких нервов!