Як створити власний аналітичний інструмент для досліду й оптимізації реклами в Telegram

Почавши роботу з Telegram Ads, команда Netpeak Agencies Group зіткнулась зі складнощами щодо звітності. Спочатку маркетологи агрегували потрібні цифри вручну. Але коли в роботі багато проєктів, потрібна автоматизація. Рішення — створити власний аналітичний інструмент. У цьому допомогли колеги із команди Web Analytics. І про це наш кейс. 

Хто клієнт

Перший офіційний український реселер Telegram Ads — команда Netpeak Telegram Ads.

Цілі автоматизації 

Отже, телеграм-маркетологи розробили уніфіковану звітність для аналізу й оптимізації реклами, але виникли питання щодо збору даних. 

Рекламний кабінет Telegram Ads показує статистику по оголошеннях, але її складно побачити повністю. Неможливо, скажімо, змінити масштаб сторінки, щоб отримати ті ж скриншоти звіту за один раз. 

Рекламний кабінет Telegram

Спеціалісти забирали дані з кабінету для подальшого аналізу і вручну зводили їх із цифрами з Google Analytics. Із масштабуванням роботи акаунтів/оголошень ставало все більше, і задача «перенести декілька метрик у звіт для клієнта» вже могла займати до 3 годин на день.

Тому виникла потреба в автоматизації і зручній кастомній аналітиці. 

Читайте також про те, Як побудувати наскрізну аналітику в ніші ритейлу. Кейс

Створення аналітичного інструменту під Telegram Ads

Для реалізації проєкту ми вирішили використати:

  1. Ресурси Google Cloud для зберігання й автоматизації обробки даних. А саме Google BigQuery, Cloud Scheduler і Cloud Function.
  2. Looker Studio, аби створити інтерактивні дашборди та візуалізувати дані.
  3. API потрібних сервісів (Telegram Ads, Google Analytics 4) для отримання даних про рекламні кампанії і поведінку користувачів.
Чому обрали саме Google Cloud?
  1. Швидкість і масштабованість. Гнучка і швидка інфраструктура Google Cloud дозволяє масштабувати проєкти без зайвих зусиль.
  2. Централізація даних. Google BigQuery забезпечує одне місце для зберігання та аналізу даних, що спрощує процес роботи з ними.
  3. Легкість інтеграції. Можливість підключення до будь-якого візуалізатора дозволяє зручно аналізувати та візуалізувати дані.

Cloud Scheduler потрібен для запуску сервісів Google Cloud за розкладом, Cloud Function — для безсерверного запуску коду. Конектор, реалізований на Python, відповідає за ETL/ELT з Telegram Ads до Google BigQuery.


Конектор — це інструмент для інтеграції ресурсів, який забезпечує зв’язок між різними системами, дозволяє обмін даними.
ETL/ELT-процес — процес екстракції (витягування даних з різних джерел), трансформації (перетворення даних в потрібний формат) та завантаження (введення перетворених даних в кінцеву систему, базу даних).


Перший етап — створення фінансового звіту

Максим Цам, Head of Telegram Department в Netpeak Ukraine:

Думаю, кожен спеціаліст розуміє важливість фінансової звітності, адже цифри покажуть все. Із самого початку ми стали аналізувати рекламні бюджети, шукати оптимальний відсоток денних витрат, розраховувати можливість масштабування. Проблема була проста — багато ручних розрахунків і потреба у відслідковуванні витрат, контроль, що займав чимало часу нашої команди. Тому разом з колегами ми провели зустріч, на якій детальніше обговорили наші можливості і побудували короткий алгоритм автоматизації.

алгоритм автоматизації фінансовий звіт телеграм

На першому етапі ми успішно впровадили ETL-процес, який взаємодіє з Telegram Ads API та передає зібрану інформацію до бази даних Google BigQuery.

  1. Спочатку отримуємо список акаунтів від Telegram Ads API. Вони всі прив’язані до головного облікового запису, який розподіляє між ними рекламні бюджети, це так званий master-акаунт. Список містить назви та унікальні ідентифікатори.

    Ключем для подальших операцій з даними є параметр Account_id.

    До речі, важлива деталь: метрики Account_ID в інтерфейсі рекламного кабінету і в списку, що віддає API, відрізняються та містять різні дані. Ми в роботі орієнтуємось саме на Account_ID від Telegram Ads API.

Account_id у телеграм

  1. Використовуємо методи API і через прив’язку до Account_id отримуємо статистичні дані за обраний період по кожному акаунту зі списку.

    АPI має обмеження на кількість запитів за певний період, щоб уникнути помилки, використовуємо time.sleep між запитами. Також встановлюємо інтервал часу 86400 секунд, тобто 1 день, аби оновлювати дані щодня.
  1. Після отримання даних проводимо їх парсинг та підготовку для подальшого експорту. Тобто переводимо їх у потрібний тип, формат, вираховуємо додаткові кастомні метрики. І після всіх цих маніпуляцій відправляємо у базу даних. 

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

Для автоматизації процесу ми розгорнули код у Cloud Functions та налаштували запуск за розкладом за допомогою Cloud Scheduler.

ETL-процес працює у такий спосіб: кожного ранку він завантажує в базу дані за вчорашній день для всіх акаунтів.

Вбудований у Looker Studio конектор дозволяє підключатися до бази BigQuery та використовувати її дані у наших звітах.

Фінальний звіт

Фінальний фінансовий звіт

Звіт побудували таким чином, щоб фільтрувати дані по акаунтам та датам. У верхній частині додали основні метрики, далі лінійний графік витрат. Нижче в таблиці представлені агреговані метрики Views, Clicks, CPM, Joins, Cost по місяцях.

Результат: вся фінансова звітність на одній сторінці.

Другий етап — побудова звіту для клієнтів

Максим Цам, Head of Telegram Department в Netpeak Ukraine:

Перше питання, яке у вас може виникнути: чому просто не дати доступ до рекламного кабінету нашим партнерам? Цього замало. Подібний доступ можна видавати тільки на одному рівні – «адміністратора» рекламного кабінету. До того ж відсутня історія змін по рекламним оголошенням, а щоб бачити середні чи узагальнені показники, все одно треба використовувати зовнішні ресурси. Ще й немає ніякої інтеграції Google Analytics 4 з рекламним кабінетом Telegram.

Ми хотіли у зручний спосіб поєднати дані з Telegram Ads і Google Analytics, щоб краще розуміти вплив реклами в Telegram на користувачів і конверсії.

поєднати дані з Telegram і Google Analytics

Основна складність була в тому, що кожен клієнтський проєкт мав свій акаунт GA4, де і були розкидані дані. Тому ми створили спеціальний сервісний акаунт Google Cloud:

  • цей акаунт отримує доступ до потрібних ресурсів GA4;
  • через нього за допомогою API ми витягуємо дані про користувачів, сеанси та конверсії за UTM-мітками, якими промарковані посилання в рекламних оголошеннях в телеграмі; 
  • отриману інформацію об’єднуємо із даними з Telegram Ads.

Таким чином, другий етап включає створення двох конекторів: один для отримання розширених даних з Telegram Ads API, інший — з Google Analytics. 

Отримання даних із Telegram

Конектор є об’ємнішим, ніж для побудови фінансового звіту, і потребує більше запитів та агрегацій даних.

Весь процес ми знову починаємо з отримання всіх акаунтів. Далі вивантажуємо список всіх оголошень, які є в акаунті.

Важливий момент. Тут зберігаються лише оголошення зі статусом stoped, active, on hold. Якщо оголошення було видалено, воно пропадає зі списку і знайти його через API неможливо.

Вибір даних. Ми фокусуємося на наступних атрибутах оголошення:

  • ad_id (унікальний ідентифікатор оголошення),
  • title (назва оголошення),
  • promote_url (URL контенту).

Чому не вивантажуємо відомості щодо таргетингу?

В Telegram Ads цей параметр бінарний і може мати лише значення Channels або Users. Що не покриває наші потреби, бо використовуємо більше типів націлювання.

Для зручності фільтрації по типу оголошень у звіті ми використовуємо шаблон неймінгу.

Приклад:

Тип / Назва каналу або тематики / Номер версії оголошення / Позначення про додаткові моменти, де:
  • тип вказує на платформу або місце розміщення оголошення. Наприклад, Web, App або Channel;
  • назва каналу або тематики — ім’я конкретного плейсменту розміщення або тематика, на яку спрямоване оголошення;
  • номер версії оголошення — номер або версія конкретного оголошення;
  • позначення про додаткові моменти — будь-які додаткові ознаки, акції, назви міст або інші важливі деталі, які стосуються рекламного оголошення.

Така структура дозволяє зручно виконувати парсинг та створювати фільтр. 

фільтр по типам кампаній

Аналогічний підхід ми застосували для назв акаунтів, щоб отримувати і фільтр по типу акаунтів.

Використовуючи id кожного оголошення (що є просто порядковим номером оголошення в акаунті), отримуємо статистику.  

Оскільки об’єм даних великий, застосовуємо паузи між запитами (sleep) для оптимізації роботи з API. Далі парсимо та готуємо дані для відправки в базу.

Аналогічно до попереднього конектору, ми створили функцію в Cloud Functions та задачу в Cloud Scheduler. Щоб подолати обмеження роботи функції (9 хвилин), перейшли на асинхронні процеси і HTTP-тригери. Це дозволило зменшити час роботи конектору вдвічі та збільшити ліміт роботи функції до 60 хвилин.

Отримання даних із Google Analytics

Конектор через Google Analytics API отримує список клієнтських ресурсів, до яких має доступ наш сервісний акаунт. Потім для кожного з них використовуємо метод API для збору потрібних метрик і параметрів та створення в подальшому звіта.

Оскільки в Google дані оновлюються кожні 24-48 годин, для більшої точності робимо перезапис даних кожні три дні.

Отримання даних із Google Analytics

Об’єднання даних і візуалізація

Дані з Telegram та Google Analytics об’єднуються в BigQuery. Потім вони автоматично підключаються до Looker Studio, де ми й отримуємо звіти з можливістю фільтрації за датою, акаунтом, типом, назвою оголошення та кампанією. Також можна імпортувати звіт у зручний формат для подальшої роботи.

звіт для клієнтів

Результати аналітики

  1. Автоматизація звітності:
  • звіти генеруються автоматично кожного ранку;
  • команда звільнилась від рутинної роботи, зосередившись на стратегічних завданнях.
  1. Щоденне оновлення забезпечує актуальність та точність даних.
  2. Централізація даних:
  • вся звітність зберігається в Google BigQuery;
  • легкий доступ до необхідних даних у централізованому сховищі.
  1. Інтеграція з Looker Studio:
  • легка візуалізація та аналіз даних;
  • можливість створення кастомізованих звітів.
  1. Покращення комунікації з клієнтами:
  • детальні звіти підвищують прозорість та довіру клієнтів;
  • клієнти отримують повну інформацію про ефективність рекламних кампаній у зручному форматі.
  1. Економія ресурсів:
  • значне скорочення витрат на ручну працю;
  • мінімізація людських помилок;
  • зменшення навантаження на команду.
  1. Довгострокова аналітика:
  • доступ до історичних даних для довгострокового аналізу;
  • можливість виявлення трендів та стратегічного планування майбутніх кампаній.

Максим Цам, Head of Telegram Department в Netpeak Ukraine

Максим Цам, Head of Telegram Department в Netpeak Ukraine

Робота задля роботи — не наш підхід. Тому, коли спеціалісти команди Telegram Department відчули, що тонуть у рутині ручних звітів, ми одразу почали шукати рішення. І здається, нам вдалося зробити щось неможливе, але дуже потрібне.

Наразі ми маємо автоматичну фінансову звітність, контроль команди, а розрахунки рекламних бюджетів займають кілька хвилин. Ефективність і економія часу збільшились у рази.

Також ми надаємо прості, розгорнуті й зрозумілі звіти нашим партнерам. Їх не треба оновлювати вручну чи пояснювати, за що відповідає кожен рядок у величезній таблиці.
В цілому, ми отримали швидший підхід в роботі, а також задоволеність наших партнерів від простоти і прозорості комунікації.

Дізнатися більше
8
0
5