Называйте ID элементов так, чтобы аналитика их понимала

SDK Adapty сообщает вашему приложению о каждом просмотре экрана и каждом ответе пользователя. Каждое событие содержит ID экрана или элемента, из которого оно пришло, и именно эти ID отображаются в вашей аналитике. По умолчанию ID экрана выглядит как scr_oAPBHPa7, поэтому воронка в Amplitude или Mixpanel превращается в столбец кодов, и кому-то приходится вручную поддерживать таблицу соответствия кодов и названий.

Вы можете задать эти ID самостоятельно. Инпуты и группы выбора называются в Flow Builder. ID экранов задаются через скилл flow-generator, который переименовывает экран везде, где на него ссылается флоу.

Important

Переименование экранов входит в скилл flow-generator, поэтому ничего дополнительно устанавливать не нужно — следуйте инструкции по установке flow-generator, и он уже доступен. Скилл сохраняет изменения во флоу прямо в вашем дашборде, поэтому сначала запустите его на черновике и проверьте результат в Flow Builder, прежде чем публиковать.

Для чего это нужно

  • Воронка, которую понимает вся команда: Последовательность welcome → signup → paywall говорит сама за себя. Три сгенерированных кода — нет.
  • Единый словарь для всех инструментов: Каждое событие, которое приложение передаёт дальше, называет экран одинаково — воронка, когорта и фильтр дашборда совпадают без таблицы соответствий.
  • Данные, по которым можно делать запросы: Вариант квиза с названием beginner — это значение, которое аналитик может отфильтровать. Сгенерированный ID сначала нужно расшифровать.

Какие ID видит ваша аналитика

Два события несут ID. flow_screen_showed срабатывает, когда пользователь открывает экран, а flow_user_input — когда заполняет поле ввода, выбирает ответ в квизе или переключает тогл. Каждый гайд описывает все параметры своего события. В этой таблице приведены только те параметры, которые идентифицируют экран или элемент.

Параметр событияЧто содержитГде задаётся
instanceIdID экранаСкилл flow-generator
element_idElement ID поля ввода или Group ID группы с выборомFlow Builder
item_idsElement IDs выбранных вариантовFlow Builder

Названия инпутов и вариантов квиза

У инпутов и групп с выбором есть поля ID в конструкторе. Element ID инпута находится в Input settings — это тот же ID, который используется для ссылки на значение в других частях флоу (см. Инпуты и формы). Group ID группы задаётся в Screen settings > Selectable groups, а каждый вариант внутри группы получает свой Element ID.

Давайте каждому из них осмысленное название, потому что именно эта строка будет отображаться в вашей аналитике. birthday и beginner говорят сами за себя. el_024F потребует расшифровки.

Задавайте ID элемента сразу при его добавлении, а не позже. Условия и текстовые переменные ссылаются на Element ID, и при смене ID они перестают работать — без каких-либо ошибок. Если нужно переименовать ID во флоу, которое уже работает, обновите все условия и переменные, которые его используют. Подробнее: Условия и переменные перестают работать после изменения Element ID.

Скилл flow-generator автоматически задаёт имена для любого флоу, которое он строит. Скилл flow-audit сообщает о тех, что не заданы.

Переименование экранов

В Flow Builder нет отдельного поля для ID экрана, поэтому попросите скилл:

Give the screens in my onboarding flow readable IDs.

Скилл предложит имя для каждого экрана, а затем переименует его везде, где на него ссылается флоу, — в самом экране, во всех навигационных действиях, ведущих к нему, и в привязанных продуктах. Все изменения вносятся одновременно: экран, переименованный в одном месте и не переименованный в другом, сделает флоу нерабочим.

Команда сообщает, какие именно имена были изменены и сколько ссылок перемещено, и не выполнит переименование, если оно приведёт к конфликту с уже существующим экраном. ID экрана можно безопасно переименовать во флоу, который уже работает, — в отличие от Element ID: скилл перемещает вместе с ним все ссылки.

Что проверить

  • Переименовывайте до запуска флоу: события, уже собранные под старым ID, не переименуются. Воронка, охватывающая момент изменения, покажет два полузаполненных экрана, а возврат к старому названию не объединит их. Метрики флоу в Adapty разделятся аналогично, поскольку строки экранов группируются по ID — переименованный экран получит вторую строку с тем же подписью, что и первая.
  • У каждого варианта в группе должен быть свой Element ID: если у варианта нет ID, если два варианта используют один и тот же ID или если Group ID повторяется на другом экране — вся группа не передаёт никаких данных, не только этот вариант. Билдер никак не сигнализирует об этом, поэтому проверяйте группу каждый раз, когда добавляете в неё вариант.
  • ID попадают в аналитику ровно так, как введены: выберите один стиль — например, plan_selection или planSelection — и придерживайтесь его во всём флоу. Смешанные стили сложнее запрашивать, чем любые сгенерированные коды.

Ограничения

  • ID экранов переименовываются только через скилл: в Flow Builder для них нет отдельного поля.
  • Метрики флоу Adapty не отображают эти имена: Метрики флоу обозначают экран как <position>. <caption> из опубликованной версии флоу, поэтому там всегда будет, например, 9. Paywall A — независимо от ID экрана. Заданные ID видны только в вашей собственной аналитике.
  • Переименование не переносит историю: старые события сохраняют прежний ID.
  • Некоторые элементы не отправляют события ввода: поля для паролей, выбор продукта и переключение вкладок не фиксируются. Присвоение им имени влияет на флоу, но не на вашу аналитику.