Назад к портфолио
Задача
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
Задания по расписанию