Анонимы и identity stitching: нужно ли и сколько #16
Notifications
Due Date
No due date set.
Blocks
Depends on
#17 Собрать спеку боевого реализма
ddmitry/clickstream-ch-kafka-superset-demo
#15 Purchase с выручкой: форма события и место в стенде
ddmitry/clickstream-ch-kafka-superset-demo
Reference: ddmitry/clickstream-ch-kafka-superset-demo#16
Reference in New Issue
Block a user
Part of #10
Question
Нужны ли стенду анонимный трафик и склейка идентичностей (identity
stitching) — и в каком объёме. Сейчас у каждого визита есть email
пользователя; в бою большинство трафика анонимно, и склейка — отдельная
большая задача (см.
docs/generator-realism.md, раздел «Пользователиклонируются из словаря»).
Решить: доля анонимов, механика идентификации (когда у визита появляется
user_custom_id), нужен ли сюжет склейки в лабах, что это делает сэталонным миром и числами витрин (
uniq_users).Резолюция: кликстрим анонимный, склейка — через заказы, отношение кук к пользователю N:1
Ответ на вопрос тикета: да, анонимность нужна — и редизайн модели (#18) — единственный дешёвый момент её ввести.
События. Идентификатор пользователя (email) из кликстрима исчезает полностью: у события есть только
clientID(кука). Это честно к источнику: Logs API Метрики UserID не выгружает. Генератору становится проще, не сложнее.Доля анонимов как отдельная ручка не нужна: покрытие идентификации выводится из конверсии воронки — мы знаем ровно тех, кто купил. Это не упрощение, а сам урок: анонимную аудиторию розница знает только через покупки.
Склейка. Карта соответствий кука↔пользователь строится трансформацией из уже существующего моста: purchase-событие (
clientID,purchaseID) ↔ заказ (order_id,user_id). Ни новых полей, ни нового транспорта.N:1. Часть покупателей (порядка 10–20%, точная доля — параметр мира, решит спека #17) покупает с двух кук — «телефон и ноутбук». Ядро лабы:
uniq(посетителей) > uniq(людей), менти выводит расхождение сам.Лаба + лекция. Лаба «сколько посетителей мы на самом деле знаем»: сборка карты, uniq до/после, сверка с манифестом. Лекционная вставка «как в бою»: setUserID и first-party id, детерминированная против вероятностной склейки, identity graph, кросс-девайс, CDP — с рамкой «мы склеили через транзакции, потому что трекер user id не отдаёт».
docs/generator-realism.mdобновить: identity stitching перестаёт быть чистой теорией.Витрины и метрики. Имена становятся честными: «посетители» (
uniq(clientID)) и «известные пользователи» (после склейки) — оба числа в дашборде рядом, их расхождение — наглядный итог лабы.Эталонный мир. Манифест расширяется числами идентичности: uniq кук, uniq известных пользователей, количество двухкуковых покупателей — детерминировано от seed, лаба склейки получает самопроверку («должно склеиться ровно K»). Отдельной пересборки мира тикет не добавляет — она уже оплачена решениями #18/#15.
Отклонено по дороге: оставить идентифицированные визиты (нечестность переехала бы в v2); эмуляция setUserID (нечестно к формату выгрузки Метрики; сюжет «логин посреди сессии» через params — усложнение без нужды); кука 1:N («семейный планшет») и полный граф идентичностей (вероятностная склейка — тема лекции, не лабы джуна).
В спеку #17: точная доля двухкуковых покупателей; форма и место карты соответствий в слоях; имена полей и витрин.