@extends('layouts.admin') @section('content')
{{ $realtimeVisitors }} Active now (last 30m) • Privacy-First Analytics

Audience & Visitor Intelligence

Real-time traffic metrics, top tools usage, referral sources, and device demographics.

Unique Visitors
{{ number_format($uniqueVisitors) }} real humans

De-duplicated daily unique visitor hashes

Total Pageviews
{{ number_format($totalPageviews) }} impressions

Avg. {{ $avgViewsPerVisitor }} views per visitor

Live Concurrency
{{ $realtimeVisitors }} in last 30 mins

Live audience browsing right now

Crawlers Isolated
{{ number_format($botsFiltered) }} bots ignored

Search bots filtered to protect stat accuracy

Traffic Activity Trend

Daily breakdown of Pageviews and Unique Visitors

Pageviews Unique Visitors
@php $maxVal = 1; foreach ($timelineData as $point) { if ($point['views'] > $maxVal) $maxVal = $point['views']; } @endphp
@foreach($timelineData as $point) @php $viewsHeight = max(4, round(($point['views'] / $maxVal) * 160)); $uniquesHeight = max(2, round(($point['uniques'] / $maxVal) * 160)); @endphp
{{ $point['label'] }}: {{ $point['views'] }} views ({{ $point['uniques'] }} unique)
{{ $point['label'] }}
@endforeach

Top Pages & Tools

{{ count($topPages) }} entries
@if($topPages->count() > 0)
@foreach($topPages as $page) @php $pagePct = $totalPageviews > 0 ? round(($page->views / $totalPageviews) * 100, 1) : 0; @endphp
/{{ $page->path }} @if($page->tool_slug) Tool @endif
{{ number_format($page->views) }} views ({{ $page->uniques }} unique)
@endforeach
@else
No visitor logs recorded for this period yet.
@endif

Acquisition & Sources

Referral channels
@if($topSources->count() > 0)
@foreach($topSources as $source) @php $sourcePct = $totalPageviews > 0 ? round(($source->views / $totalPageviews) * 100, 1) : 0; @endphp
{{ $source->referrer_source ?: 'Direct' }}
{{ number_format($source->views) }} ({{ $sourcePct }}%)
@endforeach
@else
No source data recorded yet.
@endif

Device Types

@forelse($devices as $dev) @php $devPct = $totalPageviews > 0 ? round(($dev->count / $totalPageviews) * 100, 1) : 0; @endphp
{{ $dev->device_type }} {{ $dev->count }} ({{ $devPct }}%)
@empty

No device data

@endforelse

Operating Systems

@forelse($operatingSystems as $osItem) @php $osPct = $totalPageviews > 0 ? round(($osItem->count / $totalPageviews) * 100, 1) : 0; @endphp
{{ $osItem->os }} {{ $osItem->count }} ({{ $osPct }}%)
@empty

No OS data

@endforelse

Top Browsers

@forelse($browsers as $brw) @php $brwPct = $totalPageviews > 0 ? round(($brw->count / $totalPageviews) * 100, 1) : 0; @endphp
{{ $brw->browser }} {{ $brw->count }} ({{ $brwPct }}%)
@empty

No browser data

@endforelse

Recent Live Visitor Stream

Last 15 requests
@forelse($recentVisitors as $visit) @empty @endforelse
Path Device / OS Browser Referrer Time
/{{ $visit->path }} {{ $visit->device_type }} • {{ $visit->os }} {{ $visit->browser }} {{ $visit->referrer_source }} {{ $visit->created_at ? $visit->created_at->diffForHumans() : 'Just now' }}
Waiting for live visits... Start browsing the site to see real-time updates!

Google Analytics 4 (GA4) Dual-Tracking

@if($gaEnabled && !empty($gaId)) Active: {{ $gaId }} @else Optional / Disabled @endif

Our built-in analytics engine works 100% reliably without external dependencies or ad-blocker blocking. If you also want to synchronize with Google Analytics 4, you can enable it in System Settings with your Measurement ID.

Configure GA4
@endsection