Server-side трекинг ломается не на коде, а на границах между сервисами
Если собирать пайплайн по частям, чаще всего теряются не события, а их связка: клик, сессия, consent и postback начинают жить отдельно. Поэтому сначала фиксируйте, какой ID считается главным: click_id, gclid, fbclid, app_instance_id или свой UUID.
Дальше проверьте 4 узла:
— входной запрос: не режется ли query string на редиректах и CDN;
— хранилище: сохраняется ли связка ID с таймстампом и source;
— отправка: не дублируются ли события при ретраях;
— сверка: одинаково ли считаются окна атрибуции в трекере, GA4 и MMP.
Самая частая ошибка — отправлять в сервер-сайд «чистые» конверсии без контекста. Тогда дальше невозможно понять, был ли это органик, paid, повторный визит или доезд postback. Второй провал — не логировать ошибки доставки: если событие ушло в никуда, вы узнаете об этом только по расхождению отчётов.
Хороший пайплайн не обязан быть сложным. Он обязан быть наблюдаемым: на каждом шаге должен оставаться след, по которому можно восстановить путь события от клика до конверсии.
Attribution Deep
@attribution_deep
Server-side трекинг ломается не на коде, а на границах между сервисами
Этот пост опубликован в Telegram-канале Attribution Deep. Подписаться можно по ссылке: @attribution_deep.