«Условие»: как работают контекстные фильтры в сценариях
В сценариях можно уточнить, по каким данным нужно сработать, с помощью фильтров в блоке 'Условие'.
В нем доступны разные сущности (контексты) в зависимости от того, что нужно проверить. Например, сценарий по снижению цены должен запускаться только при доступности продукта, а брошенная корзина — только после сессии с пополением списка.
Контексты во всех сценариях
Данные сущности доступны во всех сценариях.
По клиенту
Определяет, должен ли сценарий сработать по клиенту, который в него попал.
Используем контекст 'Клиенты'. Проверяем, что есть валидный email и подписка и не было рассылок за последние сутки.
По доступности промокода и По наличию продуктов в сегменте
Задают условия срабатывания вне зависимости от данных по клиенту.
Сегмент по продукту может быть любым (реалтаймовым, пересчитываемым, статическим).
Сценарий отработает, если в сегменте 'Новинки' есть хотя бы пять продуктов.
Пул может быть из любой кампании. Важно, чтобы он был запущен в работу.
Сценарий отработает, если в пуле 'Для акции 10%' есть хотя бы один доступный промокод.
Контексты по событиям
События, которые запускают сценарии, имеют свои данные.
Например, если это заказ, — стоимость, купленные продукты, статус позиций и т.д.
Выбор события дает возможность фильтровать переданные в нем сущности с помощью специальных контекстов.
Рассмотрим, как с ними работать, на примере заказа и сессии.
По заказу
Доступен в сценариях по событиям 'Заказ добавлен или изменен' и 'Статус заказа изменен'.
Задача: сценарий должен запускаться при доставке заказа стоимостью от 30 000.
Создаем сценарий по событию 'Статус заказа изменен' задаем условие:
Используем контекст 'Заказы'. Таким образом проверяем именно заказ, запустивший сценарий.
Отличие от проверки по клиенту
При использовании контекста 'Клиенты' задается условие, что у клиента есть нужные данные. При этом связи с событием нет:
Проверяется, что у клиента есть заказ от 30 000. Это может быть как заказ, который запустил сценарий, так и любой другой из истории. Для текущей задачи данный контекст не подходит.
По сессии
Доступен в сценариях по событию 'Окончание сессии'.
Задача: для создания брошенной корзины нужно проверить, что клиент во время сессии добавлял продукты в список.
Используем контекст 'Сессия'. Таким образом проверяем именно сессию, запустившую сценарий.
Отличие от проверки по клиенту
Задается условие, что у клиента есть в 'Корзине' продукты. При этом не обязательно, чтобы они были добавлены в данной сессии. Для текущей задачи данный контекст не подходит.
Другие сущности
По тому же принципу работают и остальные контексты.
Фильтры и события, в которых они доступны:
- по сессии (Окончена сессия)
- по заказу (Заказ добавлен или изменен, Статус заказа изменен)
- по позиции заказа (Клиент приобрел продукт)
- по действию (Заказ добавлен или изменен, Статус заказа изменен, Просмотренный продукт изменился,Выдано действие связанное с продуктом, Изменение email, Изменение мобильного телефона, Баланс клиента стал отрицательным, Бонусные баллы стали доступны, Статус карты изменен, Замена дисконтной карты)
- по продукту в списке (Продукт в списке продуктов изменился, Список продуктов изменился)
- по продукту просмотра (Просмотренный продукт изменился)
- по продукту (Клиент приобрел продукт, Продукт в списке продуктов изменился, Список продуктов изменился, Просмотренный продукт изменился, Предпочитаемый продукт изменился, Выдано действие связанное с продуктом)
- по промокоду (Выдан промокод, Гашение промокода, Использован реферальный промокод клиента)
- по изменению баланса (Баланс клиента стал отрицательным, Бонусные баллы стали доступны)
- по информации о дисконтной карте (Статус карты изменен)
Как собирать фильтры по разным контекстам
Сценарии с несколькими контекстами
Часто в механиках нужно задать условия по разным сущностям.
Задача: при регистрации на онлайн-курс по истории до начала учебного года клиенты получают бонус.
Создаем сценарий по событию 'Выдано действие связанное с продуктом' и проверяем две сущности:
-
действие (когда была регистрация):
-
продукт (передан ли нужный предмет):
В каком порядке ставить блоки
В большинстве случаев это не имеет значения. Но если сценарий обрабатывает большие объемы событий (несколько миллионов в течение часа) и есть задача снизить нагрузку на проекте, то лучше ставить первыми блоки, которые откинут максимум ненужных событий.
Как можно и нельзя проверять клиента
Проверку клиента нужно осуществлять только с использованием контекста по 'Клиенту'.
Не стоит задавать условия по клиенту через другие контексты. В новых сценариях такой возможности уже нет.
Вместо такой настройки:
Разделите условия на отдельные блоки:
-
по изменению баланса:
-
и по клиенту: