Отслеживание конверсий. Связывайте каждый доллар с кликом, который его заработал.
Вебхуки Stripe и Shopify проверяют подписи и связывают доход с исходной короткой ссылкой. Атрибуция кампании определяется автоматически.
- Server-side атрибуция Stripe и Shopify
- Сквозная передача click_id - без клиентского JS
- Выручка по ссылке, кампании, дню, платформе
- Автоматическая проверка HMAC-подписи
Как это работает
click_id проходит всю воронку
UUID назначается в момент клика и передаётся через каждый шаг - параметр URL, cookie сессии, Stripe-сессия, заказ Shopify - пока вебхук не сработает и не замкнёт цикл атрибуции на стороне сервера. Клиентский JavaScript для самой атрибуции не нужен.
- Шаг 01
Клик по короткой ссылке
elido.me/saleEdge ставит UUID v4
cid: a3f9c1… - Шаг 02
click_id прикреплён
?elido_cid=a3f9c1…URL-параметр + first-party cookie
cid: a3f9c1… - Шаг 03
Пользователь конвертится
client_reference_id=a3f9c1…Stripe-сессия несёт click_id
cid: a3f9c1… - Шаг 04
Вебхук срабатывает
checkout.session.completedВыручка проатрибутирована исходной ссылке
cid: a3f9c1…
Интеграции
Готовые приёмники вебхуков для Stripe и Shopify
Зарегистрируйте endpoint в дашборде, вставьте подписной секрет - и атрибуция начнёт работать. Проверка HMAC-подписи выполняется до обработки payload - поддельные вебхуки отклоняются прежде, чем коснутся ваших данных.
Дашборд выручки
Выручка по ссылке, кампании и дню
У каждой короткой ссылки есть живой счётчик выручки - сумма всех конверсий, проатрибутированных через неё. Фильтруйте по тегу кампании, диапазону дат или платформе. Экспортируйте в CSV или стримьте в BigQuery по расписанию.
- Выручка по ссылкеСуммарные конверсии в любой валюте, в исходной деноминации
- CVR во времениВременной ряд конверсии рядом с объёмом кликов
- Форвардинг в GA4 / Meta CAPIАсинхронная рассылка после записи конверсии
- ДедупликацияИдемпотентность по click_id + event_name - двойные вебхуки не задваивают счёт
| Ссылка | Клики | Конв. | Выручка | CVR |
|---|---|---|---|---|
| elido.me/bfcm | 18,420 | 847 | €76,280 | 4.6% |
| elido.me/sale | 11,034 | 512 | €41,430 | 4.6% |
| elido.me/nl/shop | 8,901 | 398 | €29,104 | 4.5% |
| elido.me/email-q2 | 6,201 | 201 | €14,872 | 3.2% |
| elido.me/ig-bio | 5,032 | 88 | €6,104 | 1.7% |
Что вы можете делать
- Stripe checkout.session.completed
- Stripe payment_intent.succeeded
- Shopify orders/paid
- Атрибуция кампании, полученная из ссылки
- Сводка доходов в дашборде
Как работает сквозная серверная атрибуция конверсий
Клиентские пиксели теряют 20–40% конверсий из-за блокировщиков рекламы, ограничений конфиденциальности iOS и цепочек перенаправлений. Серверная атрибуция устраняет этот разрыв.
Каждый клик получает UUID, передаваемый в пункт назначения - якорь атрибуции для сопоставления конверсий
Когда пользователь нажимает на короткую ссылку Elido, пограничный сервер генерирует click_id (UUID v4) и добавляет его в качестве параметра запроса (elido_cid) к URL назначения. Ваш процесс оформления заказа должен сохранять этот параметр на каждой странице воронки - большинство роутеров SPA и стеков с серверным рендерингом пересылают неизвестные параметры запроса по умолчанию, но многоэтапные процессы оформления с цепочками редиректов могут их удалять. click_id также сохраняется в сессионных cookie на домене назначения, если вы вставите фрагмент кода атрибуции Elido (2 КБ, необязательно). Протестируйте процесс оформления заказа перед запуском: перейдите по короткой ссылке, совершите тестовую покупку, убедитесь, что elido_cid появляется в POST-запросе конверсии. Если нет, добавьте пересылку параметров запроса в ваше промежуточное ПО (middleware). Это самая частая причина сбоя настройки - не вебхук, а потеря параметра запроса.
Приемник вебхуков Stripe проверяет подписи и привязывает события checkout.session.completed и payment_intent.succeeded
Зарегистрируйте эндпоинт вебхука Elido в панели Stripe (Settings → Webhooks → Add endpoint). Elido прослушивает события checkout.session.completed и payment_intent.succeeded. При каждом событии Elido проверяет заголовок Stripe-Signature с помощью вашего секретного ключа подписи, извлекает сумму платежа и валюту, находит click_id, сохраненный в client_reference_id сессии оформления заказа (который вы должны заполнить - см. руководство), и записывает конверсию для этого клика. Доход и click_id затем доступны в аналитике ссылки и в сводке доходов кампании. Поле client_reference_id является рекомендуемым каналом передачи; в качестве альтернативы используйте поле метаданных Stripe с ключом elido_cid, если вы используете PaymentIntents напрямую. Полная настройка занимает около 30 минут, если ваша интеграция со Stripe уже обрабатывает вебхуки.
Вебхук заказов/оплаты Shopify привязывает доход от заказа к клику по исходной короткой ссылке
Зарегистрируйте эндпоинт вебхука Elido в админ-панели Shopify (Settings → Notifications → Webhooks → Create webhook → Topic: orders/paid). Elido проверяет заголовок X-Shopify-Hmac-Sha256, извлекает общую сумму заказа и валюту, и находит elido_cid в note_attributes заказа (вы заполняете это из корзины с помощью API note_attributes Shopify, передавая click_id из cookie сессии или параметра URL). Для магазинов Shopify, использующих темы Online Store 2.0, фрагмент атрибуции Elido автоматически вставляет click_id в корзину при клике. Атрибутированные заказы дедуплицируются по ID заказа, поэтому возвращенные и замененные заказы не учитываются дважды. Магазины Shopify Plus с кастомными расширениями оформления заказа могут передавать click_id через более надежный канал - руководство по настройке охватывает процесс для Plus.
POST-запрос к эндпоинту конверсий Elido из любого бэкенда - не только для Stripe и Shopify
Отправьте POST /v1/conversions с JSON-телом: { click_id: "...", event_name: "purchase", value: 99.00, currency: "EUR", metadata: {} }. click_id - это elido_cid из клика. Elido аутентифицирует запрос с помощью API-ключа вашего рабочего пространства (рекомендуется HMAC-SHA256 над телом запроса для дополнительной безопасности). Этот эндпоинт охватывает любую конверсию, не обрабатываемую нативными интеграциями Stripe или Shopify: WooCommerce, активации пробных версий в кастомных SaaS, отправки лид-форм, звонки, отслеживаемые вашей телефонией. Поле event_name является текстовым; используйте любое соглашение об именах - оно отображается как есть в аналитике. Идемпотентность: при отправке одной и той же комбинации click_id + event_name дважды, записывается только первая. Значение события и метаданные изменяемы только при первой записи.
Одновременная рассылка конверсий в GA4 Measurement Protocol, Meta CAPI и серверный трекинг Mixpanel
После того как Elido записывает конверсию для клика, он отправляет событие во все включенные вами серверные направления пересылки: GA4 Measurement Protocol (событие появляется в GA4 как серверное событие покупки с оригинальными UTM-параметрами клика), Meta Conversions API (событие дедуплицируется с клиентским пикселем, если задействованы оба, с использованием event_id из click_id) и серверный трекинг Mixpanel (событие отправляется с distinct_id из вызова $identify Mixpanel, если настроена кросс-идентификация). Пересылка происходит асинхронно после записи конверсии - это не блокирует ответ вебхука для Stripe или Shopify. Неудачные события пересылки повторяются с экспоненциальной задержкой в течение 24 часов, затем удаляются с записью в лог. Статус пересылки для каждой конверсии виден в панели управления.
Команды по доходам, использующие отслеживание конверсий Elido
Имена являются заполнителями - реальные кейсы клиентов появятся здесь по мере их публикации.
“iOS 14.5 убил нашу атрибуцию через Meta Pixel для 30% мобильных покупок. Серверный вебхук Stripe через Elido восстановил большую часть данных - ключевым моментом стала передача click_id в client_reference_id Stripe. Настройка заняла один вечер.”
“Мы отправляем активации пробных версий на кастомный эндпоинт конверсий Elido. Цепочка клик → триал → оплата теперь полностью прослеживается без использования сложной CDP. Пересылка через GA4 Measurement Protocol означает, что дашборды платных каналов снова точны.”
“Вебхук заказов/оплаты Shopify плюс фрагмент кода атрибуции в теме - это была интеграция на один день. Доход на кампанию теперь живое число на нашей утренней планерке, а не формула в таблице, которую кто-то должен обновлять.”
Отслеживание конверсий Elido против Bitly и Short.io
У Bitly нет серверного отслеживания конверсий. У Short.io есть базовые пиксели конверсий. Отслеживание конверсий Elido работает на стороне сервера и пересылает данные на несколько рекламных платформ.
| Feature | Elido | Bitly | Short.io |
|---|---|---|---|
| Серверная атрибуция конверсий | Да - на базе вебхуков, с проверкой подписи | Недоступно | Недоступно |
| Интеграция с вебхуками Stripe | checkout.session.completed + payment_intent.succeeded | Недоступно | Недоступно |
| Интеграция с вебхуками Shopify | orders/paid - с проверкой подписи и дедупликацией | Недоступно | Недоступно |
| API-эндпоинт для конверсий | POST /v1/conversions - любой бэкенд, любое событие | Недоступно | Недоступно |
| Пересылка в GA4 / Meta CAPI | Да - рассылка после записи конверсии | Недоступно | Частично - только клиентский пиксель |
| Доход в аналитике | Сводка доходов по ссылкам и кампаниям с учетом валюты | Недоступно | Только количество конверсий, без дохода |
| Дедупликация конверсий | Да - идемпотентность по click_id + event_name | Неприменимо | Недоступно |
Вопросы об отслеживании конверсий
Что если click_id будет потерян до конверсии?
Если параметр запроса elido_cid будет потерян до срабатывания события конверсии - из-за цепочки редиректов, роутера SPA или стороннего сервиса оплаты - конверсия не сможет быть атрибутирована. Протестируйте всю воронку: кликните по короткой ссылке, проследите elido_cid через каждую страницу до подтверждения оплаты, убедитесь, что он появляется в POST-запросе конверсии. Фрагмент кода атрибуции Elido также сохраняет click_id в основной cookie (first-party) в качестве резервного варианта - если параметр URL потерян, но пользователь все еще в той же сессии браузера, атрибуция может быть восстановлена из cookie.
Как обрабатываются возвраты при атрибуции конверсий?
Elido не обрабатывает события возврата автоматически. Если срабатывает событие Stripe charge.refunded или Shopify refunds/create, Elido не списывает атрибутированный доход. Вы можете отправить событие конверсии с отрицательным значением на кастомный эндпоинт, чтобы отменить атрибуцию вручную. Обработчик вебхуков возвратов находится в разработке. До тех пор, если вам нужен точный чистый доход в Elido, вычитайте суммы возвратов, используя экспорт данных и вашу систему управления заказами.
Работает ли отслеживание, если пользователь завершает покупку на другом устройстве?
Нет - если пользователь нажал на короткую ссылку на мобильном устройстве, но завершил оформление заказа на компьютере, click_id не переносится между устройствами. Конверсия останется неатрибутированной, если только сессия пользователя не сохранила elido_cid при переходе между устройствами (например, через вошедший в систему аккаунт). Кросс-девайс атрибуция требует серверного графа идентификации, который Elido не предоставляет. Для точности кросс-девайс атрибуции используйте ваш MMP или CDP вместе с серверными конверсиями Elido.
Какие валюты поддерживаются для атрибуции дохода?
В поле value события конверсии принимаются все коды валют ISO 4217. Доход хранится в исходной валюте; панель аналитики показывает доход в валюте каждого события конверсии. Если вам нужен сводный вид в одной валюте, экспортируйте события конверсий и конвертируйте их в своем хранилище данных - Elido не применяет курсы обмена валют.
Как настроить передачу client_reference_id в Stripe?
При создании сессии оформления заказа Stripe установите client_reference_id в значение параметра URL elido_cid из реферера. На JavaScript: const session = await stripe.checkout.sessions.create({ ..., client_reference_id: searchParams.get('elido_cid') }). Обработчик вебхуков Elido считывает это поле из checkout.session.completed. Если вы используете PaymentIntents напрямую, используйте поле метаданных с ключом elido_cid. Руководство по настройке на /docs/guides/conversion-tracking содержит готовый код для Node, Python и Go.
Включаются ли данные о конверсиях в экспорт аналитики?
Да. События конверсий хранятся в отдельной таблице (conversions) наряду с таблицей событий кликов (clicks). Запланированный экспорт в S3, BigQuery или Snowflake включает обе таблицы. Ключ для JOIN - click_id. Пример SQL-запроса, который объединяет клики с конверсиями и вычисляет доход по UTM-источникам кампаний, находится в руководстве по экспорту.
Можно ли отслеживать конверсии без дохода, такие как заполнение форм или активации триалов?
Да - кастомный эндпоинт конверсий принимает любое event_name и необязательное value (установите 0 для событий без дохода). Используйте названия событий вроде 'trial_started', 'demo_booked', 'form_submitted'. Они появятся в аналитике ссылки в разделе 'Conversions' с названием события в качестве метки. Если вы также настроили пересылку в GA4, они сопоставляются с пользовательскими событиями GA4. Количество конверсий (не только доход) отображается для каждой ссылки и кампании независимо от ценности события.
Какова задержка от получения события конверсии до появления в аналитике?
От получения вебхука до аналитического хранилища: обычно менее 5 секунд через тот же конвейер потока событий, что и события кликов. Атрибуция (сопоставление конверсии с исходным кликом) происходит синхронно при получении вебхука - если click_id распознан, атрибуция происходит мгновенно. Пересылка в GA4 / Meta CAPI / Mixpanel происходит асинхронно и добавляет 2–10 секунд. Данные о доходе в аналитике обновляются в течение 30 секунд после получения события конверсии.
Читать дальше
Аналитика кликов - здесь доход от конверсий отображается рядом с количеством кликов.
Запускайте пиксели Meta CAPI и Google Ads при редиректе - сторона привлечения в цикле конверсии.
Атрибуция дохода на уровне кампании - смотрите, какой вариант кампании принес больше всего дохода.
Исходящие вебхуки с подписью HMAC от Elido - получайте события кликов с атрибуцией конверсий в ваших собственных системах.
Готовы попробовать?
Начните с бесплатного тарифа, перейдите на платный, когда вам понадобится пользовательский домен.