Написать пост

Tproger Changelog: сделали для вас за май 2020

Логотип компании Tproger

Оптимизация скорости загрузки по Web Vitals, рассказ про нашу аналитическую инфраструктуру, эксперименты в Яндекс.Мессенджере и несколько опросов.

Привет, заходите, располагайтесь. Это уже третий отчёт о наших процессах, и в этот раз об изменениях в издании вам расскажет сразу несколько ребят.

За последний месяц мы не выкатили ничего крупного и заметного вам с первого взгляда. Большинство фичей находятся в разработке, где-то между напряжёнными спринтами и больно падающими на голову багами. Но желание делиться уже не остановить, поэтому в этом выпуске расскажем про парочку проведённых исследований и про проблемы, с которыми сталкиваемся по пути.

Внутри есть опросы — поделитесь мнением, пожалуйста.

Все выпуски теперь можно найти по тегу Tproger Changelog.

Начнём с маленьких радостей: во вставках кода теперь красивый скрол (только в Webkit-браузерах, но это практически все популярные). Стили честно скопированы со StackOverflow.

			df = pd.DataFrame(np.random.randint(1, 100, 16).reshape(4, 4), columns=list('efgh'), index=list('abcd'))
		

Нам прислали ещё один отчёт об уязвимости — на этот раз раскрытие файлов, которые не должны были быть публичными. Списки пакетов и зависимостей нашего проекта. Это не очень критично, но облегчает жизнь злоумышленникам: так проще найти дыры в стороннем коде, который мы используем. Я всё исправил, заплатил ещё одну порцию вознаграждения.

На прошлой неделе Google обновил инструмент PageSpeed Insights и отчёт о скорости загрузки страниц в Search Console. Вместо времени первой отрисовки контента и задержки ввода стала использоваться Web Vitals — новая концепция поискового гиганта в оценке производительности веба. Я занимался подготовкой к этим изменениям и заранее оптимизировал явные ошибки. Итог — почти все страницы нашего сайта Google теперь считает быстрыми, как на мобильных, так и на десктопе.

Tproger Changelog: сделали для вас за май 2020 1

На мобильных почти в два раза больше URL, потому что там есть AMP-версия сайта.

Некоторые URL ещё требуют доработок, но теперь явно видно, какие именно и что с ними не так. Больше всего проблем с видеопостами — вставки плеера через iframe загружаются долго и сдвигают контент. Но я уже знаю, как это исправить.

Google говорит, что нововведения начнут влиять на поисковую выдачу только в следующем году. Но мне кажется, они лукавят, ибо мы стали получать больше трафика примерно в те же даты, когда зелёный график (на картинке выше) пополз вверх.

Tproger Changelog: сделали для вас за май 2020 2

Трафик из поиска по данным Яндекс.Метрики, абсолютные значения скрыты, важен процентный прирост.

Насколько быстро по вашим ощущениям загружается наш сайт на мобилках?
Летает!
Нормально, ничего особенного
Очень тормозит, но всё равно жду
Очень тормозит, и я закрываю

В прошлом выпуске Changelog была новость про блок «Также рекомендуем», который вы видите после прочтения материала. Сейчас мы работаем над повышением качества рекомендаций в этом блоке, их эффективность видно на графике.

Tproger Changelog: сделали для вас за май 2020 3

Значения на диаграмме — это CTR (click through rate). Он показывает отношение числа кликов по рекомендации к числу просмотров блока рекомендаций. Мы разбили день на 4 части, по оси OX приведены шестичасовые интервалы.

Раньше рекомендации для всех пользователей были общие и строились на основе статистики просмотров наших статей (на графике — fallback). Затем мы персонализировали рекомендации с помощью сервиса Amazon Personalize: каждый пользователь стал получать индивидуальный список рекомендаций (awspersonalize-user-only). Однако для каждого пользователя список был одним и тем же под всеми статьями. Теперь же рекомендации строятся с учетом текущего просматриваемого материала (awspersonalize-user-item).

Увы, но наши текущие нововведения не снискали популярности у читателей: CTR рекомендаций падал с каждым новым внедрением. Чтобы исправить ситуацию, мы планируем поэкспериментировать с разными рецептами Amazon Personalize, а также начать обучать модель рекомендаций в режиме реального времени.

Помогают ли вам рекомендации на нашем сайте находить интересные статьи?
Да, часто перехожу по рекомендованным ссылкам
Интересные статьи встречаются, но в целом «угадываемость» низкая
Не перехожу в рекомендованные статьи, чтобы не тратить время: читаю только тот материал, который открыл
Никогда не перехожу по рекомендованным ссылкам, потому что не встречается ничего полезного
Узнал о рекомендациях только из этого ченджлога

Еще расскажу про нашу аналитическую инфраструктуру — особенно интересно будет тем, кто выбирает между готовым решением и своей системой.

Как и многие создатели контента, мы пользуемся Яндекс.Метрикой и Google Analytics. Но также развернули и поддерживаем свой трекер событий на базе опенсорсной платформы Rockstat с ClickHouse в качестве базы данных. Для визуализации данных используем Redash, график по блоку рекомендаций сделан как раз в нем. Это удобный и простой инструмент, который умеет работать с ClickHouse, но с одним минусом: для его использования надо знать SQL, а это подходит не всем сотрудникам.

Я провел небольшое исследование потребностей редакции и оказалось, что Яндекс.Метрика хорошо решает определенные контентные задачи: например, недавно мы вдохнули жизнь в отчет по тематикам:

Tproger Changelog: сделали для вас за май 2020 4

График отчета по тематикам в Яндекс.Метрике.

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

Короче говоря: собирая события самостоятельно, мы можем наделять их семантикой, специфичной для наших задач. Например, в Метрике клик будет просто кликом, а в Rockstat — кликом пользователя на закешированной странице по баннеру, относящемуся к рекламной кампании с лимитом в 10 тысяч кликов. Гораздо больше информации, не правда ли?

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

Но боль от необходимости поддерживать собственную инфраструктуру при всей полезности не уменьшается. Да и я не девопёс, поэтому в ближайшее время мы планируем переезжать на бессерверную облачную инфраструктуру и использовать managed базу данных.

В прошлом месяце мы открыли каналы своих проектов в новом мессенджере от Яндекса с оригинальным названием Яндекс.Мессенджер.

Знаете вообще, кто такой этот Мессенджер?
Слышал
Знаю и пользуюсь
Не знаю и знать не хочу
Просто не знаю, я не такой категоричный

Его особенность в том, что он очень здорово интегрирован в экосистему Яндекса: читать сообщения можно в приложении, браузере или на главной странице.

А чтобы помочь авторам каналов быстрее развиваться и привлекать интересующуюся аудиторию, Яндекс запустил систему рекомендаций. Мы в неё, кстати, успешно попали, и теперь в своих сервисах Яндекс показывает наши каналы и всем рекомендует на них подписаться. Благодаря этому у нас уже есть посты, которые увидели тысячи читателей. А если среди них нет вас, то и вы гляньте, что там в этом Мессенджере происходит. У нас там сейчас открыто 3 канала:

— про разработку в целом: «Типичный программист»;
— про новости технологий, который влияют на нас: «Представляешь,»;
— и программерский юмор: «IT Юмор».

В конце добавлю от себя пару новостей из раздела «прочие шалости».

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

В паблике «Типичный программист» ВКонтакте провели пятничную трансляцию на тему инфобеза и внезапно собрали больше 30 000 просмотров. Планируем попробовать ещё подобные трансляции — не пропустите.

Editor’s choice: три избранных материала за окошком месяц май

Статья с довольно очевидной информацией, но получают её обычно методом проб и ошибок. Поможет не наступить на грабли, особенно если только начинаете программировать.

Забавный тест, всегда интересно узнать, «кто ты», а тут ещё и известные личности.

Наглядная статья, и обратите внимание на опрос в конце — стали добавлять интерактив, потому что интересно мнение комьюнити и хочется, чтобы вы приходили на площадку не просто почитать статьи, но и обмениваться мнениями, спрашивать совета и делиться своими историями.

Tproger Changelog
1478