Дані по кліках які можна реально запитати.
Ви вимірюєте атрибуцію, 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
Що означає «пріоритет аналітики» в моделі даних Elido
Більшість сервісів скорочення посилань надають агреговані дані. Нижче пояснюється, що змінюється, коли сирий потік кліків є основним артефактом, а не просто підсумковим звітом.
Кожен клік зберігається - без приміток про «вибірку після N подій»
Події кліків надходять через Kafka-сумісний топік та записуються в аналітичне сховище нашим сервісом прийому. Рівень семплювання відсутній. Посилання з 10 кліками та посилання з 10 мільйонами кліків мають усі події в одній таблиці - схема не змінюється, агрегація під час інджесту не застосовується. Термін зберігання складає 90 днів на Free, 12 місяців на Pro та 24 місяці на Business. Після закінчення вікна зберігання події остаточно видаляються; кількість видалених подій логується. Схема подій є відкритою - ви бачите, які саме поля зберігаються, а отже, можете планувати модель даних у своєму сховищі ще до початку експорту. Затримка від кліку до доступності в аналітиці зазвичай становить менше 5 секунд; конс'юмер працює з авто-коммітом і логує метрики лагу, щоб ви бачили, чи не відстає пайплайн.
GA4 MP, Meta CAPI та Mixpanel на стороні сервера - дедупліковано відносно кліку
Клієнтські пікселі втрачають значну частину конверсій через блокувальники реклами та iOS Safari ITP. Серверне пересилання відправляе дані про конверсію в GA4 Measurement Protocol, Meta Conversions API (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 годин, на email воркспейсу надходить сповіщення.
Kafka-конс'юмер у реальному часі для пайплайнів, які не можуть чекати батч-експорту
Воркспейси плану Business можуть споживати події кліків безпосередньо з Kafka-сумісного топіка як група конс'юмерів Kafka. Ви отримуєте ID групи конс'юмерів, bootstrap-сервер і клієнтський сертифікат - стандартна конфігурація Kafka. Це правильний шлях для сповіщень у реальному часі (виявлення сплесків на посиланні, прапорці гео-аномалій), дашбордів реального часу та пайплайнів, де періодичність запланованого експорту є занадто низькою. Firehose доставляє кожну подію принаймні один раз (at-least-once); ваш конс'юмер відповідає за ідемпотентність при повторному читанні. Термін зберігання в топіку становить 7 днів; якщо ваш конс'юмер відстане більше ніж на 7 днів, події будуть втрачені - налаштуйте моніторинг лагу. Це функція не для новачків; вона вимагає написання коду конс'юмера та операційного досвіду роботи з Kafka. Якщо запланований експорт у BigQuery задовольняє ваші потреби, почніть з нього.
Стек, з яким ви будете працювати
- Сирі click-події
- Прямий доступ через SQL
- GA4 / Meta CAPI / Mixpanel
- Експорт у S3 + BigQuery
- Вивантаження кліків до S3 (gzip NDJSON)
- Webhook firehose
Що ви вимірюватимете
- Sampling rate
- 0% - кожен клік збережено
- Затримка прийому подій
- Менше 5 секунд
- Горизонт зберігання
- До 24 місяців
Аналітика Elido vs Bitly Analytics vs Heap
Bitly Analytics достатньо для підрахунку кліків та базової географії. Heap - це повноцінна платформа продуктової аналітики. Порівняння нижче чесно показує, де кожен інструмент є найкращим вибором.
Питання аналітичних команд
Яка точна схема подій для подій кліків?
Схема відкрита за адресою /docs/api-reference у розділі «Click events». Ключові поля: click_id (UUID), link_id, workspace_id, occurred_at (UTC timestamp), country_iso2, region, city, device_type (mobile/tablet/desktop), os, browser, referrer_domain, utm_source, utm_medium, utm_campaign, utm_term, utm_content. Поля, що можуть бути порожніми, мають значення null, а не порожні рядки. Зміни схеми анонсуються в /changelog з гайдом по міграції.
Чи є посібник з використання Kafka-конс'юмера?
Так - /docs/guides/kafka-firehose описує налаштування bootstrap-сервера, групи конс'юмерів, ротацію клієнтських сертифікатів та приклади коду конс'юмера на Go та Python. Топік надається один на воркспейс; кількість партицій фіксована - 12. Скидання офсету за замовчуванням встановлено на найдавніше (earliest) при першому приєднанні групи. Якщо ви будуєте систему на цьому, закладіть час на моніторинг лагу конс'юмера - це основна точка відмови для команд, які його не налаштували.
Чи можу я об'єднати події кліків із власною таблицею користувачів?
У вашому сховищі даних - так. Стандартний паттерн такий: експортуйте події кліків у BigQuery або Snowflake через запланований експорт, а потім робіть join за UTM-параметрами або кастомним параметром user_id, який ви додаєте до посилань Elido. Elido не зберігає ідентичність користувача в подіях кліків - click_id це випадковий UUID для кожного кліку, не прив'язаний до облікового запису користувача.
Як працює дедуплікація серверних конверсій?
Коли ви надсилаєте POST-запит з подією конверсії на ендпоінт Elido, ви додаєте click_id, який був повернутий у відповіді на оригінальний клік (він передається як параметр запиту в URL призначення). Elido знаходить клік, перевіряє, чи не був він уже атрибутований, і розсилає конверсію в GA4 MP, Meta CAPI або Mixpanel з UTM-контекстом оригінального кліку. Повторні запити з тим самим click_id є ідемпотентними - вони підтверджуються, але не враховуються двічі.
Що станеться, якщо мій Kafka-конс'юмер відстане?
Події зберігаються в топіку протягом 7 днів. Якщо зафіксований офсет вашої групи конс'юмерів відстане більше ніж на 7 днів, старіші події будуть втрачені до того, як конс'юмер їх прочитає. Моніторте лаг конс'юмера; налаштуйте сповіщення при лагу в 6 годин як раннє попередження. Якщо ви втратили дані, які неможливо відновити з топіка, запланований експорт в S3/BigQuery покриє цю прогалину - це хороший бекап для firehose.
Чи містить вивантаження кліків дані інших робочих просторів?
Ні. Вивантаження містять лише події вашого робочого простору й записуються у ваш власний S3-бакет. Прямий аналітичний DSN лише для читання запланований і поки недоступний; коли він з'явиться, доступ буде обмежено вашим робочим простором.
Чи є мінімальний розмір вибірки, після якого когорти кліків стають значущими?
Аналітичне сховище виконує когортний запит на будь-якому обсязі даних - мінімальний поріг не встановлено. Статистична значущість залишається на ваш розсуд. Когорта з 50 кліків покаже результат, але він буде зашумленим. Ми показуємо сирі числа та відсотки; ми не застосовуємо байєсівське згладжування або довірчі інтервали до когортних переглядів. Для формального аналізу експортуйте дані та запускайте модель у своєму сховищі.
Чи можу я відфільтрувати запланований експорт для певної групи посилань?
Так - фільтри експорту підтримують: конкретний домен, ID конкретної кампанії, конкретний тег або діапазон дат. Відфільтрований експорт залишається інкрементальним; наступні запуски додають лише нові події, що відповідають фільтру. Якщо ви додасте нову умову фільтра до існуючого завдання експорту, вам потрібно буде або створити нове завдання, або зробити разовий повний ре-експорт для заповнення історії за новим фільтром.
Читання для аналітика
Розбивка на посилання, атрибуція конверсій, когортне утримання.
Серверне пересилання до GA4, Meta CAPI, Mixpanel.
Специфікація OpenAPI 3.1, схема подій кліків, типізовані SDK на TS / Py / Go.
HMAC-підписані події, політика повторних спроб, Kafka-файрхоз для великих обсягів.
Налаштування вивантаження, схема, шаблони завантаження в BigQuery + Snowflake.
Не впевнені, який кут підходить?
Більшість команд починають з одного і розвиваються у всі чотири. Наша команда продажів може розглянути ваш конкретний стек за 20 хвилин.