Задержка конверсии: как строить распределение click-to-event и оценивать зрелость

Как анализировать задержку click-to-event и event-to-decision: maturity waterfall, цензурирование, квантили, SQL и корректное сравнение свежих рекламных когорт.

Оглавление9 разделов

Задержка конверсии — это распределение, а не один средний срок. Часть событий появляется за минуты, часть — через дни, а коммерческое решение может прийти ещё позже. Если dashboard сравнивает когорты разного возраста, свежий трафик проигрывает по определению, даже когда его реальное качество не изменилось.

Три лага

Click-to-event описывает поведение пользователя, event-to-received — доставку данных, received-to-decision — операционный hold и проверку. Их сумма даёт время до зрелого статуса, но причины и владельцы у частей разные.

Храните четыре времени

  • clicked_at — исходное рекламное взаимодействие
  • occurred_at — квалифицирующее событие
  • received_at — получение события аналитической системой
  • decided_at — присвоение зрелого статуса

Времена приводятся к UTC instant, но исходная timezone сохраняется для аудита. Использование created_at записи вместо occurred_at смешивает пользовательскую задержку с очередью и сетью.

Когорта строится по началу пути

Для оценки качества трафика строки группируют по click_date, а не conversion_date. Отчёт по дате конверсии смешивает старые и новые рекламные когорты и не позволяет понять, какой закупке принадлежал результат.

SQL: три компонента задержки
SELECT click_id, source_id, geo,
       extract(epoch FROM (occurred_at-clicked_at))/3600.0 AS click_to_event_h,
       extract(epoch FROM (received_at-occurred_at))/60.0 AS event_to_received_m,
       extract(epoch FROM (decided_at-received_at))/3600.0 AS received_to_decision_h
FROM conversion_timeline
WHERE clicked_at >= :cohort_start
  AND clicked_at <  :cohort_end
  AND occurred_at IS NOT NULL;

Maturity waterfall

Для каждого возраста когорты покажите, какая доля ожидаемого зрелого результата уже наблюдается. Например, коэффициент D3 = cumulative approved by age 3 / final approved at chosen long horizon. Числа оцениваются только на исторических когортах, успевших прожить финальный горизонт.

SQL: матрица возраста когорты
WITH ages AS (
  SELECT date(clicked_at) AS click_date,
         floor(extract(epoch FROM (decided_at-clicked_at))/86400)::int AS age_day,
         conversion_id
  FROM conversion_timeline
  WHERE status='approved'
    AND clicked_at < :fully_mature_cutoff
)
SELECT click_date, age_day,
       count(DISTINCT conversion_id) AS approved_on_day,
       sum(count(DISTINCT conversion_id)) OVER (
         PARTITION BY click_date ORDER BY age_day
       ) AS approved_cumulative
FROM ages
GROUP BY click_date, age_day
ORDER BY click_date, age_day;

Среднее скрывает хвост

Показывайте медиану и квантили P75/P90/P95, а также количество наблюдений. Среднее чувствительно к редким долгим задержкам; один P90 не показывает форму распределения. Для разных GEO, устройств, платёжных маршрутов и дней недели профили могут отличаться.

Цензурирование свежих кликов

Клик двухдневной давности без события не является доказанным non-converter на горизонте 14 дней. Его время известно только как «больше двух дней». NIST называет это right censoring. Для оценки полной функции времени используют survival methods либо берут только полностью зрелые когорты.

Nowcast без подмены факта

Свежий результат можно оценить как observed approved / expected maturity share данного возраста. Но это прогноз с интервалом, а не фактическое число. Если профиль задержки изменился из-за нового GEO или hold, старый коэффициент создаст систематическую ошибку.

Простой nowcast с явной версией
maturity_share(age, segment, model_version) =
  historical cumulative approved by age
  / historical approved at final horizon

forecast_final = observed_approved / maturity_share

Показывайте observed и forecast раздельно;
не используйте формулу при малой или нестабильной базе.

Как обнаружить изменение задержки

Сравнивайте не только конечную долю, но и распределение event-to-received и received-to-decision. Рост первого у всех источников указывает на интеграцию или очередь; рост второго — на hold или операционный процесс. Стабильный click-to-event при позднем approved не означает ухудшение аудитории.

Регламент сравнения кампаний

  1. Зафиксировать один observation end.
  2. Выбрать одинаковый возраст сравниваемых когорт.
  3. Разделить observed, pending и forecast.
  4. Стратифицировать профиль задержки.
  5. Показать интервалы и объём.
  6. Проверить изменение схемы и hold.
  7. При окончательном решении дождаться mature cutoff.
Не дорисовывайте поздние конверсии в исходный факт

Backfill и созревание должны менять текущую оценку через новую версию snapshot. Исходный отчёт сохраняется, чтобы измерять ошибку прогноза и обнаруживать дрейф задержки.

Источники и границы применимости

Google Ads: conversion delay · NIST: censored observations

Вывод

Conversion lag становится управляемым, когда разделён на поведение, доставку и решение. Когортный возраст защищает сравнение, maturity waterfall позволяет осторожный nowcast, а цензурирование не превращает свежие клики в нули. Финансовые решения всё равно принимаются по зрелому snapshot, а прогноз остаётся прогнозом.

Станьте партнёром и начните работать

Перейдите в партнёрскую программу, изучите актуальные условия и выберите подходящий формат сотрудничества.

СТАТЬ ПАРТНЁРОМ

Связанные материалы

Все статьи
Аналитика

Бюджет первого теста: как рассчитать сумму, которой хватит для решения

Как рассчитать бюджет теста рекламы через частоту события, MDE, power, стоимость трафика, зрелость, технический этап, лимит потерь и оборотный капитал.

Аналитика

Витрина данных для арбитражной команды: схема от клика до выплаты

Как построить аналитическую витрину арбитража: grain, факты, измерения, click ID, статусы, валюты, ревизии, late events, тесты и воспроизводимые отчёты.

Аналитика

Statistical power и MDE: как планировать тест конверсии до запуска

Подробный разбор statistical power, MDE и размера выборки для конверсии: baseline, alpha, beta, абсолютный эффект, кластеры, лаг и симуляция дизайна.