Skip to content

Пуш-уведомления ​

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

Это единственный канал, который возвращает пользователя бесплатно: за установку вы уже заплатили, а дальше напоминать о себе можно сколько угодно. Типичная связка - «поставил и забыл»: через пару часов после установки приходит приветственное сообщение, вечером - напоминание о приложении, а тем, кто зарегистрировался, но не пополнил счёт, - отдельное предложение.

Раздел открывается из меню Pushes.

Список пушей: тип, охваченные PWA, отправки, клики и CTR

Как это работает ​

Цепочка простая, и вы участвуете только в двух её звеньях:

  1. Подписка. Человек устанавливает ваше PWA и разрешает уведомления. Браузер выдаёт приложению «адрес доставки», и он сохраняется в системе. Это происходит само - вам нужно лишь включить сбор подписок в настройках PWA.
  2. Сегмент. У каждого подписчика есть страна, язык и место в воронке: установил, зарегистрировался, пополнил. Статус поднимается автоматически, когда от партнёрки приходит постбек.
  3. Пуш. Вы создаёте его в этом разделе: пишете текст, выбираете, кому и когда отправлять.
  4. Отправка. Система сама рассылает сообщения - вручную по кнопке, по расписанию или через заданное время после события. Отправки и клики попадают в статистику пуша.

Разрешение спрашивают один раз

Браузер показывает запрос на уведомления однократно, и отказ - навсегда: повторно спросить нельзя. Поэтому в настройках PWA есть режим «сначала спросить внутри приложения» - подробнее ниже.

Шаг 1. Включите сбор подписок в PWA ​

Пуши уходят только тем, кто подписался, а подписки собирает само приложение. Откройте нужное PWA, перейдите на вкладку Settings - там блок Push notifications.

Вкладка Settings в форме PWA: тумблеры Collect subscriptions и Ask in-app first

  • Collect subscriptions - включает сбор подписок. Пока тумблер выключен, приложение ничего не спрашивает и база подписчиков не растёт.
  • Ask in-app first - сначала показать собственный экран с предложением включить уведомления и только после согласия вызвать системный запрос.

Зачем спрашивать дважды

Системный запрос браузера - одноразовый: нажал «Заблокировать» - и подписки от этого человека не будет уже никогда. Собственный экран стоит одного лишнего касания, зато те, кто сейчас не готов, просто закроют его - и системный запрос останется неизрасходованным до следующего раза.

Дальше всё происходит без вас: человек ставит приложение, соглашается на уведомления и попадает в базу подписчиков со своей страной, языком и статусом installed.

Список пушей ​

На главном экране раздела - таблица пушей. По ней видно, что запущено, кому уходит и как работает:

  • Name - имя пуша.
  • Type - как он срабатывает: Manual, Scheduled или Triggered.
  • PWAs - приложения, подписчикам которых уходит рассылка. Тег All означает, что пуш охватывает все PWA команды.
  • Sent - сколько сообщений отправлено, Clicks - сколько раз по ним нажали, CTR - отношение кликов к отправкам в процентах. Это главный показатель: он сразу показывает, какой текст цепляет, а какой нет.
  • Status - значок кликабельный: нажатие запускает или останавливает пуш, не заходя внутрь. У ручных пушей вместо статуса стоит «-»: их статус ни на что не влияет, они уходят только по кнопке.

Сверху - поиск по названию, кнопка Add (создать пуш) и обновление списка. За кнопкой с воронкой прячутся фильтры: PWAs (пуши, которые бьют по выбранному приложению), Type, Status, Team и переключатель Archived. Рядом - настройка колонок; и то и другое устроено одинаково во всех списках панели, см. раздел «Интерфейс».

Что можно сделать со строкой ​

Кнопка с тремя точками справа открывает меню:

  • Start / Stop - включает или выключает автоматические отправки (у ручных пушей пункта нет).
  • Send now - немедленная отправка всей подходящей аудитории, с подтверждением.
  • Edit - открывает форму пуша.
  • Clone - создаёт копию со всеми текстами и настройками. Удобно, когда нужен тот же сценарий на другой гео или с другим текстом.
  • Archive - убирает пуш из списка.

Цепочка от AI ​

Кнопка Chain from AI над списком собирает готовую цепочку напоминаний для одного приложения: по пушу на каждый шаг воронки подписчика.

Окно Push chain from AI: черновики по шагам воронки, языки PWA и цена генерации

  1. Нажмите Chain from AI и выберите PWA.
  2. Выберите тон: Neutral, Warm, Urgent или Premium.
  3. Нажмите Generate. AI напишет три пуша:
    • Installed - через час после установки, тем, кто ещё не зарегистрировался;
    • Signed up - через день после регистрации, тем, кто ещё не оплатил;
    • Paid - через три дня после оплаты, чтобы вернуть пользователя.
  4. Тексты пишутся на всех языках витрины. Переключайте язык чипами над черновиками и правьте заголовок и текст прямо в окне. Ненужный черновик уберите крестиком.
  5. Нажмите Create N pushes. Пуши создаются неактивными: проверьте их и включите сами.

Метка overlaps у черновика значит, что у этой PWA уже есть пуш на тот же шаг с той же задержкой. Regenerate пишет новую версию, внизу окна видна примерная цена генерации.

Создание пуша ​

Кнопка Add открывает форму. Она разбита на четыре вкладки: General, Messages, Schedule и Filter - сначала общие свойства, потом тексты, время и аудитория.

Заполнять всё сразу не обязательно: достаточно вкладок General и Messages, а расписание и фильтры можно донастроить позже. Кнопка Create сохраняет пуш; если где-то ошибка, форма сама откроет вкладку с проблемным полем.

В шапке открытого пуша, рядом с Save:

  • Start / Stop - включает или выключает автоматические отправки (у ручных пушей кнопки нет);
  • кнопка с глазом (Show as it arrives) - показывает пуш так, как он придёт подписчику;
  • кнопка с самолётиком - Send now, см. «Отправка вручную».

Кнопка Show as it arrives: уведомление в правом верхнем углу, как его увидит подписчик

Кнопка с глазом собирает текст на языке по умолчанию и на 6 секунд выводит карточку в правый верхний угол - так, как браузер показывает уведомление. Работает с любой вкладки формы и ничего не отправляет. Наведите курсор - карточка задержится, клик или крестик её закрывают.

General - имя, команда, язык и тип ​

Вкладка General: имя пуша, команда, язык по умолчанию и тип

  • Name - имя, по которому вы узнаете пуш в списке.
  • Team - команда, которой принадлежит пуш. От неё зависит и аудитория: рассылка никогда не выйдет за пределы подписчиков этой команды.
  • Default language - язык, на котором уйдёт сообщение, если для языка подписчика текста нет.
  • Type - как пуш срабатывает:
    • Manual - только по кнопке Send now. Разовые акции: распродажа, спецпредложение, «сегодня два по цене одного».
    • Scheduled - по дням недели и времени с вкладки Schedule. Регулярные напоминания: каждый вечер, каждые выходные.
    • Triggered - каждому подписчику индивидуально, через заданное время после его установки, регистрации или депозита. Это автоворонка: человек установил приложение - через два часа получил приветственное сообщение, независимо от того, когда именно он пришёл.

Тип можно поменять

Тип пуша не приговор: остановите его, переключите тип и сохраните. Расписание и триггеры хранятся отдельно, поэтому настроенные слоты никуда не денутся, даже если пуш временно станет ручным.

Messages - тексты на разных языках ​

Тексты хранятся по языкам: подписчику приходит сообщение на его языке, а если такого нет - на языке из поля Default language.

Вкладка Messages: языки чипами, поля текста и живой предпросмотр уведомления

Языки - чипы над полями, как в форме PWA. Редактируется один язык за раз: нажмите на чип, чтобы открыть его тексты. Язык по умолчанию помечен Default.

  • Добавить язык - кнопка с плюсом после чипов (Add language): выберите язык в окне и нажмите Add.
  • Меню чипа (три точки, у всех языков, кроме основного) - Make default делает язык основным, Remove language удаляет его вместе с текстами (система спросит подтверждение).
  • Перевод с AI - на любом языке, кроме основного, после чипов появляется кнопка со звёздочкой (Translate from … with AI, вместо «…» - код языка по умолчанию), если на языке по умолчанию заполнен заголовок или текст. Она переводит их с языка по умолчанию. Проверьте и поправьте перевод - он сразу попадает в поля.

Поля у каждого языка:

  • Title - заголовок уведомления, до 120 символов. Обязательное поле.
  • Text - текст под заголовком, до 500 символов.
  • Link on click - куда ведёт нажатие. Обычно это /getOfferUrl - ваша ссылка на предложение, та же, что открывается при запуске приложения.
  • Icon URL - своя картинка уведомления. Если оставить пустым, подставится иконка самого приложения.

Справа - Preview: так уведомление выглядит на экране телефона. Предпросмотр обновляется сам, через полсекунды после того, как вы перестали печатать, и показывает пуш от имени первого PWA из вкладки Filter. Его иконка подставляется, только если Icon URL пустое. Если PWA в фильтре не выбраны, карточка подписана «PWA». Если в Filter выбрано несколько PWA, под карточкой будет подсказка: остальные PWA отправят его со своими именем и иконкой.

Если при сохранении в каком-то языке ошибка, форма сама переключится на этот язык.

Уникализация текста ​

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

Справка по операторам открывается кнопкой со знаком вопроса в углу Preview:

ЗаписьЧто делает
{a|b|c}случайный вариант; можно вкладывать друг в друга
{%RINT=(N,M)}случайное целое число от N до M
{%R=(S) a|b|c}перемешивает варианты и склеивает их разделителем S
{%Q=(N,S) a|b|c}берёт N случайных вариантов и склеивает разделителем S

Например, {Привет|Хей}! Скидка {%RINT=(10,50)}% на {подписку|тариф|первый заказ} каждому придёт по-своему: «Хей! Скидка 25% на тариф», «Привет! Скидка 40% на подписку» и так далее.

Preview всегда показывает один из таких вариантов, а кнопка со стрелкой в его углу (Another variant) собирает следующий - нажмите несколько раз подряд, чтобы увидеть разброс. Предпросмотр собирается на сервере, тем же кодом, что и реальная отправка, поэтому расхождений с тем, что уйдёт людям, не будет.

Написать варианты за вас

Кнопка со звёздочкой рядом с полем (Uniqueize with AI) переписывает готовую фразу в такой шаблон с вариантами - останется только проверить и поправить. Если на сервере не подключена языковая модель, текст останется без изменений; на работу пуша это никак не влияет - варианты всегда можно расставить руками.

Schedule - когда отправлять ​

Вкладка показывает настройки только для типа пуша с вкладки General. У ручного пуша расписания нет - он уходит по кнопке Send now; если тип ещё не выбран, вкладка попросит сначала выбрать его.

Scheduled - по дням недели. Каждая строка - слот: отметьте дни чипами Mon…Sun (или одним нажатием - Every day, Weekdays, Weekend) и выберите время справа. Под чипами слот описан словами, например «Every day at 21:30». Без единого дня слот не сохранится. Add slot добавляет ещё строку - например, будни в 19:00 и выходные в 12:00; корзина справа удаляет слот.

Вкладка Schedule у пуша Scheduled: дни недели, пресеты, время и итог словами

Triggered - после события. Три строки: After install, After registration и After deposit. Включите тумблер нужного события и задайте задержку числом и единицей (min, hours или days). Выключенное событие ничего не отправляет. Пуш уходит один раз, через заданное время после события, и отсчёт идёт для каждого подписчика от его собственной установки, регистрации или депозита.

Вкладка Schedule у пуша Triggered: тумблеры событий и задержка числом и единицей

Время серверное

Расписание считается по времени сервера, а не по часовому поясу получателя. Если вы льёте на Бразилию с европейского сервера, заложите разницу сами: «вечер по местному времени» - это другое число в слоте.

Filter - кому отправлять ​

По умолчанию пуш охватывает всех подписчиков своей команды. Фильтр нужен, чтобы сузить этот круг.

Вкладка Filter: выбор PWA, стран и статусов подписчиков с проверкой аудитории

  • PWAs - конкретные приложения. Пусто - значит все приложения команды.

  • Countries - страны подписчиков. Пусто - значит все страны.

  • Subscriber statuses - место в воронке:

    • Not registered - установил приложение, но не зарегистрировался;
    • Registered, no deposit - зарегистрировался, но не пополнил счёт;
    • Registered and deposited - уже платящий.

    Не отмечено ничего - попадают все.

Кнопка Check audience показывает, сколько подписчиков сейчас подходит под фильтр. Считает она сохранённые настройки, поэтому сначала нажмите Save, а потом проверяйте.

Статусы - это сценарии

Каждому статусу нужен свой текст. Тем, кто не зарегистрировался, - напоминание о подарке за регистрацию; зарегистрированным без депозита - предложение на первую покупку; платящим - новинки и персональные скидки. Один пуш на всех проигрывает трём разным почти всегда.

Отправка вручную ​

Кнопка Send now - в меню строки списка и в шапке открытого пуша (самолётик). Она отправляет сообщение всей подходящей аудитории немедленно, независимо от типа пуша и его статуса. Система спросит подтверждение.

Отменить отправку нельзя

Отправленное уведомление уже ушло на устройства. Перед нажатием проверьте текст в Preview или кнопкой с глазом, а охват - кнопкой Check audience на вкладке Filter.

Обычные (автоматические) отправки система не дублирует: подписчик, которому пуш уже приходил по триггеру, второй раз его не получит. А вот Send now отправляет всем, кто подходит под фильтр, - даже если они уже получали это сообщение.

Что происходит после отправки ​

  • Счётчики Sent и Clicks в списке обновляются по мере рассылки, а CTR сразу показывает, насколько текст сработал.
  • Устройства, которые больше не принимают сообщения (приложение удалили, подписку отозвали), отсеиваются автоматически - база подписчиков чистится сама.
  • Клики считаются по нажатию на само уведомление; открытое приложение при этом не дублируется - человек попадает в уже запущенное окно.

Почему отправлено меньше, чем подписчиков

Сообщение уходит только тем, для чьего языка есть текст - с учётом языка по умолчанию. Если в пуше один английский текст, а Default language пустует, подписчики с другими языками будут пропущены. Проще всего это заметить по разнице между Check audience и Sent.

С чего начать ​

Рабочий минимум, который стоит собрать в первый же день:

  1. Включите Collect subscriptions в настройках PWA - база начнёт расти сразу.
  2. Заведите пуш типа Triggered с задержкой 2h в поле After install и статусом Not registered в фильтре - это приветственное сообщение тем, кто ещё не дошёл до регистрации.
  3. Добавьте второй, типа Scheduled, на вечер каждого дня - регулярное напоминание.
  4. Через несколько дней сравните CTR обоих и перепишите тот, что проигрывает.

Дальше остаётся только добавлять языки и уточнять сегменты - база подписчиков работает на вас без дополнительных затрат на трафик.

Создавать и отправлять пуши можно и из скриптов - см. раздел API «Пуши».