Devlly

get in touch

Devlly - студія розробки. Автоматизуємо бізнес: від Telegram-бота до повноцінної CRM/ERP-системи.

Розсилка

  • Кейс
  • Маркетинг і аналітика

NovaFit - моніторинг реклами Google Ads і Meta Ads

NovaFit крутить рекламу одночасно в Google Ads і Meta Ads, і до цієї системи стан кампаній перевірявся руками - у двох кабінетах, по черзі, коли до цього доходили руки. Тепер щоранку система сама забирає вчорашні цифри з обох рекламних кабінетів, кладе їх у Google Таблицю з готовим дашбордом, порівнює кожну кампанію з її ж медіаною за тиждень і, якщо CPA чи ROAS вийшли за поріг, пише про це в Telegram. Дорогий день видно наступного ранку, а не в кінці місяця.

Кому підходить: будь-якому бізнесу, що витрачає на рекламу відчутні гроші у двох і більше каналах - інтернет-магазинам, фітнес-клубам, школам, клінікам, сервісам за підпискою. Особливо тим, у кого немає штатного аналітика, а підрядник надсилає звіт раз на місяць.

Стек: Python, конектори до Google Ads API і Meta Marketing API, Google Sheets API як сховище й дашборд, aiogram для Telegram-бота, APScheduler для щоденного запуску.

  • Python
  • Google Ads API
  • Meta Marketing API
  • Google Sheets API
  • aiogram
  • APScheduler

Як влаштована система

Три частини, одна таблиця. Google Таблиця - і сховище, і дашборд: у неї лягають денні рядки по кампаніях, а оформлення, формули й графіки живуть прямо в ній. Модуль детекції читає ці ж рядки й вирішує, чи є відхилення. Telegram-бот показує зведення на запит і розсилає нові алерти. Щоранку о 09:00 за Києвом планувальник проганяє весь ланцюжок: забрати вчорашній день з Google Ads і Meta Ads - записати - перерахувати - перевірити - сповістити.

Цифри беруться напряму з рекламних кабінетів: конектор до Google Ads API забирає денні метрики по кампаніях з Google, конектор до Meta Marketing API - з Meta. Обидва ховаються за одним інтерфейсом з єдиним методом - віддати рядки метрик за період, - тому третій канал, скажімо TikTok Ads, додається ще одним класом, а сховище, детекція, бот і оформлення таблиці при цьому не змінюються.

1. Дашборд у Google Таблиці

Аркуш «Дашборд» зверстаний під екран 1920x1080, щоб його можна було відкрити на моніторі чи телевізорі в офісі і не гортати. Зверху - пʼять KPI за вчора (витрати, конверсії, CPA, ROAS, CTR), кожен з відхиленням від медіани за 7 днів. Нижче - зведення по каналах і таблиця кампаній: витрати, кліки, CTR, конверсії, CPA, ROAS, зміна до попереднього тижня і статус «У нормі» або «Критично».

Далі чотири графіки по днях - витрати, CPA, ROAS і конверсії, кожен у розрізі Google / Meta / разом - і журнал останніх алертів. Окремого BI-інструмента й ліцензії немає: клієнт відкриває звичайну таблицю у своєму акаунті, може відфільтрувати, скопіювати чи вивантажити що завгодно. Локаль - українська: суми в гривнях, десяткова кома, дати дд.мм.рррр.

Дашборд ефективності реклами Google Ads і Meta Ads у Google Таблиці - KPI, канали, кампанії
Верх дашборда: пʼять KPI за вчора з відхиленням від медіани за 7 днів, зведення по каналах і таблиця кампаній зі статусом. Кампанія, що вийшла за поріг, підсвічується червоним прямо в рядку.
Графіки динаміки витрат, CPA, ROAS і конверсій по днях та журнал останніх алертів
Низ дашборда: чотири графіки по днях - витрати, CPA, ROAS і конверсії в розрізі каналів - і останні алерти за тиждень з рівнем, метрикою, значенням проти медіани і текстом повідомлення.

2. Дані та формули

Під дашбордом - три робочі аркуші. «Дані» тримає один рядок на кампанію на день з усіма метриками; дохід і позначка алерту в ньому рахуються формулами, а не записуються кодом, тож будь-яке число можна перевірити кліком. «Щоденно» згортає ті самі рядки в денні агрегати по Google, Meta і разом. «Алерти» - журнал відхилень з датою, рівнем, значенням, медіаною і текстом повідомлення.

Аркуш «Дані» - рядки по кампаніях за кожен день з витратами, конверсіями, CPA та ROAS
Аркуш «Дані»: один рядок на кампанію на день - витрати, покази, кліки, CTR, конверсії, CPA і ROAS. Дохід і позначка алерту рахуються формулами, тож таблицю можна фільтрувати й перевіряти як звичайну.

3. Як ловляться відхилення

Для кожної кампанії і кожного дня береться медіана CPA і ROAS за 7 попередніх днів - поточний день у вікно не входить - і поточне значення порівнюється з нею. Саме медіана, а не середнє: один аномальний день усередині вікна не зсуває базу, тож система не звикає до поганого.

Пороги два. «Увага» - CPA на 60 % вище медіани або ROAS на 40 % нижче, і лише якщо це тримається два дні поспіль: один поганий день - ще не інцидент. «Критично» - CPA на 120 % вище або ROAS на 60 % нижче, спрацьовує одразу; нуль конверсій при витратах теж критично. На кампанію за день формується один алерт: CPA основна метрика, ROAS додаткова.

Інцидент у таблиці: кампанія Meta Ads три дні поспіль підсвічена як критична за CPA і ROAS
Так виглядає інцидент у даних: у «Холодної аудиторії» 9 вересня CPA піднявся на 67 % до медіани - жовта «Увага», а з 10 по 12 вересня тримався на +130…+190 % при ROAS нижче 1,3x - три червоні «Критично» поспіль.

4. Telegram-бот

Бот - те, що власник бачить щодня. Після /start чат підписується на алерти й отримує їх автоматично після ранкового оновлення. /report показує зведення за вчора по кожному каналу з позначками ✅ і ⚠️ проти медіани, /alerts - усі відхилення за 14 днів. У кожному повідомленні є посилання «Відкрити дашборд», тож від алерту до таблиці - один дотик.

Telegram-бот моніторингу реклами - команди, підписка на алерти й перше критичне сповіщення
Після /start чат підписується на алерти. Кожне сповіщення - рівень, канал, кампанія, значення проти медіани і посилання на дашборд.
Щоденний звіт по рекламі в Telegram - витрати, конверсії, CPA і ROAS по каналах з відхиленням від медіани
/report - зведення за вчора по кожному каналу: витрати, покази, кліки, CTR, конверсії, CPA, ROAS з ✅ або ⚠️ проти медіани, найбільша кампанія і кількість алертів за день.
Список відхилень CPA і ROAS за 14 днів у Telegram-боті з рівнями «Увага» і «Критично»
/alerts - усі відхилення за 14 днів у зворотному порядку, з рівнем і поясненням. Внизу - правила, за якими вони спрацьовують, щоб не треба було памʼятати пороги.

Ключова логіка

  • База порівняння - медіана за 7 попередніх днів по кожній кампанії окремо, а не середнє по акаунту: дорога кампанія не маскується дешевою
  • Два рівні з різною чутливістю: «Увага» вимагає підтвердження другим днем, «Критично» спрацьовує одразу - менше шуму, але серйозне не пропускається
  • Дедуплікація за датою і кампанією: розсилаються лише нові алерти, повторний запуск не спамить старими
  • Google Таблиця замість BI: жодних ліцензій, дані лишаються в акаунті клієнта, формули можна перевірити
  • Формули пишуться в коді в en_US-синтаксисі й перекладаються під локаль таблиці перед записом - таблиця лишається українською
  • Google Ads і Meta Ads за одним інтерфейсом: конектори до обох API взаємозамінні, новий канал - ще один клас без змін у решті системи

Що вміє система

  • Щоденне автоматичне вивантаження метрик з Google Ads API і Meta Marketing API о 09:00 за Києвом
  • Дашборд у Google Таблиці під екран 1920x1080: KPI, канали, кампанії, чотири графіки, останні алерти
  • Порівняння кожного показника з медіаною за 7 днів прямо в KPI-плитках і таблицях
  • Статус кампанії «У нормі» або «Критично» з підсвіткою рядка
  • Аркуш даних з одним рядком на кампанію на день і формулами доходу та алерту
  • Денні агрегати по Google, Meta і разом на окремому аркуші
  • Журнал алертів з рівнем, метрикою, значенням, медіаною, відхиленням і часом фіксації
  • Детекція відхилень CPA і ROAS за ковзною медіаною з двома рівнями і правилом двох днів для «Уваги»
  • Telegram-бот: /report за вчора по каналах, /alerts за 14 днів, підписка й відписка від сповіщень
  • Автоматична розсилка лише нових алертів після кожного оновлення
  • CLI для ручних операцій: завантажити історію, додати день, перевірити, розіслати

Хочете такий самий контроль над своєю рекламою? Звʼяжіться з нами