> ## Documentation Index
> Fetch the complete documentation index at: https://docs.exode.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Целевые события

> События платформы, которые автоматически отправляются в подключенные рекламные площадки

<Info>
  Вставьте сниппет площадки в **Custom Code (JS)** в настройках школы — платформа сама начнет
  отправлять в нее целевые события. Дополнительный код не нужен.
</Info>

<CardGroup cols={2}>
  <Card title="Meta Pixel (Facebook)" icon="facebook" href="/ru/analytics/meta-pixel" />

  <Card title="Google Analytics (GA4)" icon="google" href="/ru/analytics/google-analytics" />

  <Card title="Яндекс.Метрика" icon="yandex" href="/ru/analytics/yandex-metrika" />

  <Card title="VK Ads" icon="vk" href="/ru/analytics/vk-ads" />
</CardGroup>

## Точность и прозрачность

<Columns cols={3}>
  <Card title="Никаких дублей" icon="shield-check">
    Покупка уходит один раз на счет — guard на устройстве + `eventID` / `transaction_id`
    для дедупликации на стороне Meta и GA4.
  </Card>

  <Card title="Только реальные деньги" icon="coins">
    Суммы и валюты — из счета (ISO 4217); внутренние баллы не искажают выручку и ROAS.
  </Card>

  <Card title="Все прозрачно" icon="eye">
    События — обычные `document`-события: их видно в консоли и можно перехватить своим кодом.
  </Card>
</Columns>

## Список событий

Каждое событие диспатчится как `CustomEvent` на `document` (данные — в `event.detail`) —
его можно перехватить своим кодом для [любой другой площадки](/ru/analytics/custom).

### Регистрация

<ParamField body="analytics:signup-completed" type="event">
  Регистрация нового аккаунта через email или телефон. При входе через соцсети (VK, Telegram)
  и OTP событие не отправляется — этот способ пока не различает нового пользователя и повторный вход.

  <Expandable title="Поля event.detail">
    <ParamField body="method" type="enum">Способ регистрации: `email`, `phone`.</ParamField>
  </Expandable>
</ParamField>

### Лид (анкета онбординга)

<ParamField body="profile:personal-info-filled-success" type="event">
  Пользователь заполнил анкету онбординга (имя и личные данные). Без `event.detail`.
</ParamField>

### Просмотр курса

<ParamField body="analytics:course-viewed" type="event">
  Просмотр страницы курса.

  <Expandable title="Поля event.detail">
    <ParamField body="courseId" type="number">ID курса.</ParamField>
  </Expandable>
</ParamField>

### Открытие демо-урока

<ParamField body="analytics:demo-lesson-opened" type="event">
  Открытие демо-урока со страницы курса.

  <Expandable title="Поля event.detail">
    <ParamField body="courseId" type="number">ID курса.</ParamField>
    <ParamField body="lessonId" type="number">ID демо-урока.</ParamField>
  </Expandable>
</ParamField>

### Запись на бесплатный курс

<ParamField body="analytics:free-course-enrolled" type="event">
  Запись на бесплатный курс.

  <Expandable title="Поля event.detail">
    <ParamField body="productId" type="number">ID продукта курса.</ParamField>
  </Expandable>
</ParamField>

### Переход к оплате

<ParamField body="analytics:checkout-initiated" type="event">
  Переход к оформлению оплаты (выбран тариф).

  <Expandable title="Поля event.detail">
    <ParamField body="productId" type="number">ID продукта.</ParamField>
    <ParamField body="priceId" type="number">ID выбранного тарифа.</ParamField>
  </Expandable>
</ParamField>

### Покупка

<ParamField body="analytics:purchase-completed" type="event">
  Успешная оплата счета. Отправляется **один раз на счет**: повторная отправка на этом устройстве
  блокируется на 90 дней по uuid счета, а при позднем открытии страницы (другое устройство,
  ссылка из письма — позже 5 минут после оплаты) событие не отправляется вовсе.

  <Expandable title="Поля event.detail">
    <ParamField body="value" type="number">Сумма счета.</ParamField>
    <ParamField body="currency" type="enum">Валюта счета: `Rub`, `Uzs`, `Kzt`, `Usd`, `Eur`, `Exes`, `Free`.</ParamField>
    <ParamField body="invoiceUuid" type="string">Uuid счета — уникальный идентификатор для дедупликации.</ParamField>
    <ParamField body="productIds" type="number[]">ID оплаченных продуктов.</ParamField>
  </Expandable>
</ParamField>

### Завершение курса

<ParamField body="analytics:course-completed" type="event">
  Пользователь завершил курс.

  <Expandable title="Поля event.detail">
    <ParamField body="productId" type="number">ID продукта курса.</ParamField>
  </Expandable>
</ParamField>

***

*Обновлено: 2026-08-15 17:05 UTC*
