Данные по кликам, которые можно реально запросить.
Вы измеряете атрибуцию, drop-off в воронке и инкрементальный lift. Elido хранит каждый клик в колоночном аналитическом хранилище с прямым доступом - без сэмплинга и задержки агрегации.
- Никакого семплирования кликов ни на одном тарифе - каждое событие хранится
- Выгрузка кликов в ваш S3-бакет (gzip NDJSON)
- Запланированный S3 + BigQuery-экспорт (Parquet по умолчанию)
- Сырые события кликов через вебхук-файрхоз / Kafka-consumer
Как поступают данные по кликам
Клик → поток событий → аналитическое хранилище, без агрегации посередине.
Большинство сокращателей дают вам счётчик. Мы даём строку на клик, поступающую менее чем за пять секунд и доступную для запроса из вашего SQL-клиента. Пайплайн - один Kafka-совместимый топик, который один consumer дренирует в аналитическое хранилище - без сервиса агрегации, без ежедневных сводок, без сноски «семплировано после 10K».
- Step 1
Click
elido.me/x → 302Edge POP returns the destination + emits an event to our event stream.
- Step 2
Event stream
topic: clicks.<workspace>12 partitions, at-least-once delivery, 7-day topic retention.
- Step 3
Analytics store
<5s p99 ingest lagOur ingestion service drains the topic into the per-workspace events table.
- Step 4
Your tools
S3 export · Analytics APIScheduled or on-demand S3 export (gzip NDJSON), or the analytics REST API. A direct read-only DSN is planned.
Экспорт аналитики и API
События кликов в вашем бакете; прямой read-only DSN в планах.
Workspace на тарифе Business могут экспортировать события кликов как gzip NDJSON в собственный S3-бакет по расписанию или по запросу и загружать их в хранилище, из которого читают Metabase, Hex, Apache Superset, Grafana или Looker. Агрегаты также доступны через REST API аналитики. Прямой read-only DSN к аналитике запланирован, сейчас его ещё нет.
- Стабильная схемаВерсионируется в /docs/api-reference; руководства по миграции в /changelog
- Собственное хранилищеФайлы gzip NDJSON в вашем S3-бакете в пределах вашего workspace
- Совместимость с BIЗагружайте в хранилище, из которого читают Metabase, Hex, Superset, Grafana, Looker
- API аналитикиАгрегаты по стране, устройству, источнику перехода и времени через REST
SELECT country, COUNT(*) AS clicks
FROM events
WHERE link_id = 'lnk_8a2fc1...'
AND occurred_at >= now() - INTERVAL 7 DAY
GROUP BY country
ORDER BY clicks DESC
LIMIT 5;География, которая выживает при экспорте
Плотность на уровне страны для каждого клика - не хешированный бакет.
Каждое событие клика содержит страну, регион и город по ISO 3166-1 alpha-2, определённые из офлайн-набора geo-IP. IP-адрес посетителя сохраняется вместе с событием клика, поэтому относитесь к этим данным как к персональным по GDPR. Ниже те же данные в интерфейсе, что попадают в ваше хранилище - без промежуточного слоя агрегации.
Source of truth. 0% sampling, 24-month retention on Business.
Hourly buckets, snappy-compressed Parquet (or JSON if you prefer).
Native BigQuery Transfer service or Snowflake external table loads from S3.
Экспорт в хранилище
Ежечасный Parquet в S3, затем нативный перенос в ваше хранилище.
Запланированный экспорт отправляет события кликов в виде Parquet в ваш S3-бакет ежечасно или ежедневно; нативный BigQuery Transfer или внешняя таблица Snowflake загружает оттуда. Первый запуск - полное заполнение до вашего окна хранения; последующие запуски добавляют только новые события с ключом по метке времени. Сбои повторяются; если пакет не удаётся доставить в течение 2 часов - приходит уведомление dead-letter.
- Parquet (по умолчанию) или JSON; один объект на часовой бакет
- Фильтрация экспорта по домену, кампании или тегу ссылки
- Нативный BigQuery Transfer + внешняя таблица Snowflake
- Dead-letter-уведомление при сбое пакета >2 ч
- Kafka-файрхоз для доставки менее секунды (Business)
Что вы можете делать
- Никакого семплирования кликов ни на одном тарифе - каждое событие хранится
- Выгрузка кликов в ваш S3-бакет (gzip NDJSON)
- Запланированный S3 + BigQuery-экспорт (Parquet по умолчанию)
- Сырые события кликов через вебхук-файрхоз / Kafka-consumer
- Задержка запроса менее секунды на таблицах с 1B+ строк
- Серверная атрибуция кликов с дедупликацией click-ID
Что означает 'analytics-first' в модели данных Elido
Большинство аналитик в сервисах сокращения ссылок - это агрегированные итоги. Представленные ниже функции объясняют, что меняется, когда первичным артефактом является поток необработанных кликов, а не сводка.
Храним каждый клик - никаких примечаний о сэмплировании после N событий
События кликов поступают через Kafka-совместимый топик и записываются в аналитическое хранилище нашим сервисом приема. Сэмплирование отсутствует. Для ссылки с 10 кликами и ссылки с 10 миллионами кликов все события хранятся в одной таблице - схема не меняется, агрегация при приеме не применяется. Срок хранения: 90 дней на Free, 12 месяцев на Pro и 24 месяца на Business. После истечения срока события безвозвратно удаляются; количество удаленных событий логируется. Схема событий открыта - вы видите, какие именно поля хранятся, и можете планировать модель данных в своем хранилище до начала экспорта. Задержка от клика до доступности в аналитике обычно составляет менее 5 секунд; потребитель работает с авто-коммитом и логирует метрики задержки, чтобы вы могли видеть, не отстает ли пайплайн.
Серверная передача в GA4 MP, Meta CAPI и Mixpanel - дедупликация по клику
Клиентские пиксели теряют значительную часть конверсий из-за блокировщиков рекламы и ITP в iOS Safari. Серверная передача отправляет данные о конверсиях в GA4 Measurement Protocol, Meta CAPI или Mixpanel напрямую из бэкенда Elido - без JS на стороне клиента. Ключом дедупликации является ID клика: когда событие конверсии поступает через вебхук Stripe или Shopify, Elido сопоставляет его с исходным кликом и рассылает по всем настроенным серверным эндпоинтам. ID клика передается как параметр запроса в URL назначения в момент клика; ваш процесс оформления заказа должен сохранить его до события конверсии. Каждое пересылаемое событие содержит исходные UTM-параметры клика, поэтому атрибуция сохраняется во всей воронке. Это полезно для восстановления конверсий, которые теряют клиентские пиксели - это не замена полноценной CDP, но это закрывает типичный разрыв в атрибуции по последнему клику.
Выгрузка кликов в S3 - загрузка в хранилище, на котором работают Metabase, Hex или Grafana
Рабочие пространства Business могут выгружать события кликов в формате gzip NDJSON в собственный S3-бакет по расписанию или по запросу. Загрузите файлы в хранилище, на котором работают Metabase, Hex, Apache Superset, Grafana или любой совместимый SQL/BI-клиент, и пишите там SQL по данным о кликах. Агрегаты также доступны через REST API аналитики. Для команд, которые хотят объединять события кликов со своими продуктовыми данными - «какие ссылки привели пользователей, которые потом активировались?» - скопируйте выгрузку в своё хранилище и объединяйте там. Прямой аналитический DSN только для чтения, чтобы BI-инструмент мог подключаться без задачи выгрузки, запланирован и пока недоступен.
Запланированный экспорт в S3, BigQuery и Snowflake
Запланированный экспорт выполняется с заданной периодичностью (ежечасно, ежедневно) и передает поток событий кликов - или подмножество, отфильтрованное по домену, кампании или тегу - в S3, BigQuery или Snowflake. Экспорт в S3 по умолчанию использует Parquet (доступен JSON); BigQuery и Snowflake используют нативные коннекторы со схемой, которую Elido создает и поддерживает. Инкрементальный экспорт привязан к временной метке события; первый экспорт - это полный бэкфилл за период хранения; последующие добавляют только новые события. Если нужно переиграть данные с определенного момента, доступен разовый полный экспорт через запрос в поддержку. Ошибки экспорта логируются, выполняются повторные попытки; если пакет не удается отправить более 2 часов, на почту рабочего пространства приходит уведомление.
Kafka firehose в реальном времени для пайплайнов, которым не подходит пакетный экспорт
Рабочие пространства тарифа Business могут получать события кликов напрямую из Kafka-совместимого топика как группа потребителей Kafka. Вы получаете ID группы потребителей, адрес bootstrap-сервера и сертификат клиента - стандартная конфигурация потребителя Kafka. Это правильный путь для алертинга в реальном времени (обнаружение всплесков, аномалий гео), дашбордов реального времени, требующих субсекундных данных, и пайплайнов, где задержка запланированного экспорта слишком велика. Firehose доставляет каждое событие как минимум один раз (at-least-once); ваш потребитель отвечает за идемпотентность при повторном воспроизведении. Срок хранения в топике - 7 дней; если ваш потребитель отстанет более чем на 7 дней, события будут потеряны - настройте мониторинг задержки. Это функция для продвинутой аналитики, требующая написания кода потребителя и опыта работы с Kafka.
Стек, с которым вы будете работать
- Сырые click-события
- Прямой доступ по SQL
- GA4 / Meta CAPI / Mixpanel
- Экспорт в S3 + BigQuery
- Выгрузка кликов в S3 (gzip NDJSON)
- Webhook firehose
Что вы будете измерять
- Sampling rate
- 0% - каждый клик сохранён
- Задержка приёма событий
- Менее 5 секунд
- Горизонт хранения
- До 24 месяцев
Аналитика Elido против Bitly Analytics и Heap
Bitly Analytics подходит для подсчета кликов и базового гео. Heap - это полноценная платформа продуктовой аналитики. Сравнение ниже честно описывает, где каждый вариант является подходящим инструментом.
Вопросы команд аналитики
Какова точная схема событий для событий кликов?
Схема открыта в /docs/api-reference в разделе 'Click events'. Основные поля: click_id (UUID), link_id, workspace_id, occurred_at (временная метка UTC), country_iso2, region, city, device_type (mobile/tablet/desktop), os, browser, referrer_domain, utm_source, utm_medium, utm_campaign, utm_term, utm_content. Поля, допускающие null, содержат null, а не пустые строки. Изменения схемы анонсируются в /changelog с руководством по миграции.
Есть ли руководство по потребителю Kafka?
Да - /docs/guides/kafka-firehose содержит информацию о bootstrap-сервере, настройке группы потребителей, ротации сертификатов и примеры кода на Go и Python. Топик создается по одному на рабочее пространство; количество партиций фиксировано - 12. Сброс смещения (offset reset) по умолчанию установлен на 'earliest' при первом присоединении группы потребителей. Если вы строите систему на этой основе, заложите время на мониторинг задержки (lag) - это основной вид сбоев, с которым сталкиваются команды.
Могу ли я объединить события кликов с моей таблицей пользователей?
В вашем хранилище данных - да. Стандартный паттерн: экспорт событий кликов в BigQuery или Snowflake через запланированный экспорт, затем объединение по UTM-параметрам или кастомному параметру user_id, который вы добавляете к ссылкам назначения. Elido не хранит личность пользователя в событиях кликов - click_id является случайным UUID для каждого клика, не привязанным к аккаунту.
Как работает дедупликация конверсий на стороне сервера?
Когда вы отправляете событие конверсии через POST в эндпоинт Elido, вы включаете click_id, который был возвращен в исходном ответе на клик (он передается как параметр запроса в URL назначения). Elido находит клик, проверяет, не был ли он уже атрибутирован, и рассылает конверсию в GA4 MP, Meta CAPI или Mixpanel с исходным UTM-контекстом клика. Повторные отправки с тем же click_id идемпотентны - они подтверждаются, но не учитываются дважды.
Что произойдет, если мой потребитель Kafka отстанет?
События хранятся в топике в течение 7 дней. Если зафиксированное смещение вашей группы потребителей отстанет более чем на 7 дней, старые события будут потеряны до того, как ваш потребитель их прочитает. Настройте мониторинг задержки; установите алерт на отставание в 6 часов. Если вы упустите данные, запланированный экспорт в S3/BigQuery поможет закрыть пробел.
Включает ли выгрузка кликов данные других рабочих пространств?
Нет. Выгрузки содержат только события вашего рабочего пространства и записываются в ваш собственный S3-бакет. Прямой аналитический DSN только для чтения запланирован и пока недоступен; когда он появится, доступ будет ограничен вашим рабочим пространством.
Существует ли минимум размера выборки, чтобы когорты кликов стали значимыми?
Аналитическое хранилище выполняет запрос когорт на любом объеме данных. Статистическая значимость остается на ваше усмотрение. Когорта из 50 кликов дает цифру, но она может быть зашумлена. Мы показываем абсолютные значения и проценты; мы не применяем байесовское сглаживание или доверительные интервалы. Для формального анализа экспортируйте данные и запускайте свою модель в хранилище.
Могу ли я фильтровать запланированный экспорт для подмножества ссылок?
Да - фильтры экспорта поддерживают: конкретный домен, ID кампании, конкретный тег или диапазон дат. Отфильтрованный экспорт остается инкрементальным; последующие запуски добавляют только новые события, соответствующие фильтру. Если вы добавите новое условие фильтрации к существующей задаче, вам потребуется либо создать новую задачу, либо выполнить разовый полный переэкспорт для заполнения истории.
Чтение для аналитика
Разбивка на ссылку, атрибуция конверсий, когортное удержание.
Серверная пересылка в GA4, Meta CAPI, Mixpanel.
Спецификация OpenAPI 3.1, схема событий кликов, типизированные SDK на TS / Py / Go.
HMAC-подписанные события, политика повторных попыток, Kafka-файрхоз для больших объёмов.
Настройка выгрузки, схема, шаблоны загрузки в BigQuery + Snowflake.
Не уверены, какой ракурс подходит?
Большинство команд начинают с одного и развиваются до всех четырех. Наша команда продаж может обсудить ваш конкретный стек за 20 минут.