Выводы
01
Retention: strict-плюс есть, rolling его не подтверждает. По strict day-N (Firebase user_pseudo_id → backend uid, когорта 19 июня) тест выше на всех горизонтах: D1 +2.5 пп (56.1% vs 58.5%, z=1.18), D3 +0.5 пп, D7 +0.8 пп (z=0.38), D14 +1.3 пп (z=0.69) — но ни одна дельта не значима. По rolling («вернулся хотя бы раз к дню N», R20) разница почти исчезает: rD7 control даже чуть выше (80.8% vs 80.6%), rD14 обе ≈87–88%. Значимого эффекта на удержание нет.
02
Реальные покупки: контроль впереди по деньгам. 327 покупателей vs 300 (−8.3%), CR от дошедших до маркета 6.87% vs 6.23% (Δ−0.64 п.п., z=1.26, p≈0.21 — незначимо, контроль ведёт). Выручка $2 565 vs $2 120 (−17%), ARPPU $7.84 vs $7.07 (−9.9%), ARPU/дошедшего $0.539 vs $0.440. Первичных покупателей 316 vs 288, повторных покупок 15 vs 10. Якорь — DoppyEvents.transactions (R16), дедуп LIMIT 1 BY transaction_id, is_fraud не фильтруется (R5/B7). Армы geo-сбалансированы — разрыв не страновой.
03
WhyBuyGlasses: одинаковый охват, ×2.1 глубина просмотра. До экрана доходит близкое число юзеров (1 646 vs 1 626). Но тест просматривает 44.3 слайда vs 20.8 в control (+113%) — эффект стабилен всё время теста. Streak-контекст делает оффер релевантным, но в покупки это по-прежнему не конвертирует.
04
Создание контента: тест стабильно сильнее. Publish_Tap +10.2%/юзер, VideoCapture_Appear +7.2%, Create_Tap +6.3%. Streak-механика мотивирует снимать видео. Если приоритет — UGC-supply и creator pipeline, тест лучше.
05
Итоговый trade-off: деньги против supply. Тест → больше контента (+9–10% публикаций/юзер), глубже изучает оффер (WBG ×2.1), чуть выше strict-retention (незначимо); вовлечённость при этом на уровне контроля (сессии +1.1%, feed +1.0%, media −2.4%). Контроль → деньги: ARPPU +9.9%, больше покупателей, выше CR (Δ+0.64 п.п. в пользу контроля, незначимо). Если решать по выручке — контроль; если по UGC-supply — тест.
06
Осторожно с интерпретацией. Флаг применён ко ВСЕМ пользователям (не только новые регистрации), когорта retention — существующие активные юзеры. Армы: 7 251 control / 7 226 test (assigned = активны в окне). События атрибутированы джойном по арм-мапу (арм — свойство юзера), БЕЗ требования флага на каждом событии: иначе Session_Start и ранние события сессии занижаются почти вдвое. DAU по Session_Start, чтобы серверные батчи не искажали кривую.
Источники данных (снапшот 10.07.2026, окно Jun 19 – Jul 9): PostHog events → DoppyEvents.posthog_events_message. Арм-мап = argMax($feature/ANDROID_POST_REGISTRATION_DEEPLINK по event_date), identity = distinct_id 24-hex = backend uid, 14 477 юзеров (7 251 / 7 226); события/воронки атрибутированы джойном по арм-мапу без флаг-фильтра. Retention → DoppyEvents.firebase_doppy_raw (user_id → backend uid = splitByString(':',user_id)[1], любое событие = активность, когорта Jun 19, strict day-N + rolling R20; экспорт полон по Jul 8 — зрелы D1/D3/D7 и D14). Покупки → DoppyEvents.transactions (R16-якорь: transaction_type=marketplace_purchase_buyer, purchase_type=external, fiat_asset≠'', дедуп LIMIT 1 BY transaction_id; is_fraud НЕ фильтруется per R5/B7 — в transactions его нет; знаменатель CR — Market_Appear reachers 4 762 / 4 817; 19 покупателей unattributed, $117). GEO из $geoip_country_code. Официальный эксперимент в PostHog — статус Draft (start_date = null), флаг активен, тест продолжается. CH-запросы через HTTP-интерфейс (curl) с прокинутым арм-мапом как external table.