Аналитика работает на каждой вашей странице, поэтому её вес — законный вопрос, и верить нам на слово вы не обязаны. Эта страница даёт число и метод, чтобы вы могли его повторить.
Число
11,7 КБ после сжатия gzip, из 33,8 КБ JavaScript, измерено на наборе, отдаваемом для живого сайта.
Чтобы повторить: скачайте скрипт с Accept-Encoding: identity и сожмите результат локально gzip на уровне 9. Это и есть число ниже, и именно столько браузер скачивает один раз и потом кеширует.
curl -s -H "Accept-Encoding: identity" \
"https://t.skomi.com/s/YOUR-SITE-ID.js" | gzip -9 | wc -c
⚠ Ваш набор может отличаться от нашего, и так задумано. Скрипт составляется для каждого сайта: он несёт те настройки, которые этот сайт действительно использует, и те фрагменты захвата, которые нужны его продуктам. Сайт с меньшим числом включённого получает файл меньше. Запустите команду выше для своего идентификатора сайта, чтобы получить своё число, а не доверять этому.
Что в нём
Один файл, делающий всю работу:
- Сам просмотр страницы — путь, источник перехода, параметры кампании, размер экрана.
- Личность, выведенная без хранения. На устройство посетителя не пишется ничего, поэтому нет ни кода для cookie, ни обвязки для согласия, ни баннера, который надо загрузить до начала измерений. Во многом поэтому файл и остаётся одним файлом.
- Сессия и вовлечённость — сколько времени страница держала внимание, насколько далеко её прочитали.
- Автоматический захват — внешние нажатия, скачивания, отправки форм и 404, в том объёме, который вы включили.
- Транспорт — сбор пачками, повторные отправки и путь скрытия страницы.
Внутри нет фреймворка, нет набора полифилов и нет второго запроса за «плагином». Что пришло, то и работает.
Как он загружается
Сниппет — одна строка, и он несёт defer:
<script src="https://t.skomi.com/s/YOUR-SITE-ID.js" defer></script>
defer означает, что браузер продолжает разбирать вашу страницу и выполняет скрипт после готовности документа. Он никогда не на критическом пути, не блокирует первую отрисовку, и перенос его в <head> этого не меняет: работу делает атрибут, а не положение.
В вашу вёрстку ничего не вставляется. Скрипт не добавляет ни элементов, ни стилей, ни шрифтов, поэтому сдвинуть что-либо на странице он не может. Каким бы ни был ваш совокупный сдвиг раскладки, его в нём нет.
Как часто его забирают
Cache-Control: public, max-age=300, stale-while-revalidate=86400
ETag: W/"…"
Пять минут свежего кеширования, потом сутки, в которые устаревшая копия отдаётся сразу, а новая забирается в фоне. Так что вернувшийся посетитель почти никогда его не ждёт, а повторный просмотр страницы внутри окна не стоит вообще ничего.
⚠ Пять минут выбраны намеренно короткими, и это единственное число здесь, которое с первого взгляда выглядит неправильным. Набор составляется из ваших настроек: включите отслеживание внешних ссылок, поменяйте исключение, включите продукт, и файл меняется. Долгий кеш означал бы, что ваше изменение доходит до настоящих посетителей часами позже. stale-while-revalidate возвращает скорость: посетитель мгновенно получает старую копию, а новая приезжает в фоне.
У файла хеш по содержимому, поэтому, когда ничего не менялось, ответ подтверждается по ETag и байты не двигаются.
Во что он обходится, пока работает
- Один запрос за скриптом, закешированный, как выше.
- Один небольшой запрос на просмотр страницы.
- Один
sendBeacon, когда страница скрывается, и так закрывается время на странице. Маяки ставятся браузером в очередь и переход не задерживают; это единственное место, где трекер их использует.
Длительности вычисляются на сервере по этим отметкам времени, а не таймером, работающим на странице, так что никакой интервал не срабатывает, пока человек читает.
Честно о тенденции
Несколько месяцев назад скрипт был около 10 КБ без сжатия, а сейчас — 33,8 КБ. Он вырос, потому что в него добавили вовлечённость, автоматический захват и поддержку приложений. Это настоящий размен, и назвать его прямо честнее, чем приводить одну сегодняшнюю цифру: инструмент, делающий больше, приезжает бо́льшим числом байтов.
Если вам нужен самый маленький возможный файл, выключите те автоматические захваты, которыми вы не пользуетесь: набор составляется из ваших настроек, поэтому выключенное не отправляется.
⚠ Размер чужого скрипта мы не публикуем. Сравнению нужны обе цифры, перемеренные в один день одним методом, а ту половину, что принадлежит кому-то другому, автоматически проверить нельзя, то есть это ровно то число, которое стареет, сохраняя авторитетный вид. Наше сверяется со собранным файлом при каждом прогоне тестов. Их измерьте сами, командой выше, в тот день, когда вам нужен ответ.