Кросс-девайс атрибуция ломается там, где у вас нет стабильного server-side ID
Если один и тот же человек приходит с mobile, потом с desktop, а дальше конвертится в приложении, client-side цепочка рвётся: cookies разные, браузеры режут хранение, а event_id помогает только для deduplication, не для склейки пользователей.
В server-side схеме нужен свой идентификатор уровня аккаунта или сессии: login_id, crm_id, hashed email/phone, иногда external_id. Его надо собирать только после явного согласия и передавать в sGTM как общий ключ для нескольких событий и платформ. Тогда Purchase с desktop можно связать с первым AddToCart на mobile, если оба события пришли с одним user key и нормальной timestamp logic.
Что важно сделать:
— нормализовать PII до SHA-256: lowercase, trim, E.164 для телефона;
— хранить mapping user_id ↔ device/event keys на стороне first-party;
— не путать server-side ID с browser fingerprint: первый можно объяснить, второй — нет;
— для Meta CAPI и Google Enhanced Conversions передавать один и тот же business-identifier, а не набор случайных полей.
Проверка простая: если отключить cookies, вы всё равно должны видеть склейку по логину или CRM-ключу в отчетах и в debug-логах sGTM. Если склейки нет, проблема обычно не в CAPI, а в том, что идентификатор живёт только в браузере.
Server Attribution — sGTM, CAPI, Privacy Sandbox
@server_attribution
Кросс-девайс атрибуция ломается там, где у вас нет стабильного server-side ID
Этот пост опубликован в Telegram-канале Server Attribution — sGTM, CAPI, Privacy Sandbox. Подписаться можно по ссылке: @server_attribution.