Конверсии и выручка
Относите заказы к тому клику, который их принёс: подписанный идентификатор клика, окно атрибуции, цели, серверный API, скрипт для браузера и доставка наружу.
Обновлено 14 августа 2026 г.
Отслеживание конверсий замыкает круг между кликом и деньгами, которые он принёс. Редиректор выдаёт подписанный идентификатор при каждом редиректе; ваш сервер или ваша страница благодарности возвращает его вместе с заказом; каждая разбивка, которую вы и так читаете, получает колонку выручки.
Конверсии — платная возможность. Когда тариф их не включает, редиректор вовсе перестаёт выдавать идентификаторы, а оба пути приёма отклоняют конверсии с ограничением тарифа.
Идентификатор клика
При каждом редиректе воркер выдаёт токен и:
- добавляет его к адресу назначения под именем параметра, которое выбираете вы (
lp_cidпо умолчанию); - записывает его в собственный cookie на вашем домене для редиректов, срок жизни — 90 дней.
Именно cookie позволяет атрибуции выживать в браузерах, которые больше не принимают ничего стороннего: его ставит ваш собственный домен, а не наш.
Токен подписан и привязан к арендатору: идентификаторы рабочего пространства и партнёра входят в подписанные данные, поэтому токен, выданный на ссылке одного клиента, отклоняется в рабочем пространстве другого клиента ровно так же, как подделка. Персональных данных он не несёт — момент клика, ссылка, вариант split-теста, страна, класс устройства, источник трафика и признак подозрительного трафика.
И имя параметра, и переключатель выдачи живут в разделе Конверсии → Настройки. Изменение любого из них немедленно переписывает кешированную конфигурацию каждой ссылки.
Окно атрибуции
Конверсия, пришедшая позже окна, отклоняется с кодом attribution_expired — отдельным от invalid_click_id, поэтому интеграция отличает «слишком поздно» от «сломанный идентификатор» без угадывания. Окно — настройка отдельного рабочего пространства.
Цели
Цель — это именованный исход: purchase, signup, trial. Цели могут нести значение по умолчанию и валюту, используемые, когда конверсия приходит без суммы. Цель, на которую сослалась конверсия и которой ещё нет, создаётся при первом использовании, поэтому интеграцию не приходится настраивать в двух местах.
Отправка конверсий
С вашего сервера
curl -X POST https://api.linkprofit.com/v1/conversions \
-H "Authorization: Bearer lp_live_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-10241" \
-d '{
"click_id": "1.eyJ1aWQiOiJ...",
"goal": "purchase",
"order_id": "10241",
"amount_cents": 4999,
"currency": "usd"
}'
Ключу нужна область действия conversions:write. Суммы — целые минимальные единицы: центы, пенсы, копейки. Сумма 49.99 отклоняется с указанием поля, а не округляется молча, потому что правило округления, придуманное посреди платёжного пути, — это и есть способ тихо перестать сводить отчёты по выручке со счетами.
Из браузера
Воркер отдаёт небольшой скрипт с вашего собственного домена для редиректов:
<script src="https://go.example.com/cv.js" defer></script>
<script>
window.lpConversion({ goal: 'purchase', orderId: '10241', amountCents: 4999, currency: 'usd' });
</script>
Скрипт читает идентификатор из адреса или из собственного cookie. Ни в одном звене цепочки нет стороннего хоста, и это одновременно свойство приватности и свойство white-label: страница вашего клиента не загружает ничего, что упоминало бы платформу.
Дубликаты
Дедупликация — это одна атомарная вставка, а не чтение с последующей записью. Повторные доставки одного и того же order_id создают одну конверсию и возвращают её помеченной как дубликат — именно это делает повтор неудавшегося webhook безопасным, а не опасным.
Подозрительные конверсии
Вердикт классификатора едет внутри токена, поэтому конверсия, отнесённая к датацентру или прокси, помечается подозрительной в момент записи. В отчётах она появляется отдельным сегментом, а не удаляется и не подмешивается молча. «Двести конверсий» и «двести конверсий, сорок из которых — из одного хостингового диапазона в течение часа» — это разные факты.
Куда конверсии идут дальше
- Подписанное событие webhook
conversion.createdотправляется обычным механизмом webhook: очередь, подпись, расписание повторов, догоняющий cron. - Настроенные рекламные интеграции получают конверсию через очередь доставки со счётчиком попыток, который увеличивается до исходящего вызова, документированным backoff и отметкой об отказе вместо бесконечных повторов.
Месячная квота
Тариф может ограничивать число конверсий, принимаемых за календарный месяц, отсчитываемый в UTC. За лимитом приём отвечает quota_exceeded — код, отличный от ограничения тарифа, поэтому разница между «нет в вашем тарифе» и «израсходовано в этом месяце» видна без обращения в поддержку.