Помните времена, когда пуш-уведомление реально что-то значило? Телефон вибрировал, и ты точно знал: случилось что-то важное. Такси подъехало. Деньги списались. Начальник написал что-то срочное (ладно, обычно не срочное, но хотя бы по делу). Это был 2016 год.
На дворе 2026-й. Шторка уведомлений среднего пользователя превратилась в мусорный бак, куда маркетологи сбрасывают свои KPI с маниакальным упорством.
«Скидка 3% на корм, который ты лайкнул в прошлом месяце!»
«Мы соскучились! Зайди, поностальгируй.»
«Нейросеть подобрала для тебя 10 статей. По твоему пульсу из фитнес-браслета.»
Мы умудрились взять гениально простой инструмент доставки ценности и превратить его в систему психологического давления. Давайте разберем, где конкретно мы свернули не туда, и как разработчику не участвовать в этом цирке с конями.
От честного триггера до спам-пушки
Изначально пуши были транзакционными по своей природе. Пришло событие - ушел пуш. Крошечный payload, утилитарная задача, никакой магии.
Но потом бизнес сделал страшные глаза и прошептал: «Пуш - это бесплатный клик. Бесплатный возврат в приложение. Печатай деньги, Вася!»
И мы начали печатать.
Сначала запилили Notification Service Extension - ну чтобы картинки подтягивать, красота же. Потом интерактивные кнопки прикрутили - пользователь может взаимодействовать, даже не открывая приложение. Звучит как забота о пользователе? Как бы не так. Это развязало руки для создания микро-воронок продаж прямо на локскрине.
А в 2025-2026 годах всё окончательно поехало крышей. В маркетинговые пайплайны завезли генеративные сети. Теперь пуш улетает не по жесткому триггеру (типа «брошенная корзина»), а потому что ML-модель вычислила твой «риск оттока» и сгенерировала текст, стилизованный под твою манеру переписки.
Это уже не уведомление. Это цифровой сталкер, который шепчет: «Я знаю, что ты сейчас делаешь. Закажи пиццу».
Та самая криповая граница
Где проходит грань между «спасибо, напомнил» и «парни, вы чего, следите за мной?»
Персонализация работает ровно до тех пор, пока она предсказуема. Когда приложение доставки еды шлет пуш «Тяжелый день на работе? Возьми пиццу» ровно в тот момент, когда ты выходишь с созвона в 22:05 - это не забота. Это сигнал: «Мы знаем, во сколько ты заканчиваешь работать, где ты находишься (спасибо геотриггерам) и что ты скорее всего голодный».
Такое вызывает не аппетит, а желание снести приложение к чертям.
Проблема в том, что мы научились собирать слишком много контекста. Склейка сессий, анализ времени на экране, парсинг микровзаимодействий - маркетинговые платформы искренне верят: если пуш гиперперсонализирован, значит это не спам.
Спойлер для маркетологов, которые вдруг это читают: для юзера любой пуш, который не решает его проблему здесь и сейчас - это шум. Даже если вы знаете его размер ноги и любимый цвет.
Война брони и снаряда: Apple с Google против всех
Посмотрите, что делают вендоры. Apple и Google последние годы строят баррикады.
Focus Modes / Режимы концентрации - попытка системы отсечь лишнее.
Notification Summary - сбор всего несрочного мусора в пачки, которые показывают дважды в день.
Индикаторы важности - принудительная классификация контента.
И что сделали мы? Правильно. Мы начали абузить всё, что не приколочено. Статус Time Sensitive теперь вешают на уведомления о скидке на йогурты. Live Activities используют не для счета матча или статуса курьера, а чтобы пихать рекламные баннеры в Dynamic Island.
Классическая гонка вооружений: платформа пытается защитить пользователя, а мы ищем дыры, чтобы пробить эту защиту. И совершенно забываем, что по ту сторону экрана - просто уставший человек, у которого лимит внимания давно исчерпан. Мы же с вами не только разработчики, но точно такие же уставшие к вечеру пользователи, которых маркетинговые отделы засыпают спамом.
Инженерная гигиена как единственный выход
Чем заканчивается агрессивный пуш-маркетинг? Всегда одинаково: свайп влево → Настройки → Разрешить уведомления → Выключить.
Для продукта это смерть. Вернуть пользователя из этого состояния сложнее, чем объяснить бабушке, как пользоваться смартфоном (ну помимо простого приема звонков).
Поэтому спасаться нужно глубокой гранулярностью настроек. И это не просто экран со свитчерами «Вкл/Выкл», это архитектурная задача.
Сразу к делу: Notification Service Extension не предназначен для фильтрации уведомлений. В интернете полно примеров, где разработчики пытаются в extension «тихо дропнуть» пуш, вызвав contentHandler с пустым контентом. Это не работает. Extension запускается после того, как система уже приняла решение о показе, и единственная его задача - модифицировать контент (добавить картинку, расшифровать данные). Отменить показ на этом этапе нельзя.
Фильтрация должна работать на уровне сервера или через явные действия пользователя.
Как должен выглядеть здоровый Preference Center в 2026 году
Категоризация на уровне бэкенда. У юзера должна быть возможность отрубить «Маркетинг», но оставить «Безопасность» и «Статус заказа». Не надо вешать всё на один флаг - это путь к тотальному бану.
Частотный контроль (Frequency Capping). Реализуйте на сервере логику: «Не больше N пушей в сутки». Даже если три отдела (акции, контент и техподдержка) одновременно решили, что юзеру срочно нужно их внимание.
Тихие пуши (Silent Pushes). Надо обновить данные для виджета или подготовить кэш? Используйте content-available: 1 без алертов. Не дергайте экран пользователя ради своих технических хотелок.
А что можно сделать на клиенте?
Дать пользователю кнопки управления прямо в уведомлении:
// Регистрируем категорию с действием "Отключить уведомления" let marketingCategory = UNNotificationCategory( identifier: "MARKETING", actions: [ UNNotificationAction( identifier: "MUTE_MARKETING", title: "Отключить маркетинговые", options: .destructive ) ], intentIdentifiers: [] ) UNUserNotificationCenter.current().setNotificationCategories([marketingCategory])
И обработчик, который отправит настройку на сервер:
func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse ) { if response.actionIdentifier == "MUTE_MARKETING" { // Сохраняем локально и шлем на сервер UserDefaults.standard.set(true, forKey: "marketing_muted") api.disableMarketingCategory { result in if result.success { print("Теперь сервер не будет слать вам маркетинговые уведомления") } } } }
Никакой магии. Просто уважение к выбору пользователя и правильная архитектура.
Резюме: инженерное вето никто не отменял
Разработчики часто смотрят на пуши как на трубу: бэкенд послал - клиент показал - «я просто делаю свою работу, сэр». Но именно мы видим, как кодовая база обрастает костылями для обработки очередной гениальной «стратегии вовлечения».
Пора вспомнить, что у нас есть право вето. Когда к вам приходят с задачей «внедрить интеграцию с AI-платформой, которая будет пушить пользователя на основе предиктивной аналитики поведения» - доставайте графики. Корреляция между частотой уведомлений и Retention Rate обычно выглядит очень убедительно.
Мы научились делать сложные и быстрые интерфейсы. Давайте теперь научимся уважать чужой покой. Тишина в кармане пользователя сейчас - это товар, который дороже золота.
А у вас были кейсы, когда пуши реально убивали метрики? Или удавалось отстоять тишину перед маркетингом? Делитесь в комментариях - интересно почитать про чужой опыт (и погрустить над своими граблями).
Комментарии (10)

ssj100
13.03.2026 09:18Никакой магии. Просто уважение к выбору пользователя и правильная архитектура.
если бы это выбирали программисты они бы так и делали.

SHK83 Автор
13.03.2026 09:18Ну в своих проектах я на это влияю (они ж мои), в рабочих отчасти. Иногда удается убедить владельца продукта не творить дичь, но не часто :)

ssj100
13.03.2026 09:18ну это похвально, я тоже в начале влиял, потом это просто переходит в приказном порядке ради 1,5 лишнего клика

Filipppppp
13.03.2026 09:18Сам недавно чистил уведомления и понял, что отключил почти всё, кроме банков и доставки

a3or
13.03.2026 09:18Я на пуши от банка (нельзя оставить только транзакционные) с предложением оценить приложение ставлю мало звёзд, они обижаются, перезванивает, я объясняю про спам, они обещают отключить. Раз пять уже обещали, но воз и ныне там. Сами себе губят графики отзывов, но отключить спам запрещают маркетологи. Так и живём, наплевали друг на друга и ходим обплёваные
DooKoo2
Любые доводы насмерть разобьются о железобетонную уверенность 23 летней девочки-"маркетолога" и ее тезиса "а че такова?"
Fishkarius
К примеру в яндексе я отрубил все уведомления - ну просто достали своим левым пуш-спамом. При чем, ранее я пытался отрубить по категориям (ну там - афишу под нож, такси оставить). Но нет - маркетологи придумывают новые и новые категории дерьма, которые они считают нужным лить в мои глаза. Так что, как написал автор выше - "свайп влево, настройки, выключить".
В общем, конечно, ничотакова, но когда так сделает 99% пользователей и эффективность взаимодействия по этому каналу станет строго равна нулю, не удивляйтесь, товарищи маркетологи ))
YMA
Первым делом отрубаю у приложений уведомления. Приложения, которым они разрешены - по пальцам руки пересчитать можно (родной почтовый клиент, СМС, госуслуги...).
Ничего важного мне приложение Ленты, Яндекс такси и прочих сообщить не могут. Как будет время - загляну, будет настроение - прочитаю. Еще и батарейка экономится.
В итоге у меня телефон тихий и спокойный, если он трямкнул - то значит реально надо взять и посмотреть.
А у супруги так, как описано в статье - постоянные оповещения от золотого яблока, александра богданова и прочих булочных. В итоге она иногда от меня пропускает сообщения, я тихонько вечером беру ее телефон, отписываюсь от почтовых рассылок, блочу ненужные на мой взгляд уведомления приложений, замучиваю каналы в мессенджерах и кладу обратно ;)))
SHK83 Автор
Опасно, до развода так не дойдет, если она пропустит скидку на ее любимые духи?
SHK83 Автор
Девочка "маркетолог" не всегда принимает решения. Часто маркетологи лишь предлагают, некоторые настаивают. Но не всегда решение за ними. Но всегда балом правит выгода. Если владелец продукта уверится в правоте девочки, то беда.