Adset.ProAdset.ProKnowledge base
Home/Навчальні матеріали/Push-метрики: що рахується і як читати

Push-метрики: що рахується і як читати

Як працюють push-сповіщення в Adset.Pro

Push-сповіщення — це безкоштовний ретаргетинг на твою базу підписників.

Механіка:

  1. Користувач встановив PWA і дозволив пуші → він у базі підписників (FCM-токен + click_id + країна + прапорці поведінки)

  2. Ти створюєш push-сповіщення з заголовком, текстом, картинкою і посиланням

  3. Adset.Pro відправляє його через Firebase Cloud Messaging (FCM) — індивідуально на FCM-токен

  4. Користувач бачить сповіщення на екрані телефону → клікає → потрапляє на лендинг/офер

  5. Service Worker на клієнті фіксує показ (VIEW) і клік (CLICK)

Бізнес-цінність: Це безкоштовний канал повторного дотику. Один раз зібрав базу підписників — далі відправляй пуші за розкладом або тригерам (реєстрація, депозит).


Типи push-подій

Кожна взаємодія з пушем фіксується окремою подією в таблиці events_push:

Серверні події (фіксуються трекером одразу)

Подія

Що означає

SEND

Пуш успішно відправлений через FCM (сервер отримав підтвердження від Firebase)

FAIL

Помилка відправки: токен застарів, підписка невалідна, FCM повернув помилку

SKIP

Пуш не відправлений — підписник не пройшов таргетинг (поведінкові фільтри: registered/deposited/redeposited)

Клієнтські події (фіксуються Service Worker на пристрої)

Подія

Що означає

VIEW

Пуш відобразився на екрані користувача (подія onshow в Service Worker)

CLICK

Користувач клікнув по сповіщенню (подія onclick)

Ключова різниця: SEND ≠ VIEW. Пуш може бути відправлений (SEND), але не відображений: користувач у Do Not Disturb, пристрій вимкнено, браузер закрито, або сповіщення заблоковані на рівні ОС.

Події підписки (в основній таблиці events)

Подія

Що означає

NOTIFICATION_REQUEST

Показано запит на пуш-сповіщення

NOTIFICATION_SUBSCRIBE

Користувач погодився на пуші

NOTIFICATION_DECLINE

Користувач відмовився

NOTIFICATION_UNSUBSCRIBE

Користувач відписався пізніше

NOTIFICATION_CLICK

Клік по пуш-сповіщенню (дублює PUSH_CLICK в основній статистиці)


Ключові метрики push-кампаній

Всі метрики доступні в статистиці (таблиця events_push):

Метрика

Формула

Що показує

push_sends

countIf(event_type = 'SEND')

Кількість успішно відправлених пушів

push_fails

countIf(event_type = 'FAIL')

Кількість помилок відправки

push_skips

countIf(event_type = 'SKIP')

Пропущені (таргетинг не співпав)

push_views

countIf(event_type = 'VIEW')

Пуші, що відобразилися на екрані

push_clicks

countIf(event_type = 'CLICK')

Кліки по сповіщенням

push_ctr

push_clicks / push_views

Клікабельність — скільки % тих, хто побачив, клікнули

push_delivery_rate

push_sends / (push_sends + push_fails)

% успішної доставки від спроб

push_fail_rate

push_fails / (push_sends + push_fails)

% помилок при відправці

push_view_rate

push_views / push_sends

% доставлених пушів, які реально відобразилися

Пост-клік атрибуція (таблиця events_push_attributed)

Метрика

Формула

Що показує

push_postclick_holds

countIf(conv.event_type = 'CPA_HOLD')

Реєстрації після кліка по пушу

push_postclick_accepts

countIf(conv.event_type = 'CPA_ACCEPT')

FTD (депозити) після кліка по пушу

push_postclick_redeps

countIf(conv.event_type = 'CPA_REDEP')

Редепозити після кліка по пушу

Інтерпретація метрик

  • push_ctr: 2-5% — типовий для gambling/betting. Вище 5% — відмінний креатив. Нижче 1% — перевір заголовок, картинку, релевантність

  • push_delivery_rate: 60-80% — норма для свіжої бази. Нижче 50% — база «постаріла», багато мертвих токенів

  • push_fail_rate: Зворотна сторона delivery_rate. Якщо > 40% — пора «чистити» базу або оновлювати підписників

  • push_view_rate: Зазвичай 50-70% від SEND. Інші — Do Not Disturb, вимкнені пристрої


Статистика пушів в інтерфейсі

Основна аналітика (розділ Статистика)

В статистиці можна групувати дані по пушам:

Group Key

Опис

event_push_id + event_push_id_name

Розбивка по конкретному пушу

event_slot_key

Розбивка по слоту часу (для регулярних пушів за розкладом)

Як вибрати push-дані:

  • Використовуй метрики з групи Push: push_sends, push_views, push_clicks, push_ctr тощо.

  • Додай group by event_push_id, щоб побачити, який пуш спрацював краще

  • Метрики push працюють з таблицею events_push — вона підключається автоматично при запиті push-метрик

Post-Click Attribution (розділ Push Аналітика)

Post-Click Attribution відстежує конверсії, які відбулися після кліка по пушу, протягом заданого вікна атрибуції.

Параметр

Значення

Вікно атрибуції

Максимальний час між кліком по пушу і конверсією

За замовчуванням

72 години

Як працює:

  1. Користувач клікає по пушу → фіксується event_click_id пуш-кліка

  2. Протягом N годин користувач реєструється або робить депозит

  3. Конверсія атрибутується цьому пуш-кліку через JOIN events_push_attributed

Важливі нюанси:

  • Атрибуція до пушу не замінює атрибуцію до рекламного кліку — один депозит може бути атрибутований обом (рекламному кліку в основній статистиці + пушу в Post-Click Attribution)

  • Рекомендоване вікно атрибуції для gambling: 48-72 години. Коротше — втрачаєш відкладені конверсії. Довше — занадто багато «шуму»

  • Post-Click Attribution показує вклад пушів в загальну конверсійну картину, а не замінює основну статистику


Типи push-сповіщень

Регулярні пуші (REGULAR / ONE_TIME)

Відправляються за розкладом через PushPlannerService:

  • Календар пушів (PushGroup) визначає дні і час відправки

  • Підтримується погодинний розклад за timezone користувача (tz_GMTp3 тощо)

  • FCM умова: 'team_X' in topics AND 'country_UA' in topics [AND 'tz_GMTp3' in topics]

Застосування: Акції, бонуси, контент, регулярні нагадування.

Подійні пуші (EVENT)

Відправляються при настанні події через PushEventScheduler:

  • Тригери: REGISTRATION, DEPOSIT та інші

  • Підтримується відкладена відправка з налаштовуваною затримкою (через eventSchedule)

  • Очікування підписки: якщо підписки ще немає, scheduler чекає до 2 годин з backoff (5s → 15s → 1m → 5m → 10m)

Застосування:

  • Привітальний пуш після реєстрації (через N хвилин/годин)

  • Пуш-нагадування при відсутності депозиту

  • Реактивація при редепозиті


Таргетинг підписників

Перед відправкою налаштовується таргетинг за поведінковими прапорцями і параметрами підписки:

Поведінкові фільтри (push.targets)

Параметр

Значення

Опис

registrations

all / registered / not_registered

Фільтр за фактом реєстрації

deposit

all / deposited / not_deposited

Фільтр за фактом першого депозиту

redeposit

all / redeposited / not_redeposited

Фільтр за фактом редепозита

Поведінка за замовчуванням: Для більшості пресетів redeposit = not_redeposited (не слати пуші тим, хто вже редепозитив). Пресет «Reg+ Dep+ Redep+» — єдиний, де redeposit = redeposited.

Фільтри за підпискою

Параметр

Опис

Країна (country)

Відправити тільки користувачам з певних GEO

Timezone (timeZone)

Відправка в локальний час користувача

Кампанія (campaign)

Підписники конкретних кампаній (через PushGroup)

Статус підписки

Тільки ACTIVE підписки

Практичні кейси

Кейс 1: «Бонус для зареєстрованих, але не задепозивших з UA»

targets:
  registrations: registered
  deposit: not_deposited
  redeposit: all
Фільтр: campaign ∈ [UA-кампанії]

Кейс 2: «Тригерний пуш після реєстрації (через 1 годину)»

Тип: EVENT
Тригер: REGISTRATION
Затримка: 1 година
Зміст: "Твій бонус чекає! Забери прямо зараз"

Кейс 3: «Реактивація — не задепозивші за 3 дні»

Тип: EVENT
Тригер: REGISTRATION
Затримка: 72 години
targets:
  deposit: not_deposited
Зміст: "Не пропусти свій бонус — він згорає через 24 години!"

Макроси в тексті пуша

В заголовку і тілі сповіщення можна використовувати макроси для персоналізації:

Макрос

Що підставляє

{offer.value}

Значення офера з налаштувань PWA (наприклад, розмір бонусу)

{random: вар1, вар2, вар3}

Випадковий вибір зі списку варіантів

Приклади:

Заголовок:

Бонус {offer.value} тільки сьогодні!

Тіло:

{random: Встигни забрати бонус!, Твій бонус чекає!, Спеціальна пропозиція для тебе!}

Порада: Рандомізація через {random} знижує «банерну сліпоту» — коли користувач бачить один і той же текст кожен день і перестає клікати. Міняй текст кожного разу, щоб підтримувати CTR.


Причини низької доставки

Delivery Rate низький (< 60%)

Причина

Що робити

Застарілі FCM-токени

База «старіє» з часом — це нормально. FCM автоматично повертає FAIL для невалідних токенів

Користувач видалив PWA

Підписка стає невалідною. Рішення: регулярно залучати нових підписників

Користувач заблокував сповіщення

Токен видаляється з бази при NOTIFICATION_UNSUBSCRIBE

FCM недоступний (рідко)

Повторна відправка не передбачена. Зазвичай відновлюється само

FAIL vs SKIP — в чому різниця

Подія

Причина

Що означає

FAIL

Помилка FCM

Токен невалідний, підписка застаріла. Технічна проблема

SKIP

Таргетинг не співпав

Підписник не підходить під умови (вже задепозив, не зареєстрований тощо). Логічне рішення

Якщо push_fail_rate > 40% — база сильно застаріла. Рішення:

  1. Запускати нові кампанії для збору свіжих підписників

  2. Фокусуватися на push-метриках свіжих когорт (останні 30 днів)


Push-групи і кампанії

Кампанії прив'язуються до Push-груп (PushGroup). Це визначає:

  • Які підписники отримують пуші з цієї групи кампаній

  • Календар відправки регулярних пушів

  • Загальні налаштування для всіх пушів групи

FCM Topics: Підписники автоматично підписуються на FCM-топіки:

  • team_{teamId} — для фільтрації по команді

  • country_{ISO2} — для фільтрації по країні (UA, KZ, UZ тощо)

  • tz_GMTp{N} — для фільтрації по часовому поясу


Часті питання

Q: Відправив 10 000 пушів, а VIEW тільки 3 000 — куди поділися решта?

Сума: SEND + FAIL + SKIP = загальна кількість оброблених підписників.

  • FAIL — застарілі токени, FCM-помилки (зазвичай 10-30% для бази старше місяця)

  • SKIP — таргетинг не співпав (користувач вже задепозив тощо)

  • З решти SEND: не всі стали VIEW — Do Not Disturb, вимкнені пристрої, заблоковані сповіщення

Q: push_ctr низький (< 2%) — що робити?

  1. A/B тест заголовків — створи два пуші з різним текстом, порівняй CTR

  2. Перевір час відправки — пуш о 3 годині ночі по часовому поясу користувача = низький CTR

  3. Персоналізуй через макроси — {offer.value} і {random} підвищують релевантність

  4. Додай/зміни картинку — пуші з зображеннями зазвичай мають вищий CTR

  5. Перевір сегментацію — пуш «для всіх» завжди менш релевантний, ніж цільовий

Q: Як відстежити, який саме пуш призвів до депозиту?

  1. Відкрий Push Аналітику → Post-Click Attribution

  2. Вибери метрики: push_postclick_accepts, push_postclick_redeps

  3. Group by: event_push_id (або event_push_id_name)

  4. Побачиш, скільки FTD і редепозитів атрибутовано кожному пушу

В основній статистиці: додай метрики push_clicks і group by event_push_id — побачиш, скільки кліків отримав кожен пуш. Співвідношення кліків і конверсій = ефективність.

Q: Чи можна відправляти пуші користувачам, які встановили PWA, але не підписалися на сповіщення?

Ні. Пуші відправляються тільки підписникам (FCM-токен в базі). Встановлення PWA ≠ підписка на пуші:

  • PWA_INSTALL — PWA встановлено

  • NOTIFICATION_SUBSCRIBE — користувач погодився на пуші (це окрема подія)

  • NOTIFICATION_DECLINE — користувач відмовився

Зазвичай 40-70% встановивших PWA підписуються на пуші. Для підвищення підписок: оптимізуй дизайн запиту, показуй у правильний момент (не одразу при відкритті).

Q: Як працює відправка пушів по FCM умові vs по токенах?

Adset.Pro підтримує два режими:

  • Condition (масова): FCM умова виду 'team_X' in topics AND 'country_UA' in topics — відправляється одним запитом на всі підходящі пристрої. Швидко, масштабовано

  • Token (індивідуальна): Відправка на конкретний FCM-токен — використовується для подійних пушів (EVENT), де потрібна персоналізація