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-ответах сам, без правки шаблонов.