Два канала договорились обменяться публикациями. Теперь надо выбрать посты, назначить время, согласовать срок размещения. А если один уже опубликовал рекламу, а второй пока не может? За короткой договорённостью тянется работа, которую кто-то должен делать.
Для нескольких каналов её становится ещё больше. У каждого свои партнёры, расписание и незавершённые обмены. Под эту задачу мы разработали Swap для ООО «Медиавоздействие». Занимались всем: от идеи и правил до экранов, программной реализации и развёртывания сервиса.
На момент подготовки кейса, 7 октября 2026 года, Swap работает в тестовом режиме. На публичном сайте можно оставить заявку на подключение. Массовые реальные обмены ещё не открыты. Ниже рассказываем о разработке системы, а не о результатах масштабной рекламной кампании.
Сначала разобрались, что именно люди будут обменивать
У владельца канала, его партнёра и администратора сервиса разные заботы. Первый не хочет потерять контроль над своей лентой. Второму нужно знать, что происходит с его рекламой. Администратору приходится разбирать случаи, когда обмен остановился и участники ждут друг друга.
Поэтому сначала разобрали сам обмен, а уже потом разделы кабинета. Получились подключение каналов, подбор партнёров, библиотека материалов, расписание, публикации, статистика и учёт обязательств. У каждого действия должен был появиться статус: уже сделано, ещё ждём или что-то пошло не так.
По ходу разработки менялась и модель обмена. Сначала рассматривали автоматический подбор обычных публикаций для репоста. Затем основной сценарий выстроили вокруг специально подготовленных рекламных постов. Владелец заранее выбирает, каким материалом представить свой канал новой аудитории, и сам управляет участием этого материала в обменах.
В библиотеке остановились на двух действиях: «Запустить» и «Остановить». В ходе разработки убирали лишние переключатели. Хотелось, чтобы по самому экрану было ясно, участвует сейчас материал в обменах или нет.
Почему главным экраном стала карта
Можно перечислить каналы в таблице, но тогда отношения между ними придётся искать по строкам. Мы решили показать собственные площадки и партнёров рядом, а размещения обозначить стрелками. Эта карта и стала главным экраном Swap.
Свои каналы и партнёрские отличаются оформлением. Стрелки показывают, куда направлено размещение, а показатели в карточке дают сведения о канале и его истории. Карту можно двигать и масштабировать. Нажатие на карточку открывает подробности справа: сведения, измерения и доступные действия остаются рядом с выбранным каналом.

Со связями пришлось разобраться отдельно. Подходящий по тематике партнёр ещё не означает, что рекламу можно отправлять прямо сейчас. У канала может не быть запущенного материала или свежих данных об охвате. Поэтому потенциальную совместимость отделили от готовности к публикации, а причины ожидания вынесли в предупреждения.
Так карта получила рабочий смысл. Она помогает не только найти пару каналов, но и понять, что мешает этой паре перейти к обмену.
Автоматизация не должна заполнять ленту рекламой
Подключённый канал сначала проходит модерацию. Администратор проверяет его и назначает тематики. Владелец, в свою очередь, выбирает темы партнёров, с которыми готов работать. Подбор учитывает и подтверждённую классификацию, и взаимные предпочтения участников.
Потом разобрали случай, когда у одного канала сразу несколько подходящих партнёров. Все нашли свободное время. Значит ли это, что можно отправить рекламу одного за другим? Нет: иначе пользователю достанется серия рекламных постов вместо привычной ленты.
Мы заложили ограничения на частоту размещений и интервалы между ними. Учли и обычные публикации: между рекламными должны выходить собственные посты канала. Общие рамки задаёт сервис, а владелец может сделать режим ещё сдержаннее.
Одного свободного часа в расписании недостаточно. Перед публикацией система проверяет также лимиты. И наоборот: даже если лимит ещё не исчерпан, отправлять пост в запрещённые часы нельзя. Эти проверки действуют сразу для всех партнёров канала.
До отправки приходит предупреждение. Владелец видит предстоящее размещение и может от него отказаться. Подбор автоматический, но последнее слово за человеком мы сохранили.

Пост вышел. Но обмен ещё может быть не закончен
Число вышедших публикаций ещё не говорит, завершён ли обмен. Реклама в первом канале уже вышла, а для ответного поста время пока не подошло. Эту разницу мы вынесли в отдельный баланс.
В балансе видно, сколько просмотров нужно вернуть партнёрам и сколько должны получить свои каналы. Считаем по измеренным результатам размещений. Если данные ещё не пришли, у операции остаётся состояние ожидания.
Для баланса мы сохранили знакомое устройство экрана: общие показатели сверху, отношения между каналами на карте, подробности выбранного участника или направления справа. Но задача у этой доски другая. Здесь важно увидеть обязательство и ход его выполнения, а не просто подобрать следующего партнёра.
Внутренние обмены между каналами одного владельца исключили из внешнего баланса. Встречное размещение не обязано произойти одновременно с первым: оно зависит от расписания, ограничений и состояния канала. Выполненная часть и ожидаемый возврат учитываются отдельно, но связь и история между ними сохраняются.
Просмотр, переход и подписка — разные результаты
Количество подписчиков не всегда помогает оценить текущую активность канала. Мы добавили регулярный сбор среднего числа просмотров на пост за последние три дня. Этот показатель дополняет размер аудитории. Если данных для расчёта не хватает, это видно в состоянии канала и учитывается при допуске к обменам.
Telegram и MAX объединены общей логикой продукта: каналы, материалы, правила, размещения и отчёты доступны в одном сервисе. При этом особенности площадок обрабатываются отдельно. Просмотры, переходы и подтверждённые подписки не смешиваются в одну цифру. Клик по ссылке сам по себе ещё не означает вступление в канал.
Нужно было решить и судьбу самого поста. Срок размещения сделали настраиваемым. Перед его окончанием система должна сохранить итоговые измерения, после чего бот удаляет материал, который сам опубликовал. Если пост исчез раньше срока, это фиксируется отдельно.
В истории остаются публикация, её измерения и незакрытое обязательство, если оно есть. Можно вернуться к конкретному размещению и разобраться, что с ним произошло.
Что предусмотрели на случай отказов и сбоев
Администраторам нужен был свой набор экранов. Мы сделали модерацию каналов и материалов, управление доступом, глобальную карту сети и техническую доску. Из общего обзора можно перейти к каналу, обмену или конкретной проблеме.
На доске зелёный обозначает штатную работу, жёлтый обращает внимание на предупреждение, красный выделяет проблему. Одним цветом не ограничились: рядом есть объяснение состояния и подробности. Команде важно знать, почему публикация не состоялась, а не просто увидеть красный индикатор.
Для проверки обменов предусмотрели два инструмента: симуляцию и отдельный режим реальных тестовых отправок. Оба доступны администраторам. Так можно проверить подбор партнёров, расписание и последовательность действий до массового использования. Результаты этих проверок хранятся отдельно от обычной статистики.
Проверяли отказ от публикации, изменение материала, паузу канала, отсутствие свежего охвата и задержки ответа мессенджера. Последний случай особенно легко недооценить: если результат отправки неизвестен, слепой повтор может создать второй такой же пост. Для этого нужны отдельный статус и возможность свериться с тем, что действительно произошло.
От заявки до рабочего окружения
Чтобы начать работу, человек оставляет заявку на публичной странице. Она приходит администратору в кабинет; после рассмотрения он отправляет приглашение. Новому участнику помогает тур по интерфейсу.
Повседневную работу владельца мы отделили от административных инструментов. Человеку, который подключает канал и управляет материалами, не нужно разбираться в технической доске всей сети.

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