Управление приложениями
Мои приложения (панель управления)
«Мои приложения» (/ или /apps) — стартовая страница после входа и основной раздел для работы со всеми приложениями вашей команды.

Таблица приложений. Каждая строка содержит порядковый номер, значок приложения (или буквенный аватар, если значок не загружен), название и идентификатор пакета / Bundle ID, назначенный бренд, магазин (значок платформы iOS/Android/Amazon), текущую версию SDK (с возможностью сортировки), индикатор статуса конфигурации по умолчанию (зелёный «Добавлена», если для приложения сгенерирована конфигурация по умолчанию, или серый «Не добавлена»), дату создания (с возможностью сортировки) и столбец действий.
Поиск и фильтрация. Поле поиска фильтрует приложения по названию или имени пакета по мере ввода. Отдельные раскрывающиеся фильтры по бренду, магазину и версии SDK на панели фильтров можно сочетать с поиском. Вместо встроенной в таблицу пагинации используется собственная нижняя панель «Показаны X–Y из Z» с выбором количества строк на странице и кнопками навигации ⟨ ‹ › ⟩.
Меню действий. Меню с тремя точками в каждой строке содержит команды «Редактировать», «Дублировать» и «Удалить» в зависимости от ваших прав (см. ниже разделы об ограничениях тарифа и правах при совместном доступе).
Ограничения тарифа и заблокированные приложения. Тариф подписки ограничивает количество приложений (maxApps). Если текущее количество превышает лимит — например, после перехода на более дешёвый тариф, — вверху страницы появляется жёлто-оранжевый предупреждающий баннер: «Превышен лимит приложений — использовано X из Y» с небольшим индикатором заполнения и кнопкой «Повысить тариф», ведущей в раздел подписки.

При превышении лимита портал не выбирает приложения для блокировки произвольно: доступными остаются самые старые приложения по дате создания в пределах лимита тарифа, а все созданные позже блокируются. Меню действий заблокированного приложения становится ограниченным: при нажатии на кнопку с тремя точками отображается только заголовок «ЗАБЛОКИРОВАНО» с пояснением «Это приложение превышает лимит вашего тарифа. Удалите его, чтобы освободить место», а при наличии права на удаление — ещё и красная команда «Удалить приложение». Редактирование и дублирование заблокированных приложений недоступны. Чтобы восстановить доступ, нужно удалить другие приложения и освободить место либо повысить тариф.
Кнопка создания. Кнопка «+ Создать приложение» доступна для нажатия, только если лимит тарифа ещё не исчерпан (canCreateApp()). При достижении лимита вместо неё отображаются небольшой счётчик («Использовано X из Y приложений») и ссылка «🔒 Повысить тариф», ведущая в раздел подписки.
Режим совместного доступа. Если вы просматриваете страницу после переключения на другой аккаунт с предоставленным вам доступом (см. выше описание меню аккаунта), таблица дополнительно загружает ваши права для этого аккаунта через /rights/user-permissions и на их основе разрешает или запрещает редактирование, удаление и дублирование каждой строки. Например, вы можете просматривать и редактировать приложения, но не удалять их — в зависимости от прав, предоставленных владельцем ресурса.
Добавление нового приложения
Нажатие «+ Создать приложение» открывает форму приложения в режиме создания: вертикальное модальное окно по центру экрана.

Поля:
- Значок — необязательное поле. Вверху находится большая квадратная область загрузки с надписью «Загрузить изображение», которая отображается до выбора файла. Поддерживаются JPEG, PNG и GIF.
- Магазин — обязательный выбор переключателем: Apple App Store, Google Play или Amazon App Store. Список загружается динамически с бэкенда; если запрос завершается ошибкой, используются эти три варианта.
- Название — обязательное поле, от 4 до 70 символов.
- Package / Bundle ID — обязательное поле, значение должно начинаться с
com.(проверяется по шаблонуcom.*). - URL — обязательное поле при создании. При выборе Google Play автоматически подставляется
https://play.google.com/store/apps/details?id={package}; при выборе Apple App Store — базовый адресhttps://apps.apple.com/. После автозаполнения URL можно изменить вручную. Если выбран Google Play, изменение имени пакета также обновляет автоматически подставленный URL. - Бренд — раскрывающийся список существующих брендов.
При отправке формы вызывается эндпоинт создания приложения. Приложение создаётся без настроенной сети медиации и рекламных блоков — их вы настроите далее, на странице сведений о приложении. Кнопка «Отмена» закрывает окно без сохранения.
Редактирование и дублирование приложения (окно быстрого редактирования)
Команда «Редактировать» в меню действий строки открывает тот же компонент формы в режиме редактирования, но вместо вертикальной формы создания поля располагаются в одной компактной горизонтальной строке: значок (с небольшой кнопкой-карандашом поверх него для замены), название, поле пакета только для чтения, поле URL только для чтения, раскрывающийся список брендов и кнопка сохранения. После создания приложения пакет и URL навсегда становятся доступными только для чтения: изменить идентификатор пакета или URL приложения в магазине нельзя — только название, значок и бренд. Доступ к этой строке регулируется проверкой права canUpdate, которое в режиме совместного доступа определяется предоставленными вам правами на сведения о приложении.

Команда «Дублировать» открывает ещё один экземпляр формы создания, заполненный данными исходного приложения. К имени пакета добавляется .copy, чтобы избежать совпадения с оригиналом. Перед сохранением в качестве нового приложения вы можете изменить нужные поля: название, значок, бренд. Медиация, рекламные блоки и все остальные настройки со страницы сведений о приложении не копируются: дубликат создаётся с нуля, как и новое приложение.
Сведения о приложении
Открытие приложения через «Мои приложения» → «Редактировать» или нажатием на саму строку приложения переводит вас на страницу сведений о приложении — самую сложную страницу портала, где настраивается фактическое поведение SDK для этого приложения.

Режимы Live и Dev. Переключатель вверху страницы переводит всю страницу между конфигурациями Live и Dev. Каждый раздел ниже — медиация, рекламные блоки, плейсхолдеры, параметры показа, MMP, продвижение функций и настройки — настраивается отдельно для каждого режима. Это позволяет готовить и тестировать изменения в Dev, не затрагивая текущую конфигурацию опубликованного приложения. Две кнопки, «Применить Live к Dev» и «Применить Dev к Live», позволяют одним действием скопировать всю конфигурацию одного режима в другой, заменив её содержимое. Это удобно для переноса проверенной конфигурации Dev в Live или для сброса Dev до состояния Live перед новым тестированием.

В заголовке страницы также отображаются текущий номер версии конфигурации, ссылка «История изменений» (см. ниже) и кнопка «Получить конфигурацию» (см. ниже). Некоторые элементы интерфейса настройки, включая описанный ниже выбор групп регионов, появляются только после того, как сообщаемая приложением версия SDK достигает определённого минимального значения. Портал ограничивает доступ к некоторым новым функциям по минимальной версии SDK, чтобы не показывать старым сборкам приложений параметры, которые они не поддерживают.
Остальная часть страницы состоит из раскрывающихся разделов в следующем порядке:
Информация о приложении
Основные сведения о приложении: название, идентификатор пакета / Bundle ID, магазин, значок и назначенный бренд. По сути, это те же поля, что и в форме создания и редактирования приложения, вынесенные сюда для удобства.

Выбор медиации
Выберите сеть медиации для этого приложения и режима, например сеть с каскадной медиацией (waterfall) или AppLovin MAX. От этого выбора зависит доступность дальнейших настроек: пока сеть не выбрана, расположенные ниже разделы рекламных блоков, рекламных плейсхолдеров и привязки блоков к плейсхолдерам остаются заблокированными. Для их настройки нужно знать, SDK какой сети и какой формат рекламных блоков используются.

Добавление рекламных блоков
Введите идентификаторы рекламных блоков, выданные вашей сетью медиации. Они сгруппированы по вкладкам форматов: реклама при открытии приложения (App Open), межстраничная (Interstitial), баннерная (Banner), нативная (Native) и реклама с вознаграждением (Rewarded). Отображаются только вкладки форматов, которые поддерживает выбранная выше сеть медиации.

Рекламные плейсхолдеры
Определите именованные плейсхолдеры — логические места в приложении или игре, где может показываться реклама, например «Уровень пройден» или «Баннер в главном меню». Они отображаются в виде пронумерованной сетки, в которой можно добавлять и переименовывать элементы. Поскольку имена плейсхолдеров обычно должны совпадать с константами в исходном коде приложения, портал поддерживает импорт и экспорт всего списка в виде файла перечисления enum на Kotlin (.kt). Это позволяет синхронизировать кодовую базу и конфигурацию портала без ручного переноса имён.

Рекламные блоки для плейсхолдеров
Сетка сопоставления: по одной оси расположены плейсхолдеры, по другой — рекламные форматы (Interstitial / Banner / Native / Rewarded). Для каждой комбинации вы выбираете конкретный рекламный блок из добавленных выше, который будет использоваться в этом плейсхолдере.
В этой сетке наряду с блоками рекламных сетей также доступен вариант «Кросс-промо». Если выбрать его для плейсхолдера, в этом месте вместо платной рекламы из сети будет показываться креатив с продвижением одного из ваших других приложений, настроенный в разделе кампаний. Именно этот механизм связывает кампании с реальными рекламными местами в приложениях.

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

Выбор MMP
Подключите партнёра по мобильной атрибуции (Mobile Measurement Partner). Доступны, в частности, Adjust, AppsFlyer, Firebase, Cost Center и Solar Engine. Включайте передачу данных о рекламном доходе отдельно для каждого рекламного формата, чтобы события дохода поступали в вашу систему атрибуции и аналитики вместе с остальными данными об установках и вовлечённости.

Продвижение функций
Настройте промобаннеры или карточки внутри приложения, не связанные с рекламными сетями: например, анонс новой функции или предложение премиум-тарифа в интерфейсе вашего приложения. Каждая запись в редактируемой таблице содержит заголовок, тип, ключ, изображение и действие, выполняемое при нажатии, например переход по глубокой ссылке (deep link) или на определённый экран приложения.

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

Получение конфигурации
Кнопка «Получить конфигурацию» генерирует зашифрованную строку со всеми заданными выше настройками для текущего активного режима — Live или Dev. Если в селекторе регионов в заголовке страницы выбрана группа регионов, её идентификатор добавляется в сгенерированную ссылку или строку как параметр запроса. Таким образом, конфигурация, загружаемая во время выполнения, может различаться для разных групп регионов. Портал также пошагово объясняет, как опубликовать эту строку через Firebase Remote Config с ключом параметра AKS_AND_LIVE. Именно так опубликованное приложение получает конфигурацию во время выполнения: сам портал не отправляет её напрямую на устройства конечных пользователей.

История изменений
При каждом сохранении конфигурации приложения регистрируется новая версия конфигурации. На отдельной странице истории изменений, доступной по ссылке из сведений о приложении, все версии представлены в таблице: порядковый номер, версия конфигурации, описание изменений, дата обновления и автор обновления. Внутри системы длинные описания разделяются вертикальной чертой и выводятся отдельными строками; после первых 20 символов текст сворачивается с переключателем «Показать больше / Показать меньше». Фильтр диапазона дат вверху ограничивает список нужным периодом. Это базовый журнал аудита, позволяющий узнать, кто и когда изменял конфигурацию приложения.

Доступные мне ресурсы
Если другая команда пригласила вас к совместной работе над приложениями и вы приняли приглашение, эти общие ресурсы отображаются в разделе «Доступные мне ресурсы» (/SharedWithMe). Здесь находится таблица полученных приглашений, отдельно от приложений вашей команды. Каждая строка содержит отправителя и текущий статус приглашения.

Здесь можно принять или отклонить ожидающее ответа приглашение. Оба действия вызывают один и тот же эндпоинт обработки приглашений, передавая соответствующее решение. После принятия отправитель появляется в раскрывающемся списке переключения аккаунтов, описанном выше: вы можете перейти в его аккаунт и работать в пределах предоставленных прав.
Если вы переходите на эту страницу по ссылке из уведомления, содержащей параметр запроса ?invitationId=, окно приглашения открывается автоматически при загрузке — искать нужную строку вручную не требуется.
Окно приглашения. Вверху модального окна в скруглённой плашке отображается адрес электронной почты приглашающего аккаунта. Заголовок и значок зависят от статуса: подарок для приглашения, ожидающего ответа, галочка для принятого, крестик для отклонённого и часы для просроченного. Ниже находится прокручиваемый список «Доступ к ресурсам: N». В каждой строке показаны заглушка значка приложения, название ресурса (например, «Приложения» или «Информация о приложении», сформированное из соответствующего ключа разрешения) и выровненные справа метки предоставляемых прав: чтение / создание / обновление / удаление. Если у приглашения есть срок действия, он отображается в предупреждающей строке.

Кнопки внизу зависят от статуса: для приглашения, ожидающего ответа, отображаются «Не сейчас» и «✓ Принять приглашение»; для уже обработанного или просроченного — только «Закрыть» и поясняющий текст. Например, для просроченного приглашения: «Попросите {email отправителя} отправить новое приглашение».