Отправка событий через API
Помимо JavaScript-сниппета, события можно отправлять напрямую через HTTP API. Это полезно для серверной аналитики, мобильных приложений и бэкенд-интеграций.
Endpoint
POST https://ingest.gausslab.io/events
Заголовки:
Content-Type: application/json
X-Api-Key: YOUR_API_KEY
API-ключ проекта можно создать в дашборде → Настройки проекта → API-ключи.
Одиночное событие
curl -X POST https://ingest.gausslab.io/events \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{
"name": "signup",
"url": "https://yoursite.com/register",
"properties": {
"plan": "pro",
"source": "landing"
}
}'
Батч событий
Для эффективной отправки нескольких событий используйте батч:
curl -X POST https://ingest.gausslab.io/events/batch \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{
"events": [
{
"name": "page_view",
"url": "https://yoursite.com/pricing",
"timestamp": "2025-04-01T10:00:00Z"
},
{
"name": "signup",
"url": "https://yoursite.com/register",
"timestamp": "2025-04-01T10:02:30Z",
"properties": { "plan": "pro" }
}
]
}'
Максимум 50 событий в одном батч-запросе.
Поля события
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
name |
string | Да | Название события |
url |
string | Да | URL страницы |
timestamp |
string (ISO 8601) | Нет | Время события. По умолчанию — текущее |
properties |
object | Нет | Произвольные свойства (до 10 ключей) |
client_id |
string | Нет | Идентификатор пользователя (если есть) |
Ответы
| Статус | Описание |
|---|---|
202 Accepted |
Событие принято в обработку |
400 Bad Request |
Некорректный формат запроса |
401 Unauthorized |
Неверный или отсутствующий API-ключ |
429 Too Many Requests |
Превышен лимит запросов |
Пример на Node.js
async function trackEvent(name, url, properties = {}) {
await fetch('https://ingest.gausslab.io/events', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-Api-Key': process.env.GAUSS_API_KEY,
},
body: JSON.stringify({ name, url, properties }),
});
}
// Использование
await trackEvent('order_created', 'https://yoursite.com/checkout', {
order_id: '12345',
value: 4990,
currency: 'RUB',
});