← Назад к вопросам

Нужно ли передавать идентификатор события в push?

2.0 Middle🔥 151 комментариев
#Аналитика мобильных приложений#Метрики продукта

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Передавать ли идентификатор события в push: ДА, обязательно

Краткий ответ

Да, нужно передавать ID события в push-уведомление. Это один из ключевых параметров для отслеживания конверсии, анализа эффективности и понимания пути пользователя.

Архитектура передачи ID события

В push-уведомлении должны быть:

{
  "event_id": "evt_xyz123",
  "event_type": "order_shipped",
  "timestamp": "2026-03-26T14:30:00Z",
  "user_id": "usr_abc456",
  "message": "Ваш заказ отправлен",
  "deep_link": "/orders/order_xyz/track",
  "attributes": {
    "order_id": "ord_123",
    "tracking_number": "TRK12345"
  }
}

Почему это критически важно?

1. Отслеживание конверсии (Click Attribution)

Когда пользователь нажимает на push:

  • Мы регистрируем push_click-событие с event_id
  • Связываем это с исходным событием (event_id из push)
  • Видим цепочку: order_shipped → push_click → order_viewed_details → review_left
SELECT 
  push.event_id,
  COUNT(CASE WHEN click.event_id IS NOT NULL THEN 1 END) as clicks,
  COUNT(CASE WHEN action.event_id IS NOT NULL THEN 1 END) as conversions,
  ROUND(100.0 * COUNT(action.event_id) / COUNT(push.event_id), 2) as ctr
FROM events push
LEFT JOIN events click ON push.event_id = click.related_event_id 
  AND click.event_type = push_clicked
LEFT JOIN events action ON click.event_id = action.related_event_id
WHERE push.event_type = push_sent
GROUP BY push.event_id;

2. Дебаг и Quality Assurance

  • Если push не пришёл, мы видим по event_id, на каком этапе произошёл сбой
  • Можем отследить: event создано → push queued → push delivered → push clicked
  • Находим узкие места в системе отправок

3. Когортный анализ

  • Группируем пользователей по типу события в push (order_shipped vs account_created)
  • Сравниваем CTR, retention, revenue в зависимости от типа события
  • Видим, какие события генерируют более лояльных пользователей

4. Персонализация в будущем

  • История event_id позволяет ML-модели учить, какие пользователи реагируют на какие события
  • Вероятностная модель: "Пользователь типа X с 60% вероятностью нажмёт на push с event_type = order_shipped"

Практические рекомендации

Формат ID события:

  • Используй UUID или snowflake ID для уникальности
  • Префикс для типа: evt_order, evt_review, evt_promo
  • Пример: evt_order_xyz123_20260326_143000

Передача в push:

{
  "notification": {
    "title": "Заказ отправлен",
    "body": "Ваш заказ #123 готов к отправке"
  },
  "data": {
    "event_id": "evt_order_xyz123",
    "event_timestamp": "1711353000",
    "deep_link": "/orders/xyz123/track",
    "analytics_label": "order_shipped"
  },
  "android": {
    "priority": "high",
    "ttl": "86400s"
  }
}

Логирование на клиенте:

Когда пользователь нажимает на push, клиент отправляет:

event = {
  "event_type": "push_clicked",
  "event_id": "evt_click_abc789",
  "related_event_id": "evt_order_xyz123",  # ID из push
  "user_id": "usr_456",
  "timestamp": "2026-03-26T14:35:00Z",
  "platform": "iOS",
  "session_id": "sess_xyz"
}

Риски без ID события

  • Потеря данных: не сможешь связать push_sent с push_clicked
  • Неполная аналитика: не поймёшь, какие события ведут к конверсии
  • Сложный дебаг: если что-то сломалось, не найдёшь проблему
  • Невозможность optimizации: не сможешь улучшать based на данных

Итог

Передача event_id в push — это baseline для профессиональной аналитики. Без неё ты работаешь вслепую. С ней — ты видишь полную картину пути пользователя и можешь оптимизировать.

Нужно ли передавать идентификатор события в push? | PrepBro