Как устроен trigger engine

Trigger engine — это подписчик на поток событий. Каждое действие пользователя (pageview, add_to_cart, scroll_depth, inactivity_timeout) генерирует событие, которое движок получает в реальном времени. Для каждого события проверяется набор правил: выполнены ли все условия этого правила для данного пользователя в данный момент.

Событие → Правило: [условия] → [действие]
Пример: add_to_cart → [корзина > 3000 ₽] → показать попап «Бесплатная доставка от 5000 ₽»

Если условия выполнены, движок запускает действие: показывает попап, меняет баннер, отправляет push-уведомление.

Анатомия триггерного правила

Типичное правило состоит из четырёх компонентов:

Компонент Пример
Событие exit_intent (попытка закрыть вкладку)
Условия В корзине есть товары, пользователь не первый раз на сайте
Действие Показать попап «Оставили что-то в корзине?»
Cooldown Не показывать чаще раза в 48 часов

Чем богаче набор поддерживаемых событий и чем гибче условия (сегменты, история, параметры сессии), тем точнее можно настроить триггеры.

Управление конфликтами

На практике у активного пользователя могут одновременно выполниться несколько правил. Без управления конфликтами он получит сразу несколько попапов подряд. Стандартное решение: числовой приоритет правил и глобальный лимит — не более одного попапа за сессию. Более сложный подход — машинная оптимизация, которая выбирает наиболее релевантное действие на основе истории взаимодействий пользователя.

Важно: агрессивные триггеры без cooldown быстро переходят в раздражение. Тестируйте частоту показа через A/B тест: иногда более редкий, но точный триггер даёт лучший результат, чем максимальная частота.