Аналитика работает на каждой вашей странице, поэтому её вес — законный вопрос, и верить нам на слово вы не обязаны. Эта страница даёт число и метод, чтобы вы могли повторить измерение.
Число
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> этого не меняет: работу делает атрибут, а не положение.
В вашу вёрстку ничего не вставляется. Скрипт не добавляет ни элементов, ни стилей, ни шрифтов, поэтому сдвинуть что-либо на странице он не может. Каким бы ни был ваш Cumulative Layout Shift, этот скрипт в него ничего не добавляет.
Как часто его забирают
Cache-Control: public, max-age=300, stale-while-revalidate=86400
ETag: W/"…"
Пять минут свежего кеширования, потом сутки, в которые устаревшая копия отдаётся сразу, а новая забирается в фоне. Так что вернувшийся посетитель почти никогда его не ждёт, а повторный просмотр страницы внутри окна не стоит вообще ничего.
⚠ Пять минут выбраны намеренно короткими, и это единственное число здесь, которое с первого взгляда выглядит неправильным. Набор составляется из ваших настроек: включите отслеживание внешних ссылок, поменяйте исключение, включите продукт, и файл изменится. Долгий кеш означал бы, что ваше изменение доходит до настоящих посетителей часами позже. stale-while-revalidate возвращает скорость: посетитель мгновенно получает старую копию, а новая подгружается в фоне.
У файла хеш по содержимому, поэтому, когда ничего не менялось, ответ подтверждается по ETag и никакие байты не передаются.
Во что он обходится, пока работает
- Один запрос за скриптом, закешированный, как выше.
- Один небольшой запрос на просмотр страницы.
- Один
sendBeacon, когда страница скрывается: так фиксируется время на странице. Маяки ставятся браузером в очередь и переход не задерживают; это единственное место, где трекер их использует.
Длительности вычисляются на сервере по этим отметкам времени, а не таймером, работающим на странице, так что никакой интервал не срабатывает, пока человек читает.
Честно о тенденции
Несколько месяцев назад скрипт был около 10 КБ без сжатия, а сейчас — 33,8 КБ. Он вырос, потому что в него добавляли новые функции, в том числе вовлечённость и автоматический захват. Это настоящий компромисс, и назвать его прямо честнее, чем приводить одну сегодняшнюю цифру: инструмент, который делает больше, и весит больше.
Если вам нужен самый маленький возможный файл, выключите те автоматические захваты, которыми вы не пользуетесь: набор составляется из ваших настроек, поэтому выключенное не отправляется.
⚠ Размер чужого скрипта мы не публикуем. Сравнению нужны обе цифры, перемеренные в один день одним методом, а ту половину, что принадлежит кому-то другому, автоматически проверить нельзя, то есть это ровно то число, которое стареет, сохраняя авторитетный вид. Наше сверяется с собранным файлом при каждом прогоне тестов. Их измерьте сами, командой выше, в тот день, когда вам нужен ответ.