04Отслеживание
Свои события
Как отправлять свои события в Gauss через gauss('event', …) — правила имён, лимиты параметров, рекомендованные имена GA4, примеры для кнопки, формы и React.
Автоматических событий хватает для просмотров, форм и контактов. Заявку после успешной отправки, регистрацию, клик по важной кнопке или покупку размечает сайт — одной строкой JavaScript.
Вызов
gauss('event', 'callback_request', { placement: 'header', plan: 'pro' });- первый аргумент — всегда
'event', другие команды трекер пока не понимает; - второй — имя события;
- третий — необязательный объект параметров.
Событие уходит сразу, вместе с адресом текущей страницы.
Заглушка для ранних вызовов
Сниппет загружается с defer, поэтому gauss появляется не сразу. Чтобы вызовы до загрузки скрипта не терялись, добавьте в <head> перед сниппетом заглушку:
<script>
window.gauss = window.gauss || function () { (window.gauss.q = window.gauss.q || []).push(arguments); };
</script>
<script defer data-site="YOUR_SITE_ID" src="https://collect.gausslab.io/js/gauss.js"></script>Заглушка складывает вызовы в очередь, а трекер после загрузки отправляет их по порядку, сразу после page_view. С заглушкой gauss(...) можно вызывать в любом месте страницы, не проверяя, загрузился ли скрипт. Без неё вызов до загрузки скрипта завершится ошибкой ReferenceError. Если на сайте есть Content Security Policy, встроенному скрипту нужен nonce или хеш — см. Установка.
Правила имён
Имя события и ключи параметров:
- только строчные латинские буквы
a–z, цифры0–9и_; - начинаются с буквы;
- не длиннее 40 символов.
Имя события не может начинаться с gauss_, ga_, google_ или firebase_ — эти префиксы зарезервированы.
| Имя | Результат |
|---|---|
callback_request | принято |
CallbackRequest | отброшено: заглавные буквы |
2nd_step | отброшено: начинается с цифры |
ga_lead | отброшено: зарезервированный префикс |
Событие с неверным именем не отправляется, в консоли появляется предупреждение [gauss] dropped <имя>.
Параметры и лимиты
| Что | Лимит |
|---|---|
| Число параметров | до 25 |
| Тип значения | строка, число или true/false |
| Длина строки | до 100 символов, длиннее — обрезается |
items (товары) | массив, до 50 позиций |
Что происходит с лишним:
- параметры сверх 25, ключи с неверным именем, значения-объекты, массивы и
NaNотбрасываются, в консоли —[gauss] dropped <ключ>; - пустые строки,
nullиundefinedпропускаются молча; - в
itemsостаются первые 50 позиций, остальные отбрасываются с предупреждением; - остальная часть события отправляется. Ошибка в разметке не ломает страницу: трекер не выбрасывает исключений в код сайта.
Не передавайте в параметрах email, телефон, имя и другие данные о человеке. Как Gauss очищает такие значения на сервере — в разделе Какие данные собираются.
Рекомендованные имена
Для типовых действий используйте имена из словаря GA4. Если сайт уже размечен под GA4, имена событий и параметров менять не нужно — подробнее в разделе Совместимость с GA4.
| Событие | Когда | Параметры |
|---|---|---|
generate_lead | заявка успешно отправлена | lead_id (необязательно), value, currency |
sign_up | регистрация | — |
login | вход | — (без идентификатора пользователя) |
view_item | просмотр товара | items |
add_to_cart | добавление в корзину | items, value, currency |
begin_checkout | начало оформления | items, value, currency |
purchase | покупка | transaction_id, value, currency, items |
refund | возврат | transaction_id, value, currency |
Как размечать покупки, товары и ценность конверсии — в разделе Конверсии и электронная торговля.
Примеры
Клик по кнопке:
<button type="button" onclick="gauss('event', 'pricing_click', { placement: 'hero' })">Узнать цену</button>Форма, которая отправляется через fetch: form_submit придёт автоматически, а generate_lead — только после успешного ответа сервера.
const form = document.querySelector('#callback');
form.addEventListener('submit', async (event) => {
event.preventDefault();
const response = await fetch('/api/lead', { method: 'POST', body: new FormData(form) });
if (response.ok) {
gauss('event', 'generate_lead', { form_id: 'callback', value: 3000, currency: 'RUB' });
}
});React (с заглушкой в <head> функция window.gauss есть всегда):
export function DemoButton() {
return (
<button onClick={() => window.gauss?.('event', 'demo_request', { placement: 'pricing' })}>
Запросить демо
</button>
);
}Для TypeScript объявите тип один раз:
declare global {
interface Window {
gauss?: (command: 'event', name: string, params?: Record<string, unknown>) => void;
}
}
export {};Проверить, что событие уходит и ничего не отброшено, можно в режиме отладки.