Кампании (кросс-промо)
Раздел «Кампании» — это инструмент кросс-промо: он позволяет рекламировать одно ваше приложение внутри другого с помощью сопоставления «Рекламные блоки для рекламных плейсхолдеров → Кросс-промо», описанного в разделе «Сведения о приложении».
Список кампаний
На странице «Кампании» (/campaigns) все созданные вами кампании представлены в таблице со следующими столбцами: номер строки, название, целевое приложение (название и имя пакета в две строки), тип кампании (сейчас всегда «Кросс-промо» — тип «Реклама в рекламной сети» предусмотрен в селекторе типов, но недоступен для выбора), статус и приоритет (оба отображаются цветными бейджами и поддерживают сортировку), дата начала, дата окончания, дата создания, дата обновления (последние два столбца также поддерживают сортировку) и действия («Редактировать» и «Удалить»).

Список можно фильтровать по статусу кампании, приоритету или целевому бренду. Каждый фильтр представляет собой динамический список с множественным выбором. При редактировании кампании (значок карандаша) открывается описанный ниже мастер в режиме редактирования. Удаление требует подтверждения и не может быть отменено.
Кнопка + Создать доступна, только если ваш тариф позволяет создать ещё одну кампанию кросс-промо (canCreateCampaign()). Если лимит кампаний на вашем тарифе исчерпан, вместо кнопки отображаются счётчик использования («Использовано кампаний: X/Y») и ссылка «🔒 Повысить тариф», ведущая в раздел «Подписка».
Создание и редактирование кампании — пошаговый мастер
Нажатие + Создать (или переход к редактированию существующей кампании) запускает пошаговый мастер. В мастере пять шагов, а не четыре: первый шаг легко не заметить, поскольку при редактировании существующей кампании он автоматически пропускается (после создания кампании её тип изменить нельзя). На всех шагах действует единый принцип «сначала черновик, затем сохранение»: пока вы заполняете шаг, изменения хранятся только в локальном состоянии его компонента. Ничего не записывается в общий контекст мастера и не сохраняется на сервере, пока вы не нажмёте кнопку сохранения и соответствующий вызов API не завершится успешно. Если вы попытаетесь уйти с несохранёнными изменениями, появится запрос подтверждения «У вас есть несохранённые изменения. Вы действительно хотите уйти?» с вариантами «Да, уйти» и «Остаться», чтобы предотвратить потерю данных.
Шаг 1 — Выбор типа кампании
Доступна одна карточка для выбора: Кросс-промо («Продвигайте свои приложения среди пользователей других ваших приложений»). Это единственный доступный вариант: второй тип, «Реклама в рекламной сети», предусмотрен в коде как заготовка на будущее, но сейчас его нельзя выбрать в интерфейсе. Кнопка Далее переводит на следующий шаг. Сам по себе этот шаг не отправляет запросов на сервер, поскольку до шага 2 ничего не создаётся. В режиме редактирования этот шаг полностью пропускается: мастер открывается сразу на шаге 2, а тип существующей кампании уже зафиксирован.
Шаг 2 — Настройки кампании

На этом шаге кампания создаётся (при первом сохранении в режиме создания) или изменяются её основные настройки (в режиме редактирования). Поля:
- Переключатель статуса кампании — только в режиме редактирования. Переключает статус между «Активна» и «Приостановлена» с подтверждением в обоих случаях: «Активировать кампанию?» / «Приостановить кампанию?». При попытке активировать кампанию перед сохранением проверяется, есть ли у неё хотя бы один креатив и активен ли хотя бы один из креативов. Если условия не выполнены, активация блокируется с сообщением «Не удалось активировать кампанию — сначала добавьте хотя бы один креатив» или «…хотя бы один креатив должен иметь активный статус», а переключение не применяется.
- Название кампании — обязательное текстовое поле.
- Выберите бренд — обязательный раскрывающийся список ваших брендов. При смене бренда выбор в поле «Продвигаемое приложение» сбрасывается, поскольку список приложений зависит от бренда.
- Продвигаемое приложение — обязательный раскрывающийся список, который заполняется на основе выбранного бренда; недоступен, пока бренд не выбран.
- Приоритет кампании — «Высокий» / «Средний» / «Низкий», три кнопки-капсулы для выбора; по умолчанию выбран «Средний».
- Начало кампании — «Немедленно» или конкретная дата. Выбранная дата не может быть в прошлом (проверяется относительно текущей даты). Исключение: в режиме редактирования эта проверка пропускается, если вы не меняли ранее сохранённую дату.
- Окончание кампании — «Нет (без даты окончания)» или конкретная дата. Действует то же правило запрета даты в прошлом; дополнительно проверяется, что дата окончания позже даты начала.
Блокировка полей активной кампании: пока кампания имеет статус «Активна», нельзя изменить бренд, продвигаемое приложение и дату начала или настройку «Немедленно». Эти поля становятся недоступны, рядом отображается краткое пояснение («…нельзя изменить, пока кампания активна»). По-прежнему можно менять название, приоритет и дату окончания, а также приостановить кампанию с помощью переключателя.
При сохранении (кнопка Сохранить и далее в режиме создания или Сохранить в режиме редактирования) на сервер отправляются название, целевое приложение, тип кампании, приоритет, вычисленные даты начала и окончания, а в режиме редактирования — ещё и статус. При первом создании данные о размещении и регионах из ответа сервера (если они есть) используются для предварительного заполнения шага 3. Все эти данные записываются в общий контекст мастера только после успешного вызова API.
Шаг 3 — Таргетинг

Таргетинг состоит из двух независимых подразделов на одном шаге с общей кнопкой сохранения: Размещение (в каких ваших брендах и приложениях показывать кампанию) и Регионы (в каких странах она должна работать).
Размещение. С помощью списков с флажками можно выбрать один из вариантов:
- Все бренды — один общий флажок, который разрешает показ кампании во всех ваших брендах и приложениях, включая добавленные в будущем.
- Конкретные бренды — выбор одного или нескольких брендов из прокручиваемого списка; у каждого бренда есть вложенный список приложений. В выбранном бренде можно отметить отдельные приложения или установить флажок «Все (включая будущие)», чтобы включить все приложения этого бренда — текущие и будущие — без поочерёдного выбора.
Над списками отображается актуальная сводка «Выбранные бренды» и «Выбранные приложения» в виде тегов, чтобы можно было быстро оценить текущие настройки таргетинга.
Регионы. Список стран с множественным выбором и действием «Выбрать все» позволяет ограничить страны показа кампании или оставить показ без ограничений. Если ограничений нет, кампания работает во всех регионах. Этот выбор регионов намеренно отделён от функции именованных групп регионов, описанной далее в руководстве: здесь вы просто выбираете страны для конкретной кампании, без создания именованной группы, которую можно сохранить и использовать повторно. (Если динамический список стран не удалось загрузить с сервера, используется сокращённый резервный список из 16 стран. Поэтому резервный набор вариантов здесь меньше, чем в разделе «Группы регионов».)
В обоих подразделах действует тот же принцип черновика и сохранения, что и в остальных шагах мастера: изменения остаются локальными до нажатия «Сохранить» или «Сохранить и далее». После этого настройки размещения и регионов сохраняются отдельными вызовами API и только затем объединяются с общим состоянием мастера.
Шаг 4 — Креативы

Здесь вы загружаете рекламные креативы, которые будут показываться в рамках кампании.
Добавление новых креативов. Табличная форма «Добавить новые креативы» позволяет добавить одну или несколько строк сразу: ссылка + Добавить креативы добавляет пустую строку, а значок корзины удаляет строку. В каждой строке есть поля:
- Изображение — нажмите на пустой квадрат, чтобы загрузить изображение. Допустимые форматы: JPEG, PNG, JPG, GIF, WebP; максимальный размер — 10 МБ. Файлы, не соответствующие требованиям, отклоняются, а рядом с полем появляется конкретная ошибка: неверный формат или «Макс. 10 МБ (X.XX МБ)» с указанием фактического размера.
- Название — обязательное текстовое поле.
- Целевой URL — обязательное поле; адрес должен быть корректным URL с
http://илиhttps://. Проверка выполняется по мере ввода. - Тип рекламы — interstitial, banner, native, rewarded или appOpen (тот же набор из пяти форматов, который используется для рекламных блоков в других разделах).
При нажатии Сохранить и далее (режим создания) или Сохранить (режим редактирования) проверяются все непустые строки, загружается каждое изображение, а затем каждый креатив создаётся через API. В список сохранённых добавляются только успешно созданные креативы. Если часть креативов сохранить не удалось, вы увидите количество ошибок и сможете повторить попытку. В режиме создания для перехода с этого шага нужен хотя бы один креатив.
Список сохранённых креативов. Уже сохранённые креативы отображаются над формой добавления в виде карточек. Каждая карточка содержит миниатюру (нажмите, чтобы увеличить), название, тип рекламы, целевой URL, бейдж статуса «Активен» / «Неактивен» с переключателем, кнопку редактирования (карандаш) и кнопку удаления (корзина).
- Отключить креатив нельзя, если он единственный активный креатив кампании: появится сообщение «Хотя бы один креатив должен оставаться активным». Во всех остальных случаях запрашивается простое подтверждение «Активировать/деактивировать креатив?».
- Кнопка редактирования (карандаш) открывает встроенную форму для этого креатива: название, изображение и целевой URL. Тип рекламы изменить нельзя. У формы есть собственные кнопки «Сохранить» и «Отмена».
- Перед окончательным удалением креатива появляется предупреждение «Это действие нельзя отменить!».
Шаг 5 — Проверка кампании

Сводка всех данных, введённых на шагах 2–4, доступная только для чтения: статус кампании, название, тип, бренд, продвигаемое приложение, приоритет, дата начала, дата окончания, краткая сводка таргетинга в одну строку (например, «Все бренды · Все приложения» или разбивка по брендам), выбранные регионы (теги или «Все регионы»), а также полный список креативов с миниатюрами, названиями, целевыми URL и бейджами типа рекламы.
Только в режиме создания в верхней части этого шага также доступен переключатель статуса «Активна» / «Приостановлена». Здесь действуют те же правила активации, что и на шаге 2: если у кампании нет креативов или ни один креатив не активен, активация блокируется с сообщением «Не удалось активировать кампанию». В режиме редактирования вместо переключателя отображается бейдж статуса только для чтения: изменить статус можно на шаге 2, но не здесь.
Нажатие Завершить возвращает вас к списку кампаний. В режиме редактирования перед этим ненадолго появляется подтверждение «Кампания успешно сохранена». В режиме создания переход к списку выполняется сразу, без дополнительного подтверждения, поскольку данные уже сохранялись на каждом шаге.