Проверьте, что событие дошло
Пять проверок по порядку — ответ приёма, живой поток, список событий, нарушения реестра и отчёт — и что означает каждый отрицательный результат.
На этой странице
Пять проверок, выстроенных от источника к результату: ответ приёма, живой поток, список событий, нарушения реестра, отчёт. Идите по порядку: каждая следующая проверка имеет смысл только тогда, когда сошлась предыдущая, а место, где проверка не сошлась, и есть место поломки.
Каждый шаг описан одинаково: что смотрим → что должно быть → если не так. Подробный разбор самого экрана «Проверка интеграции» здесь не повторяется, он есть в отдельной статье.
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 |
| Значение свойства заменено или свойства нет | значение совпало с правилом редакции, либо свойство классифицировано в схеме как запрещённое и удаляется при сохранении | см. приватность |
Что дальше
- Разберите экран проверки интеграции целиком — нарушения, история событий и живая проверка.
- Дерево диагностики — если какой-то шаг не сошёлся.
- Соберите первую воронку — теперь данные для неё есть.