Доброго времени суток, арбитраны! Сегодня хочу рассказать о том, как довести Фейсбуковский пиксель из ссылки в РК до страницы спасибо. Сделать это можно несколькими способами:
- Собирая $_GET параметры
- Складируя в куки
- Складируя в сессию
Рассмотрим сегодня 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">
Вот, собственно, и все по этому вопросу. Принцип работы я рассказал. Надеюсь, всем понятно) По всем вопросам пишите в телегу. Всем высоких РОИ и крепких нервов!