Скрипт Метрики занимает более 350 КБ (90 КБ в GZIP), для лёгких страниц и небольших пакетов он громоздкий.
- Сверхмалый размер кода.
- Код подключается в основной бандл проекта, нет дополнительного запроса на загрузку скрипта и парсинга кода Метрики.
- Использование в serviceWorker’е, электрон-приложениях и т.д.
import { hit } from 'lyam';
const counterId = '12345';
// Если не указаны параметры, то адрес страницы берётся из location.href,
// заголовок страницы из document.title и
// реферер из document.referrer.
hit(counterId);
Со всеми параметрами:
import { hit } from 'lyam';
const counterId = '12345';
const userVars = { myParam: 123 };
hit(counterId, {
referrer: 'https://anothersite.ru',
title: 'My document title',
url: 'https://mysite.ru'
}, userVars);
import { hit, reachGoal } from 'lyam';
const counterId = '12345';
hit(counterId);
// ...
reachGoal(counterId, 'MY_GOAL_NAME');
import { hit, reachGoal } from 'lyam';
const counterId = '12345';
hit(counterId);
// ...
const userVars = { myParam: 123 };
reachGoal(counterId, 'MY_GOAL_NAME', userVars);
import { hit, extLink } from 'lyam';
const counterId = '12345';
hit(counterId);
// ...
extLink(counterId, 'https://externalsite.ru');
import { hit, file } from 'lyam';
const counterId = '12345';
hit(counterId);
// ...
file(counterId, 'https://mysite.ru/file.zip');
import { hit, notBounce } from 'lyam';
const counterId = '12345';
hit(counterId);
// ...
setTimeout(() => {
notBounce(counterId);
}, 15000); // 15 сек.
import { hit, userVars } from 'lyam';
const counterId = '12345';
hit(counterId);
// ...
userVars(counterId, { myParam: 123 });
Content-Security-Policy:
...
img-src https://mc.yandex.ru;
connect-src https://mc.yandex.ru;
...
MIT