Начав работу с Telegram Ads, команда Netpeak Agencies Group столкнулась со сложностями по отчетности. Сначала маркетологи агрегировали нужные цифры вручную. Но когда в работе много проектов, нужна автоматизация. Решение — создать собственный аналитический инструмент. В этом помогли коллеги из команды Web Analytics. Подробнее — в нашем кейсе.
Кто клиент
Первый официальный украинский реселлер Telegram Ads — команда Netpeak Telegram Ads.
Цели автоматизации
Итак, телеграм-маркетологи разработали унифицированную отчетность для анализа и оптимизации рекламы, но возникли вопросы по сбору данных.
Рекламный кабинет Telegram Ads показывает статистику по объявлениям, но ее сложно увидеть полностью. Невозможно, скажем, изменить масштаб страницы, чтобы получить те же скриншоты отчета за один раз.
Специалисты забирали данные из кабинета для дальнейшего анализа и вручную сводили их с цифрами из Google Analytics. С масштабированием работы аккаунтов/объявлений становилось все больше, и задача «перенести несколько метрик в отчет для клиента» уже могла занимать до 3 часов в день.
Поэтому возникла потребность в автоматизации и удобной кастомной аналитике.
Читайте также о том, Как построить сквозную аналитику в нише ритейла. Кейс.
Создание аналитического инструмента под Telegram Ads
Для реализации проекта мы решили использовать:
- Ресурсы Google Cloud для хранения и автоматизации обработки данных. А именно Google BigQuery, Cloud Scheduler и Cloud Function.
- Looker Studio, чтобы создать интерактивные дашборды и визуализировать данные.
- API нужных сервисов (Telegram Ads, Google Analytics 4) для получения данных о рекламных кампаниях и поведении пользователей.
- Скорость и масштабируемость. Гибкая и быстрая инфраструктура Google Cloud позволяет масштабировать проекты без лишних усилий.
- Централизация данных. Google BigQuery обеспечивает одно место для хранения и анализа данных, что упрощает процесс работы с ними.
- Легкость интеграции. Возможность подключения к любому визуализатору позволяет удобно анализировать и визуализировать данные.
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.
- Сначала получаем список аккаунтов от Telegram Ads API. Они все привязаны к главному аккаунту, который распределяет между ними рекламные бюджеты, это так называемый master-аккаунт. Список содержит названия и уникальные идентификаторы.
Ключом для дальнейших операций с данными является параметр Account_id.
Кстати, важная деталь: метрики Account_ID в интерфейсе рекламного кабинета и в списке, который отдает API, отличаются и содержат разные данные. Мы в работе ориентируемся именно на Account_ID от Telegram Ads API.
- Используем методы API и через привязку к Account_id получаем статистические данные за выбранный период по каждому аккаунту из списка.
АPI имеет ограничения на количество запросов за определенный период, чтобы избежать ошибки, используем time.sleep между запросами. Также устанавливаем интервал времени 86400 секунд, то есть 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 на пользователей и конверсии.
Основная сложность была в том, что каждый клиентский проект имел свой аккаунт 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 часов, для большей точности делаем перезапись данных каждые три дня.
Объединение данных и визуализация
Данные из Telegram и Google Analytics объединяются в BigQuery. Затем они автоматически подключаются в Looker Studio, где мы и получаем отчеты с возможностью фильтрации по дате, аккаунту, типу, названию объявления и кампании. Также можно импортировать отчет в удобный формат для дальнейшей работы.
Результаты аналитики
- Автоматизация отчетности:
- отчеты генерируются автоматически каждое утро;
- команда освободилась от рутинной работы, сосредоточившись на стратегических задачах.
- Ежедневное обновление обеспечивает актуальность и точность данных.
- Централизация данных:
- вся отчетность хранится в Google BigQuery;
- легкий доступ к необходимым данным в централизованном хранилище.
- Интеграция с Looker Studio:
- легкая визуализация и анализ данных;
- возможность создания кастомизированных отчетов.
- Улучшение коммуникации с клиентами:
- подробные отчеты повышают прозрачность и доверие клиентов;
- клиенты получают полную информацию об эффективности рекламных кампаний в удобном формате.
- Экономия ресурсов:
- значительное сокращение затрат на ручной труд;
- минимизация человеческих ошибок;
- уменьшение нагрузки на команду.
- Долгосрочная аналитика:
- доступ к историческим данным для долгосрочного анализа;
- возможность выявления трендов и стратегического планирования будущих кампаний.
Максим Цам, Head of Telegram Department в Netpeak Ukraine
Работа ради работы — не наш подход. Поэтому, когда специалисты команды Telegram Department почувствовали, что тонут в рутине ручных отчетов, мы сразу начали искать решение. И кажется, нам удалось сделать что-то невозможное, но очень нужное.
Сейчас мы имеем автоматическую финансовую отчетность, контроль команды, а расчеты рекламных бюджетов занимают несколько минут. Эффективность и экономия времени увеличились в разы.
Также мы предоставляем простые, развернутые и понятные отчеты нашим партнерам. Их не надо обновлять вручную или объяснять, за что отвечает каждая строка в огромной таблице.
В целом, мы получили более быстрый подход в работе, а также удовлетворенность наших партнеров от простоты и прозрачности коммуникации.
Свежее
Диджитализация АТБ. Комплексный онлайн-маркетинг для лидера ритейла Украины — кейс
Рассказываем как выстроить комплексную диджитал-стратегию
Как анализ рынка определяет ключевые точки для развития стартапа в Чехии — кейс
Что нужно, когда стартап присматривается к незнакомой стране? В первую очередь — анализ рынка
Как работать с Measurement Protocol в Google Analytics 4
Как отправлять данные из вашей CRM/ERP системы непосредственно в Google Analytics через HTTP-запросы? Объясняем, приводим пример и оптимизируем передачу данных