Панель аналитики YouTube-канала в админке сайта

Тип: Сбор данных из API и таблица показателей
Назад к портфолио

Задача

YouTube Studio показывает цифры по одному ролику за раз. Чтобы понять, какие видео тянут канал, а какие нет, приходится открывать их по очереди и держать цифры в голове: у одного хорошая обложка, но зрители уходят с первых секунд, у другого наоборот.

Нужна была одна таблица: все ролики канала сразу, с сортировкой по любому показателю и с выбором периода - неделя, месяц, квартал, год или всё время.

Что сделано

  • Все ролики в одной таблице - просмотры, показы обложки, кликабельность, доля досмотревших дальше первого кадра, лайки, подписки и средний просмотр; сортировка по любой колонке
  • Выбор периода - сутки, 7, 28, 90, 365 дней или всё время; цифры пересчитываются целиком, а не берутся за всю жизнь ролика
  • Кликабельность обложек - этот показатель YouTube не отдаёт обычным запросом, он приходит суточными выгрузками; данные копятся в своей таблице, дозагрузку делает задание по расписанию раз в час
  • Блок подписчиков - сколько пришло, сколько ушло, чистый прирост и какие именно ролики привели новых подписчиков
  • Пометка коротких роликов - признака формата в API нет и по длительности его не вычислить, поэтому формат определяется отдельной проверкой и запоминается
  • Подписи к каждой цифре - что она означает, за какой период посчитана и почему сумма по роликам не сходится с приростом канала

Результат

Видно с одного экрана, где слабое место каждого ролика: мало показов обложки - вопрос к названию и теме, много показов при низкой кликабельности - к обложке, а низкая доля досмотревших - к самому видео.

Так же собираются панели по другим источникам - Яндекс.Метрика, Google Search Console, Яндекс.Вебмастер, рекламные кабинеты: данные забираются по API, копятся в базе и показываются одной таблицей вместо десятка чужих отчётов.

Технологии

Symfony 7 PHP 8.3 Vue.js 3 Ant Design Vue MySQL YouTube Data API YouTube Analytics API Задания по расписанию
Дмитрий Ченгаев Привет! Я веб-программист
Дмитрий Ченгаев
Нужна похожая панель с вашими данными?
Напишите мне
Или подпишитесь на канал в Telegram, чтобы следить за новыми кейсами ;)