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