Выводы
01
Retention: небольшой плюс теста, значимости нет. По strict day-N (Firebase user_id → backend uid, когорта 19 июня, 1 116 vs 1 135) тест выше на всех горизонтах: D1 +3.0 пп (54.8% vs 57.9%, z=1.46), D3 +0.9 пп, D7 +0.7 пп (z=0.36), D14 +1.1 пп (z=0.59) — но ни одна дельта не значима. По rolling («вернулся хотя бы раз к дню N», R20) дельты малы: rD3 +1.3 пп, rD7 +0.4 пп, rD14 +1.2 пп. Значимого эффекта на удержание нет.
02
Реальные покупки: контроль впереди по деньгам, но разрыв сужается. 396 покупателей vs 367 (−7.3%), CR от дошедших до маркета 6.73% vs 6.19% (Δ−0.54 п.п., z=1.20, p≈0.23 — незначимо). Выручка $3 306 vs $2 844 (−14.0%), ARPPU $8.35 vs $7.75 (−7.2%), ARPU/дошедшего $0.562 vs $0.480. Первичных покупателей 384 vs 355, повторных покупок 17 vs 13. За 14.07 на фоне притока трафика тест собрал 49 покупателей против 33 — z упал с 1.88 до 1.20 за один день. Якорь — DoppyEvents.transactions (R16), дедуп LIMIT 1 BY transaction_id, is_fraud не фильтруется (R5/B7). Армы geo-сбалансированы — разрыв не страновой.
03
WhyBuyGlasses: одинаковый охват, ×2.0 глубина просмотра. До экрана доходит близкое число юзеров (2 096 vs 2 019). Но тест просматривает 44.0 слайда vs 22.1 в control (+99%) — эффект стабилен всё время теста. Streak-контекст делает оффер релевантным, но в покупки это по-прежнему не конвертирует.
04
Создание контента: тест стабильно сильнее. Publish_Tap +7.9%/юзер, VideoCapture_Appear +6.9%, Create_Tap +5.4%. Streak-механика мотивирует снимать видео. Если приоритет — UGC-supply и creator pipeline, тест лучше.
05
Итоговый trade-off: деньги против supply. Тест → больше контента (+8% публикаций/юзер), глубже изучает оффер (WBG ×2.0), чуть выше strict-retention (незначимо); вовлечённость на уровне или чуть выше контроля (события +3.0%, сессии +1.2%, feed +4.0%, media −0.4%). Контроль → деньги: ARPPU +7.7% выше, больше покупателей, выше CR (Δ+0.54 п.п. в пользу контроля, незначимо) — но за последний день разрыв заметно сузился. Если решать по выручке — контроль; если по UGC-supply — тест.
06
Осторожно с интерпретацией. Флаг применён ко ВСЕМ пользователям (не только новые регистрации), когорта retention — существующие активные юзеры. Армы: 8 588 control / 8 620 test (assigned = активны в окне). События атрибутированы джойном по арм-мапу (арм — свойство юзера), БЕЗ требования флага на каждом событии: иначе Session_Start и ранние события сессии занижаются почти вдвое. DAU по Session_Start, чтобы серверные батчи не искажали кривую. С 10.07 идёт приток трафика (DAU выросло с ~1 000 до ~1 300 на арм) — свежие дни весят больше в оконных метриках.
Источники данных (снапшот 15.07.2026, окно Jun 19 – Jul 14, арм-мап с 18.06): PostHog events → DoppyEvents.posthog_events_message. Арм-мап = argMax($feature/ANDROID_POST_REGISTRATION_DEEPLINK по event_date), identity = distinct_id 24-hex = backend uid, 17 208 юзеров (8 588 / 8 620); события/воронки атрибутированы джойном по арм-мапу без флаг-фильтра. Retention → DoppyEvents.firebase_doppy_raw (user_id → backend uid = splitByString(':',user_id)[1], любое событие = активность, когорта Jun 19, strict day-N + rolling R20; экспорт полон по Jul 14 — зрелы 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 5 882 / 5 928; 18 покупателей unattributed, $111). GEO из $geoip_country_code — модальная страна по Session_Start (серверные события ресолвятся в DE). Эксперимент зарегистрирован в PostHog 06.07 («STREAK / Wallet after reg»), флаг активен, тест продолжается. CH-запросы через HTTP-интерфейс (curl) с прокинутым арм-мапом как external table.