Triggers - Триггеры сообщений
Триггер — это условие, при наступлении которого сообщение может быть активировано для показа. Каждый элемент массива triggers
в сообщении описывает одно такое условие.
Триггеры позволяют:
- реагировать на события в приложении,
- подключать внешние источники активации (в перспективе),
- управлять сложными сценариями показа.
⚠️ Важно: при срабатывании нескольких сообщений на один триггер, будет показано одно сообщение с наивысшим приоритетом.
Типы триггеров
Система поддерживает различные типы триггеров. На данный момент реализован только event
-триггер.
event
Триггер, активируемый при наступлении определенного события.
dart
const factory MessageTrigger.event({
required String event,
@Default({}) Map<String, dynamic>? data,
})
Поля:
event
— строка с названием события (например,app_started
,exam_completed
)data
— дополнительная нагрузка для фильтрации и условий (необязательно)
Пример
json
{
"type": "event",
"event": "app_started"
}
Примеры
Ниже приведён пример массива триггеров из сообщений, реагирующих на событие skill_point_received
с различными параметрами. В каждом случае используется тип event
с дополнительными условиями по значению навыка и его уровню.
json
[
{
"type": "event",
"event": "skill_point_received",
"data": {
"skill": "Эстет",
"score": 6
}
},
{
"type": "event",
"event": "skill_point_received",
"data": {
"skill": "Интуит",
"score": 12
}
},
{
"type": "event",
"event": "skill_point_received",
"data": {
"skill": "Гармонизатор",
"score": 18
}
}
]
Поведение системы
- Все триггеры в массиве
triggers
работают по логике ИЛИ (если сработал хотя бы один триггер, сообщение становится кандидатом на показ) - При активации нескольких сообщений одновременно, IAM выбирает сообщение с наивысшим
priority