Доброго времени суток, арбитраны. В чатах вижу у многих проблема с тем, что в статистике ФБ и партнерки случаются разногласия. То в ФБ больше лидов, а в ПП — меньше, и наоборот. В этой статье рассмотрю один из вариантов сбора лидов себе, с помощью которого можно проверить ПП на честность (прозвонив лиды), либо найти ошибку у себя на связке или просто подсобрать базу лидов на всякий случай. Мало ли пригодится)
Первый вопрос: куда складировать заявки? Есть несколько вариантов:
- База данных (рекомендуется)
- txt, xls и любые другие файлы
- Google таблицы
- В телегу себе
- Еще хрен пойми куда
В этой статье я расскажу про 2 пункт: сбор лидов в файл. Это самая изи тема для затравочки)
Ищем обработчик
Каждая партнерка, при формировании потока, позволяет вебу выгрузить архивом связку либо отдельно скачать файлик обработчик лидов. Называться он может как угодно: api.php, order.php, sendlead.php и тд и тп. Вот его то мы и будем апгрейдить.
private function getRequestPrams()
{
return [
'referer' => $_SERVER['HTTP_REFERER'],
'ip' => $_SERVER['REMOTE_ADDR'], // IP адрес ( Поле обязательное )
'name' => $_POST['name'], // Имя ( Поле обязательное )
'phone' => $_POST['phone'], // Телефон ( Поле обязательное )
'user_agent' => $_SERVER['HTTP_USER_AGENT'],
'country_code' => $_POST['country'], //страна для обзвона ( Поле обязательное ) в формате UA, IT,
'sub_id1' => $_POST['sub_id1'],
'sub_id2' => $_POST['sub_id2'],
'sub_id3' => $_POST['sub_id3'],
'utm_source' => $_POST['utm_source'],
'utm_content' => $_POST['utm_content'],
'utm_campaign' => $_POST['utm_campaign'],
'utm_term' => $_POST['utm_term'],
'utm_medium' => $_POST['utm_medium'],
'flow_uuid' => FLOW_UUID
];
}
public function send($apiKey)
{
$url = 'https://pizdataya-partnerka.ru/leads/?api_key=' . $apiKey;
$headers = [
'Content-Type: application/json',
];
$params = $this->getRequestPrams();
$json_str = json_encode($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_str);
$output = curl_exec($ch);
curl_close($ch);
$response = json_decode($output, true);
if ($response['success'] === true) {
header(
'Location: ./confirm.php'
);
} else {
header('Location: ./error.php');
}
return $output;
}
На первом попавшемся примере находим функцию отправки лида send(). Так же тут есть функция getRequestPrams() — она отвечает за формирование массива данных по отправляемому лиду. Это удобно тк мы уже можем понять какие нам переменные вынимать для записи в файл. Если же у вас обработчик будет другой, то найти имена переменных не проблема. Идем на проклу или ленд и смотрим какие данные из инпутов уходят в обработчик. Нас интересуют пока только 2 инпута — ФИО и Телефон. Находим их.
<div class="name-i">
<input name="name" placeholder="Мое имя" required="">
</div>
<div class="phone-i">
<input class="phone-i" name="phone" placeholder="Мой телефон" required="" type="tel">
</div>
Нас интересует параметр NAME у каждого из инпутов. В представленном выше варианте это name=»name» и name=»phone». Значит в обработчике будем отлавливать эти параметры из глобального массива $_POST (если у вас обработчик отличается от представленного в статье) и сохранять себе.
Пишем в файл
Допишем в обработчик простую функцию:
function writeLeadsFile($dataLead)
{
// получаем значения фио и номера из массива
$name = $dataLead['name'];
$phone = $dataLead['phone'];
// создаем метку времени приема лида, чтобы потом свериться с ПП или по трекеру чекнуть
$date = date("Y-m-d H:i:s");
// если пременные name и phone пустые - выходим
if(!isset($name) and !isset($phone)) {
exit;
}
// создаем строку для записи
$strLeads = $date . '|' . $name . '|' . $phone . PHP_EOL;
// пишем в файлик наши лидочки
file_put_contents("myleads/leads", $strLeads, FILE_APPEND);
}
Функция file_put_contents создаст вам папку myleads в корне сайта и сложит туда лиды в стопочку. Данные в функцию мы положим при ее вызове из массива, который сформирует скрипт обработчика лидов от партнерки. Вот как в итоге будет выглядеть скрипт обработчика:
function writeLeadsFile($dataLead)
{
$name = $dataLead['name'];
$phone = $dataLead['phone'];
$date = date("Y-m-d H:i:s");
if(!isset($name) and !isset($phone)) {
exit;
}
$strLeads = $date . '|' . $name . '|' . $phone . PHP_EOL;
file_put_contents("myleads/leads", $strLeads, FILE_APPEND);
}
public function send($apiKey)
{
$url = 'https://pizdataya-partnerka.ru/leads/?api_key=' . $apiKey;
$headers = [
'Content-Type: application/json',
];
$params = $this->getRequestPrams();
writeLeadsFile($params); // заветная строчка сохраняющая лиды в файлик
$json_str = json_encode($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_str);
$output = curl_exec($ch);
curl_close($ch);
$response = json_decode($output, true);
if ($response['success'] === true) {
header('Location: ./confirm.php');
} else {
header('Location: ./error.php');
}
return $output;
}
Кайфуем от проделанной работы
Все, теперь делаем пару тестовых лидов и идем смотреть что у нас в файлике. А там будет примерно следующее:
2022-02-20 16:46:18|Иванов Иван Иванович|89090000000
2022-02-20 16:46:34|Петров Петр Петрович|89091234567
2022-02-20 17:04:50|Сидоров Сидор Сидорович|89097654321
Наслаждаемся результатом и ждем вторую часть статьи, в которой будем писать данные в базу данных. Там будет посложнее. Почитайте пока про админку БД phpMyAdmin, формирование запросов MySQL, подготовку SQL запросов PDO, формирование POST запросов curl в PHP и прочую программистическую лабуду) Вам будет палехче читать тогда. Сильно разжевывать не буду все эти основы, просто дам вектор куда двигаться.
Всем спасибо за прочтение! Желаю вам хороших РОИ в эти сложные для работы с ФБ времена))
PS: Совсем забыл! В папку с файлом, в который вы будете писать лиды, ОБЯЗАТЕЛЬНО положите еще один файлик: .htaccess с вот таким содержимым:
deny from all
Это избавит вас от проблем, если вдруг кто захочет извне пошариться и спиз*ить ваши лидочки, а так же ботов и пауков от поисковиков не пустит нюхать заветную папочку) Все, на сегодня все…
UPD 22/02/2022:
Если юзаете скрипт для связок в Кейтаро, то папку и файл для сбора лидов нужно сделать руками заранее.