Токен
В кабинете → «Подключить статистику» → «Создать токен». Храните его на бэкенде, не в браузере.
Отправляйте нам регистрации, входы и донаты одним POST-запросом. В кабинете вы увидите графики, топ донатеров, пиковые часы и сколько игроков и денег принёс L2Index.
В кабинете → «Подключить статистику» → «Создать токен». Храните его на бэкенде, не в браузере.
Игроки из L2Index приходят с параметром l2i_click. Сохраните его в cookie — так мы посчитаем, сколько регистраций дал каталог.
Вызывайте API после регистрации, входа в игру и подтверждённой оплаты. Проверьте токен запросом с "test": true.
| event | Когда |
|---|---|
registration | Аккаунт создан на сайте или в лаунчере |
login | Игрок зашёл в игру. Даёт график активных игроков и пиковые часы. |
deposit | Оплата подтверждена платёжкой. Даёт доход, ARPPU и топ донатеров. |
POST https://l2index.eu/api/v1/events
Authorization: Bearer l2i_YOUR_TOKEN
Content-Type: application/json
{"event":"deposit","playerId":"10452","amount":250,"currency":"UAH","eventId":"pay_88123"}| Поле | Обязательное | Описание |
|---|---|---|
event | да | registration, login или deposit |
playerId | да | ID или логин аккаунта в вашей базе. Не отправляйте email или пароли. |
playerName | нет | Имя для таблицы топ донатеров |
amount | нет | Сумма доната в реальных деньгах, только для deposit. Без неё не будет графика дохода. |
currency | нет | Код валюты ISO 4217, по умолчанию UAH |
eventId | нет | Ваш уникальный ID события, например ID платежа. Повтор с тем же eventId игнорируется, поэтому ретраи безопасны. |
clickId | нет | Значение l2i_click из cookie. Отправляйте с registration, чтобы видеть игроков, пришедших из L2Index. |
occurredAt | нет | Время события в ISO 8601. По умолчанию — сейчас. Для импорта истории — до 365 дней назад. |
test | нет | true — только проверить токен и данные, ничего не сохранять |
<?php
// Put the token from your L2Index dashboard into an environment variable.
function l2index_event(array $event): void
{
$ch = curl_init('https://l2index.eu/api/v1/events');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('L2INDEX_TOKEN'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($event),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 3, // never block your registration page
]);
curl_exec($ch);
curl_close($ch);
}
// 1. Account created
l2index_event([
'event' => 'registration',
'playerId' => $accountId,
'clickId' => $_COOKIE['l2i_click'] ?? null,
]);
// 2. Payment confirmed (in your payment callback)
l2index_event([
'event' => 'deposit',
'playerId' => $accountId,
'playerName' => $login,
'amount' => 250,
'currency' => 'UAH',
'eventId' => $paymentId, // safe to retry
]);<!-- On every page of your website, before </body> -->
<script>
const click = new URLSearchParams(location.search).get('l2i_click');
if (click) document.cookie = 'l2i_click=' + encodeURIComponent(click) +
'; max-age=2592000; path=/; SameSite=Lax';
</script>201 | Событие сохранено |
200 | Повтор eventId или test-запрос — ничего не сохранено |
401 | Нет токена или он неверный. Новый токен в кабинете заменяет старый. |
422 | Неверные данные — текст ошибки указывает поле |
503 | Временный сбой. Повторите с тем же eventId. |