Freshness SLA для рекламных данных: сколько минут запаздывает каждая метрика

Как описать свежесть рекламных данных: event time, ingestion, processing, availability, пересчёты, SLO и правила решений на незрелых метриках.

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

Дашборд может обновляться каждую минуту и всё равно показывать вчерашнюю реальность. Freshness SLA описывает не частоту перерисовки, а путь события от возникновения до доступности в конкретной метрике. Для управления рекламой нужно знать минимум четыре времени: event, ingestion, processing и report availability. Без них падение FTD неотличимо от задержки postback или пересчёта витрины.

Fresh не значит mature

Свежая строка быстро появилась в отчёте; зрелая строка с высокой вероятностью уже получила ожидаемые поздние события и корректировки. Это разные свойства.

1. Назовите часы

Event time приходит от источника, received time ставит приёмник, processed time — обработчик, available time — витрина. Все значения хранятся с часовым поясом или в UTC и конвертируются только для представления.

Если источник присылает время без зоны или с неверными часами, поле получает quality flag. Молчаливое исправление по текущему времени скрывает проблему.

2. Разложите задержку

Total freshness lag = доставка + очередь + обработка + публикация. Для каждого компонента есть владелец и наблюдаемый идентификатор batch или trace.

Общий p95 полезен для обещания, но расследование требует распределения по источнику, типу события и часу.

3. Определите SLI

Пример SLI: доля событий, доступных в витрине не позднее 10 минут после received time. Другой SLI — возраст последнего успешно обработанного event time. Они отвечают на разные вопросы и могут расходиться при редком потоке.

На источнике с нулевыми событиями нельзя измерить процент своевременной доставки; нужен heartbeat или синтетический контроль.

4. Задайте SLO по классу данных

Клики могут требоваться почти сразу для pacing, approved — приходить часами, выплаты — закрываться периодически. Один SLA для всех таблиц либо бессмысленно слаб, либо недостижимо строг.

Класс указывает бизнес-решение, нормальную задержку, аварийный порог и допустимую деградацию.

Поле паспортаПример смыслаЗачем
event_timeКогда событие произошло у источникаКогорта и порядок
received_atКогда приняли данныеСетевая задержка
available_atКогда строка появилась в витринеФактическая свежесть
watermarkДо какого event time поток считается закрытымОценка полноты
revisionКакая версия пересчётаСопоставимость отчёта

5. Используйте watermark

Watermark сообщает, до какого event time система считает поток достаточно обработанным. Он не обещает, что поздних событий больше не будет; правило допуска опозданий фиксируется отдельно.

Решения по незрелому хвосту ограничивают: например, не отключают источник только по последним 15 минутам, если watermark отстаёт на час.

6. Отмечайте preliminary и final

Статус preliminary показывает, что метрика может измениться. Final означает закрытие по редакционному или операционному правилу, а не абсолютную невозможность корректировки.

Позднее изменение final требует новой revision и объяснимой причины.

7. Следите за пересчётами

Backfill может обновить старые даты и не изменить текущий freshness lag. Поэтому отдельно измеряют revision lag: насколько далеко в прошлое и как сильно изменился отчёт после пересчёта.

Дашборд должен показывать время последней сборки и максимальную event date затронутой ревизией.

8. Не алертите на тишину без контекста

Ноль событий может быть нормой ночью или признаком остановки трафика. Алерт сравнивает поток с ожидаемым объёмом и проверяет heartbeat интеграции.

Отсутствие click при нулевом spend и отсутствие postback при активном spend — разные ситуации.

9. Введите режим деградации

При нарушении SLO автоматизация снижает доверие к метрике: замораживает агрессивное перераспределение, использует последний закрытый интервал или ограничивает изменение бюджета.

Нельзя просто подставить ноль вместо недоступных данных — алгоритм воспримет технический сбой как бизнес-провал.

10. Проверяйте конец в конец

Синтетическое событие с test namespace проходит разрешённый маршрут и исключается из бизнес-метрик. Оно проверяет приём, обработку и витрину, а не только доступность API.

Периодически реальную строку трассируют по batch ID и контрольным суммам.

SLA без владельца — декоративная цифра

Для каждого этапа нужен владелец, источник времени, способ измерения, канал алерта и действие при нарушении. Иначе отчёт лишь сообщает о проблеме после ущерба.

11. Отчёт для медиабайера

Рядом с метрикой показывают data as of, watermark, expected completeness и revision. Пользователю не нужно понимать архитектуру очередей, но он должен видеть, можно ли принимать решение.

Красный статус объясняет затронутые источники и безопасный режим, а не только пишет «данные задерживаются».

Вывод

Freshness SLA превращает абстрактное «статистика тормозит» в измеримый контракт. Разделяйте времена события и обработки, задавайте SLO по классам, публикуйте watermark и revision, а автоматизацию переводите в безопасный режим при потере свежести. Тогда технический лаг не станет ложным сигналом остановки кампании.

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

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

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

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

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

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

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

Аналитика

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

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

Аналитика

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

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