Cloudflare пропонує два типи аналітики: вбудовану в Dashboard (дані з CDN) та Cloudflare Web Analytics (окремий продукт із JS-трекером). Обидва безкоштовні та не використовують cookies.
Вбудована аналітика Cloudflare Dashboard
Analytics → Traffic. Показує:
- Requests (запити) — загальна кількість HTTP-запитів
- Bandwidth — обсяг трафіку
- Cache Hit Rate — відсоток запитів із кешу
- Threats blocked — заблоковані загрози
Cloudflare Web Analytics (безкоштовно)
Analytics → Web Analytics → Add a site. Додайте легкий JS-трекер на сайт:
<script defer src='https://static.cloudflareinsights.com/beacon.min.js'
data-cf-beacon='{"token": "your_token"}'></script>
Що показує Web Analytics
| Метрика | Cloudflare Analytics | Google Analytics 4 |
|---|---|---|
| Pageviews | ✅ | ✅ |
| Унікальні відвідувачі | ✅ (приблизно) | ✅ |
| Core Web Vitals | ✅ (реальні дані) | ✅ |
| Конверсії | ❌ | ✅ |
| Воронки | ❌ | ✅ |
| Cookies | ❌ Немає | ⚠️ Cookie |
| GDPR | ✅ Без згоди | ⚠️ Потрібен банер |
GraphQL Analytics API
Обидва типи аналітики доступні через GraphQL API — корисно, якщо потрібен експорт даних у зовнішню систему звітності. Запит вимагає API Token із правом Analytics:Read. Такий самий токен підходить і для автоматизації через API і Terraform:
curl -X POST "https://api.cloudflare.com/client/v4/graphql" \
-H "Authorization: Bearer $CF_API_TOKEN" \
-H "Content-Type: application/json" \
--data '{"query":"query { viewer { zones(filter: {zoneTag: \"ZONE_ID\"}) { httpRequests1dGroups(limit: 7) { dimensions { date } sum { requests } } } } }"}'
Відповідь приходить у форматі JSON із готовими агрегатами по днях — не потрібно парсити сирі логи.
Типові проблеми з Web Analytics
Лічильник показує нуль відвідувань
Перевірте, що скрипт beacon.min.js справді завантажується на сторінці (вкладка Network у DevTools, фільтр за cloudflareinsights.com). Часті причини відсутності даних: невірний токен data-cf-beacon, скрипт вставлено в закешовану статичну версію сторінки без оновлення кешу, або Content-Security-Policy блокує домен static.cloudflareinsights.com.
Цифри не збігаються з Google Analytics
Розбіжність у 10–20% — нормальна. Web Analytics не використовує cookies і не може дедуплікувати відвідувача між пристроями чи сесіями так само, як GA4 з client ID. Крім того, GA4 втрачає частину трафіку через блокувальники реклами й налаштування приватності браузера, а Web Analytics — ні, бо не вимагає згоди на cookies.
Перевірка що трекер працює
# У консолі браузера на сторінці сайту:
document.querySelector('script[data-cf-beacon]')
# Або через Network tab: має бути запит
# GET https://cloudflareinsights.com/cdn-cgi/rum зі статусом 204
Якщо запит повертає 204 No Content — трекер працює, дані з'являться в Dashboard протягом кількох хвилин. Сайт при цьому вже має бути підключений до Cloudflare — див. інструкцію з підключення сайту.
Коли вбудованої аналітики недостатньо
- Потрібні воронки продажів і події конверсії — використовуйте GA4 або Plausible/Matomo паралельно з Web Analytics.
- Потрібна сегментація аудиторії за джерелами трафіку для ремаркетингу — Web Analytics не зберігає ці дані.
- Потрібне історичне вивантаження сирих логів запитів — для цього потрібен Logpush (доступний не на всіх тарифах) або стороння служба логування.
Дані у вбудованій аналітиці Dashboard зберігаються обмежений період, який залежить від тарифу, — для довгострокової статистики вивантажуйте агрегати через GraphQL API у власне сховище (базу даних чи BigQuery), а не покладайтеся лише на історію в інтерфейсі.
Ще одна часта помилка — вставити токен data-cf-beacon з іншого домену, скопійований зі старого проєкту через неуважність. Токен прив'язаний до конкретного сайту в розділі Web Analytics → Add a site, і дані з чужим токеном просто не потраплять у потрібний звіт, при цьому видимої помилки в браузері не буде.
Якщо потрібно швидко порівняти навантаження до і після змін на сайті, використовуйте фільтр за датами в Dashboard → Web Analytics — там же можна вивантажити CSV із відвідуваннями по сторінках для звіту клієнту.
Web Analytics можна підключити і без встановлення повноцінного beacon-скрипта на кожну сторінку вручну — якщо сайт уже проксується через Cloudflare (Proxied DNS), достатньо ввімкнути автоматичну вставку тега в Dashboard, і він з'явиться в усіх HTML-відповідях сам, без правок шаблонів.