# Пишу трекинг на PHP: логика работы трекера и как Redis ускоряет обработку запросов

> Канал: **CROYMAN** (@nutramancroy)  
> Дата: 7 мая 2026  
> Длительность: 28:39  
> Категория: tutorial  
> Источник: https://www.youtube.com/watch?v=y9gMhzoYJe0  
> Страница: https://aff.top/videos/pisu-treking-na-php-logika-raboty-trekera-i-kak-redis-uskoriaet-obrabotku-zaprosov  

## Краткое содержание

Автор продолжает серию по созданию собственного трекера трафика на PHP и разбирает базовую архитектуру обработки клика. Проект перенесён в папку app, добавлены Dockerfile, Composer, autoload классов, конфиг, подключения к MySQL и Redis. На примере index.php показывается, какие данные можно собрать при клике: IP, host, referer, user-agent, headers, cookies, GET/POST-параметры, URI, query string, метод запроса, протокол, порт и время. Основной акцент — алгоритм выдачи click ID: новый пользователь получает ID и cookie, данные краткосрочно пишутся в Redis, а фоновый worker затем переносит их в MySQL, чтобы ускорить редирект и не нагружать базу.

## Ключевые тейки

- **PHP собирает ключевые данные клика** — На первом запросе можно снять IP, домен, referer, user-agent, headers, cookies, GET/POST-метки, URI, query string, метод, протокол, порт и время запроса для дальнейшей фильтрации.
- **Redis нужен для быстрого редиректа** — Клик сначала пишется в Redis, потому что чтение и запись идут из оперативной памяти быстрее, чем в MySQL. Это позволяет быстро отдать пользователю нужный сайт без задержек.
- **Worker переносит клики в MySQL** — Redis используется как временный буфер, а фоновый worker спокойно забирает данные и складывает их в долгосрочную базу MySQL, не тормозя обработку живого клика.
- **Click ID завязан на Redis и cookie** — Если в Redis нет записи и cookie пустая, генерируется новый click ID, ставится cookie и фиксируется уникальный клик. Повторные визиты определяются по cookie и временной записи.
- **UTM-метки остаются основой аналитики** — Все GET-параметры после знака вопроса собираются вместе с кликом. Эти метки нужны, чтобы понимать источник, связку, кампанию и сопоставлять клики, лиды и дальнейшую статистику.
- **Composer упрощает структуру проекта** — Autoload Composer подключает классы из src и общий config без ручного require в каждом файле. Это делает проект трекера масштабируемее по мере роста количества классов.

## Вопросы и ответы

### Какие данные по клику можно собрать на PHP?

Можно собрать IP, host, referer, user-agent, headers, cookies, GET и POST параметры, URI, query string, метод запроса, протокол, порт и время клика.

### Зачем трекеру Redis, если есть MySQL?

Redis нужен для быстрой временной записи и проверки кликов в оперативной памяти, чтобы не тормозить редирект тяжёлыми операциями чтения и записи в MySQL.

### Как автор предлагает выдавать click ID пользователю?

Если записи в Redis нет и cookie пустая, генерируется новый click ID, он пишется в cookie, а данные о клике временно сохраняются в Redis как уникальные.

### Как обрабатывать повторный клик того же пользователя?

Если cookie есть, а запись в Redis уже истекла, клик считается неуникальным, снова пишется в Redis для статистики, а пользователю отдаётся тот же подходящий сайт.

### Почему нельзя грузить много JS на первом клике?

Первый запрос должен отработать максимально быстро: PHP собирает данные, делает проверку и редиректит. JS автор предлагает подключать уже после перехода на целевой сайт.

## Темы

- Трекинг кликов
- PHP трекер
- Redis для трекера
- Click ID
- UTM-метки
- Фильтрация трафика
- MySQL база
- Docker окружение

## Фрагмент транскрипта

Привет, друзья. Меня зовут Роман. В узких арбитражных кругах я больше известен как Кройман. Это четвёртое видео из серии видосов о том, как я собственными руками на PHP собираю свой маленький малютку трейр для работы с трафиком. Вот где-то здесь появится ссылка на плейлист, в котором ты можешь посмотреть предыдущий видос по теме и быть в курсе, чем же я здесь таким планирую заниматься. Эта тема будет полезна всем, кто только учится программировать на PHP, либо действующим арбитражникам, которые хотят разобраться в теме трекинга более глубоко и вместе со мной поковыряться и создать свой трекер. Сразу скажу, я не профессиональный кодер и не планирую грузить тебя какими-то глубокими академическими знаниями. Моя цель не умничать, а делиться с тобой тем, как я сам себе создаю полезные сервисы для повседневной работы. Если вдруг каким-то чудесным образом это видео наберёт 10 лайков, я обещаю, что подготовлю видос с обзором подборки полезных каналов, где очень подробно и хорошо объясняется по поводу PHP и прочих языков программирования, на которых учился лично я сам. В конце этого видео я покажу тебе блоксхему алгоритма выдачи уникального клиck ID, которым мы будем идентифицировать каждого пользователя, каждый клик по нашей рекламной ссылке и подробно эту блоксхему разберу по шагам. А этим видосом ты можешь поделиться со своими друзьями арбитражниками либо теми, кто только-только делает первые шаги в программировании на PHP. Буду рад конструктивным комментарием от тебя по поводу алгоритмов и логики сбора и обработки данных. Возможно, вместе с тобой я смогу сделать свой код немножечко лучше. Совсем забыл. Под этим видео будет ссылка на мой GitHub репозиторий, в котором будет выложен весь код, который я озвучиваю и показываю в своих видео. Ты там можешь следить за разработкой моего проекта и повторять след вслед, скачать себе, устанить у себя на локальной машине, возможно, даже на сервере. Всё, что захочешь, можешь делать с этим кодом, предлагать правки для него. Также можешь перейти ко мне в Telegram-канал, сказать мне, что я делаю либо похвалить меня, что я делаю хорошо. В общем, любой фидбэк мне будет очень полезен, рассчитываю на тебя. Ну а сейчас давай смотреть схему. Вот эту схему я подготовил для того, чтобы тебе показать, как же мы будем собирать информацию по кликам. По моему плану, как будет происходить весь процесс. Юзер заходит на нашу ссылочку, которую мы ему кормим в рекламе, либо где-то разбросали их, переходит по этой ссылке. Здесь уже работает наш трекинг. Наш трекер работает и выбирает. Ну, вкратце, вот так вот я описываю, что, допустим, у нас есть три сайта, из которых трекеру нужно выбрать в соответствии с условиями, которые мы в него запишем, один из них. Вот, допустим, сайт один не подходит под условием, сайт 3 не подходит, а сайт 2 удовлетворяет условия. Мы сюда редиректим либо подгружаем просто в браузер контент второго сайта юзеру. Перед тем, как это сделать, наш трекер пишет в базу данных, собирает сначала вот эти все данные, а п…

*(Полный транскрипт на странице видео.)*

---

Источник данных: aff.top — открытая база арбитражного коммьюнити.  
Канонический URL: https://aff.top/videos/pisu-treking-na-php-logika-raboty-trekera-i-kak-redis-uskoriaet-obrabotku-zaprosov
