К содержанию
ActionPulse

Проверьте, что событие дошло

Пять проверок по порядку — ответ приёма, живой поток, список событий, нарушения реестра и отчёт — и что означает каждый отрицательный результат.

Кому
Тем, кто только что отправил первое событие
Проверено
На этой странице

Пять проверок, выстроенных от источника к результату: ответ приёма, живой поток, список событий, нарушения реестра, отчёт. Идите по порядку: каждая следующая проверка имеет смысл только тогда, когда сошлась предыдущая, а место, где проверка не сошлась, и есть место поломки.

Каждый шаг описан одинаково: что смотрим → что должно быть → если не так. Подробный разбор самого экрана «Проверка интеграции» здесь не повторяется, он есть в отдельной статье.

1. Ответ приёма

Что смотрим. Код и тело ответа на /v1/track. Для запроса с бэкенда — вывод вашего клиента, для браузера — вкладку «Сеть» в инструментах разработчика.

Что должно быть. 202 Accepted и тело, в котором accepted равен числу отправленных элементов, а rejected пуст:

{ "accepted": 1, "n": 1, "rejected": [] }

Если не так.

Что видно Что это значит Куда идти
запроса нет вовсе скрипт не инициализировался или согласие не выдано — до решения посетителя сбор выключен полностью событие не отправляется
401 ключ обрезан, отозван, истёк или собран не тот заголовок 401
403 origin страницы не в списке токена либо ключ не того типа 403
402 приём остановлен по биллингу 402
413, 422 тело больше 256 КБ, пустой batch, лишнее поле в JSON 413 и 422
429 превышен лимит, смотрите Retry-After 429
202, но rejected не пуст часть элементов отклонена по отдельности: имя не разрешено ключу, нет идентификатора, нарушен контракт схемы 202, но события не видно

Дальше имеет смысл идти только при 202 с пустым rejected: все остальные исходы решаются на стороне отправителя, а не в кабинете.

2. Живой поток событий

Что смотрим. Данные и сбор → Проверка интеграции, вкладка «Проверка в реальном времени». Поток включается сразу при открытии вкладки, рядом с ним показано состояние подключения.

Что должно быть. Кадр с именем вашего события появляется через секунды после успешного ответа. Это самая быстрая из проверок: поток читает очередь приёма напрямую и не ждёт записи в аналитическую базу.

Если не так.

Что видно Что это значит Что делать
«stream недоступен» интерфейс не смог удержать поток — обычно это буферизация ответа на промежуточном прокси проверяйте шагом 3, он работает без потока
поток идёт, вашего события нет при высокой частоте поток сэмплируется: выше 20 событий в секунду часть кадров не показывается проверяйте шагом 3
«Пауза» поток остановлен кнопкой нажмите «Возобновить»
кадр есть, но без свойств и идентификаторов так и задумано значения смотрите в реестре и в истории событий

Если поток недоступен, а событие проверить надо срочно, включите живой режим на экране Данные и сбор → События: там при недоступном потоке интерфейс сам переходит на периодический опрос списка.

3. Список событий проекта

Что смотрим. Данные и сбор → События — полный список событий проекта. Живой режим здесь по умолчанию выключен, для проверки достаточно обновить список.

Что должно быть. Строка с вашим именем события, вашим посетителем и временем.

Если не так.

Что видно Что это значит Что делать
«Событий пока нет» и сниппет установки в проекте нет ни одного события вообще чаще всего ключ принадлежит другому проекту: сверьте префикс ключа с таблицей ключей в Настройки → Проект
список не пуст, вашей строки нет фильтры или период отсекают её сбросьте фильтры по имени события, user_id и anon_id, расширьте период
строка есть, но время не то, которое вы ждали период фильтруется по времени приёма, а в столбце «Время» показано время самого события в часовом поясе проекта при обратной датировке это нормально, см. ниже
посетитель показан как «Аноним» событие пришло без user_id это верно для браузерного сбора до identify

4. Реестр и нарушения

Что смотрим. Данные и сбор → Проверка интеграции, вкладка «Нарушения»: по умолчанию последние 7 суток UTC, максимальный период — 31 день. Затем карточку события в Данные и сбор → Реестр событий.

Что должно быть. Либо пусто, либо понятный код, который вы осознанно принимаете. В карточке события — те типы свойств, которые вы отправляете.

Если не так.

Код нарушения Что это значит Что делать
event_unregistered события нет в реестре зарегистрируйте его, иначе у него не будет контракта и он не пройдёт строгую проверку
reserved_event попытка занять пространство pp.* это пространство принадлежит встроенному сбору, выберите своё имя
schema_version_unknown указана версия схемы, которой нет не передавайте schema_version или передайте 0 — это текущая версия
required_property_missing не хватает обязательного свойства добавьте свойство или снимите обязательность в новой версии схемы
property_type_mismatch тип свойства не совпал сверьте с наблюдавшейся формой данных в истории событий: чаще всего число пришло строкой
unknown_property свойство не описано в схеме опишите его или уберите из отправки
forbidden_property свойство запрещено к сохранению оно удаляется из сохранённого события, уберите его на отправителе
event_deprecated событие помечено устаревшим переходите на новое имя
registry_unavailable реестр был недоступен в момент проверки повторите отправку позже

5. Отчёт

Что смотрим. Обзор проекта, а если нужна конкретная серия — Аналитику с метрикой «События» и периодом по умолчанию.

Что должно быть. Карточка «События сегодня» учитывает текущий день в часовом поясе проекта. В «Аналитике» ваша точка видна на дате события.

Если не так.

Что видно Что это значит Что делать
DAU не изменился карточка DAU считает последний полный день, то есть вчерашний это ожидаемое поведение, сегодняшнее событие её не двигает
«События сегодня» ноль событие датировано другим днём или ещё не перенесено в аналитическую базу сверьте time и подождите: перенос из очереди занимает секунды
в «Аналитике» точка на другой дате отчёты считают по времени события так и должно быть при обратной датировке
метрика «Уникальные пользователи» пуста у события нет идентификатора актора передавайте user_id или anon_id
«Избранная воронка» пуста нет сохранённого отчёта-воронки с отметкой избранного это не связано с приёмом событий

Пока не настроено определение полезной активности, DAU и производные метрики считают любое событие. Это видно предупреждением на «Обзоре» — настройка живёт на экране реестра.

Прошло всё, а цифры не сходятся

Причина Признак Решение
Разные часовые пояса «Нарушения» и история событий показывают UTC, список событий и отчёты — часовой пояс проекта сверяйте окна в одном поясе
Событие пришло дважды одинаковые строки с разным event_id защита от дублей работает по event_id и только в пределах одного источника
Одно и то же шлют браузер и бэкенд одно действие даёт два события с разными источниками выберите одну сторону: подтверждённые факты — с бэкенда
Часть батча отклонена accepted меньше n смотрите rejected
Значение свойства заменено или свойства нет значение совпало с правилом редакции, либо свойство классифицировано в схеме как запрещённое и удаляется при сохранении см. приватность

Что дальше

  1. Разберите экран проверки интеграции целиком — нарушения, история событий и живая проверка.
  2. Дерево диагностики — если какой-то шаг не сошёлся.
  3. Соберите первую воронку — теперь данные для неё есть.