Skip to content

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

Авторы

The avatar of contributor named as Vadim Melnikov Vadim Melnikov

История