Analitic
Перейти к содержанию

Документация

Установка, события, серверный API и приватность.

Установка

Одна строка в <head> на каждой странице сайта. Для SPA ничего дополнительно делать не нужно: смена маршрута считается просмотром автоматически.

<head>
  <script defer data-site="YOUR_SITE_ID" src="https://analitic.my-it.uz/js/da.js"></script>
</head>

Замените YOUR_SITE_ID на идентификатор из настроек сайта.

Параметры скрипта

Поведение счётчика настраивается атрибутами на теге script.

Атрибут Что делает
data-site Идентификатор сайта. Обязателен.
data-persist="1" Хранит идентификатор посетителя в localStorage. Нужен для атрибуции выручки между визитами; без него связь работает в пределах суток.
data-hash="1" Считает #фрагменты отдельными страницами.
data-outbound="0" Отключает учёт исходящих ссылок.
data-exclude="/admin/*" Пути, которые не учитывать. Несколько — через запятую.
data-api Свой адрес приёмника событий.

Свои события

Функция datafast доступна на странице сразу после загрузки скрипта. Имя события — любое, свойства необязательны.

datafast('signup', { plan: 'pro' });

// Идентификатор посетителя — передайте его на свой сервер,
// чтобы привязать к нему будущую оплату:
datafast.visitorId();

Чтобы событие считалось целью, создайте цель с таким же именем в настройках сайта.

Telegram

Реферрер «t.me» одинаков для Mini App, встроенного браузера, поста в канале и личного сообщения. Analitic различает их сам, но какой именно пост привёл человека — можно узнать только если пост помечен.

Как пометить пост

Добавьте к ссылке параметр tg со своим обозначением. Значение любое, до 64 символов.

https://example.uz/catalog?tg=post_42

Mini App

Ничего делать не нужно: Analitic читает start_param из Telegram SDK. Если Mini App открывается ссылкой t.me/bot/app?startapp=post_42, в отчёте появится post_42.

Заказ из переписки

Заказ приходит в личные сообщения, а не на сайт — привязать его к каналу можно так: кнопка «Написать» на сайте ведёт по ссылке с идентификатором посетителя, Telegram передаёт его боту в параметре start, бот отправляет событие об оплате с этим же идентификатором.

// 1. Кнопка на сайте
document.querySelector('#write-to-us').href =
    datafast.telegramLink('myshopbot');

// 2. Бот получает /start <visitor_id> и сообщает об оплате
POST https://analitic.my-it.uz/api/v1/event
Authorization: Bearer da_••••••••

{
  "name": "order_paid",
  "visitor_id": "<то, что пришло в start>",
  "amount": 350000,
  "currency": "UZS"
}

Работает только при data-persist="1": без сохранённого идентификатора связывать нечего.

Что появится в отчёте

Telegram Mini App, встроенный браузер или помеченная ссылка
Пост в Telegram значение параметра tg или start_param

Серверные события и выручка

Оплаты приходят на сервер, а не в браузер, поэтому выручка отправляется отдельным запросом с токеном сайта.

curl -X POST https://analitic.my-it.uz/api/v1/event \
  -H "Authorization: Bearer da_your_token" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "subscription_paid",
    "email": "customer@example.com",
    "amount": 19.00,
    "currency": "USD"
  }'

Нужно указать хотя бы одно из полей visitor_id, external_id или email — иначе событие не к кому привязать. visitor_id берётся на странице вызовом datafast.visitorId().

Поля запроса

Поле Что значит
name Имя события. Обязательно.
visitor_id / external_id / email К кому привязать событие. Нужно хотя бы одно.
amount Сумма. Для событий выручки.
currency Валюта, три буквы. По умолчанию — валюта сайта.
occurred_at Когда произошло. По умолчанию — сейчас.
props Свои свойства события.

Приватность

Посетитель определяется по хешу, в который входит соль, меняющаяся каждые сутки. На следующий день тот же человек получает другой идентификатор, поэтому сквозного профиля не существует. В браузер ничего не записывается, персональные данные не собираются, баннер согласия в базовой установке не нужен.

Исключение — атрибут data-persist. Он хранит идентификатор в localStorage вашего сайта, чтобы связать оплату с первым источником.

Без data-persist соль меняется каждые сутки: связать оплату с визитом можно только в пределах одного дня. С data-persist — между визитами, но это запись в браузер посетителя, и в ЕС за неё может потребоваться согласие.

Определение страны и города — по базе DB-IP Lite (CC BY 4.0). Запросов наружу нет: база лежит на нашем сервере.

Проверка установки

Откройте свой сайт в новой вкладке и вернитесь на дашборд — цифры появятся через несколько секунд.

  • Данных нет дольше минуты — проверьте, что скрипт стоит в <head>, а не в <body>.
  • В консоли браузера ошибка загрузки — вероятно, адрес скрипта заблокирован блокировщиком рекламы.
  • Данные идут, но выручки нет — проверьте токен сайта и то, что в запросе есть visitor_id, external_id или email.
  • Считаются лишние страницы — добавьте их в data-exclude.