Как устроен 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 тест: иногда более редкий, но точный триггер даёт лучший результат, чем максимальная частота.