---
title: "Называйте ID так, как их видит аналитика"
description: "Давайте экранам, полям ввода и вариантам квизов в флоу читаемые ID, чтобы события в Amplitude или Mixpanel отображались как названия, а не коды."
---

> **AI agents**: to search Adapty docs faster and with fewer tokens, install the Adapty skill. Claude Code (self-updating via plugin): `claude plugin marketplace add adaptyteam/adapty-skills && claude plugin install adapty-skills@adapty` — other tools: `npx skills add adaptyteam/adapty-skills --all`

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

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

:::important
Переименование экранов входит в навык flow-generator, поэтому устанавливать ничего дополнительно не нужно — следуйте [инструкции по установке flow-generator](flow-generator-skill#install-the-skill), и всё готово. Изменения сохраняются во флоу в вашем дашборде, поэтому сначала запустите его на черновике и проверьте результат в Flow Builder перед публикацией.
:::

## Для чего это нужно \{#what-its-for\}

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

## Какие ID видит ваша аналитика \{#which-ids-your-analytics-sees\}

Два события несут ID. [`flow_screen_showed`](ios-flow-screen-views) срабатывает, когда пользователь открывает экран, а [`flow_user_input`](ios-flow-input) — когда пользователь заполняет поле ввода, выбирает ответ в викторине или переключает тогл. Каждый гайд документирует все параметры своего события. В этой таблице описаны только параметры, идентифицирующие экран или элемент.

| Параметр события | Что содержит | Где задаётся |
| :--- | :--- | :--- |
| `instanceId` | ID экрана | Скилл-генератор флоу |
| `element_id` | **Element ID** поля ввода или **Group ID** группы с выбором | Flow Builder |
| `item_ids` | **Element IDs** выбранных вариантов | Flow Builder |

## Имена инпутов и вариантов квиза \{#name-inputs-and-quiz-options\}

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

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

Задавайте ID элемента сразу при его добавлении, а не потом. Условия и текстовые переменные ссылаются на **Element ID**, и при его изменении они не обновляются — просто перестают работать, без каких-либо ошибок. Если нужно переименовать ID в уже работающем флоу, обновите все условия и переменные, которые его используют. См. [Условия и переменные перестают работать после изменения ID элемента](flow-common-issues#conditions-and-variables-break-after-an-element-id-change).

Навык flow-generator автоматически назначает имена при создании флоу. [Навык flow-audit](flow-audit-skill) сообщает об отсутствующих ID.

## Переименование экранов \{#rename-screens\}

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

```
Give the screens in my onboarding flow readable IDs.
```

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

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

## Что проверить \{#what-to-check\}

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

## Ограничения \{#limitations\}

- **Переименование Screen ID возможно только через скилл**: В Flow Builder нет отдельного поля для этого.
- **Переименование не переносит историю**: Старые события сохраняют прежний ID.
- **Некоторые элементы не отправляют событие input**: Поля для паролей, выбор продукта и переключение вкладок никогда не фиксируются. Присвоение им имени влияет на флоу, но не на аналитику.