@extends('admin.layout') @section('title', 'Ziyaretçi Analizi') @section('page-title', 'Ziyaretçi Analizi') @push('styles') @endpush @section('content')
{{-- ═══ Toolbar ═══ --}}
@foreach ([1 => 'Bugün', 7 => '7 Gün', 30 => '30 Gün', 90 => '90 Gün', 365 => '1 Yıl'] as $days => $label) {{ $label }} @endforeach
Canlı: {{ $liveCount }} sayfa/5dk
{{-- ═══ Stat Kartları ═══ --}}
{{-- Toplam Ziyaretçi --}}

{{ number_format($summary['visitors']) }}

Toplam Ziyaretçi
@php $vc = $summary['visitor_change']; @endphp {{ $vc > 0 ? '+' : '' }}{{ $vc }}%
{{-- Sayfa Görüntüleme --}}

{{ number_format($summary['page_views']) }}

Sayfa Görüntüleme
@php $pc = $summary['pv_change']; @endphp {{ $pc > 0 ? '+' : '' }}{{ $pc }}%
{{-- Benzersiz Ziyaretçi --}}

{{ number_format($summary['unique_visitors']) }}

Benzersiz Ziyaretçi
{{-- Ort. Sayfa Süresi --}}

{{ number_format($summary['avg_duration_ms']) }}ms

Ort. Yüklenme Süresi
{{-- Bounce Rate --}}

%{{ $summary['bounce_rate'] }}

Hemen Çıkma Oranı
{{-- Sayfa / Ziyaretçi --}}

{{ $summary['pages_per_visitor'] }}

Sayfa / Ziyaretçi
{{-- Bot --}}

{{ number_format($summary['bot_count']) }}

Bot Ziyareti
{{-- Hata --}}

{{ number_format($summary['error_count']) }}

Hatalı İstek (4xx/5xx)
{{-- ═══ Günlük Grafik ═══ --}}
Günlük Ziyaretçi & Sayfa Görüntüleme
{{-- ═══ Dağılım Grafikleri (Pie/Doughnut) ═══ --}}
{{-- Cihaz --}}
Cihaz Dağılımı
{{-- Tarayıcı --}}
Tarayıcı Dağılımı
{{-- Platform --}}
Platform Dağılımı
{{-- ═══ En Çok Ziyaret Edilen Sayfalar ═══ --}}
En Çok Ziyaret Edilen Sayfalar
@forelse ($topPages as $i => $page) @empty @endforelse
# Sayfa Görüntüleme Tekil Ort. Süre
{{ $i + 1 }} {{ Str::limit($page['path'], 50) }} {{ number_format($page['views']) }} {{ number_format($page['unique_visitors']) }} {{ $page['avg_duration'] ? number_format($page['avg_duration']) . 'ms' : '—' }}
Henüz veri yok
{{-- ═══ Referrer Kaynakları ═══ --}}
Trafik Kaynakları
@php $refTotal = array_sum($referrers) ?: 1; @endphp @forelse ($referrers as $source => $count) @empty @endforelse
Kaynak Ziyaretçi Oran
{{ $source }} {{ number_format($count) }} %{{ number_format(($count / $refTotal) * 100, 1) }}
Referrer verisi yok
{{-- ═══ Panel Slot Kullanım Dağılımı ═══ --}}
En Çok Kullanılan Panel Slotu / Harita Tipi

Kullanıcıların panelde ana/sol/sağ slotlara en sık taşıdığı harita tipleri (toplam {{ number_format(array_sum($panelSlotUsage['slot_totals'] ?? [])) }} slot değişikliği, {{ $from->format('d.m.Y') }} – {{ $to->format('d.m.Y') }}).

@forelse (($panelSlotUsage['slot_totals'] ?? []) as $slot => $total)
{{ $slot }}
{{ number_format($total) }} değişiklik
@foreach (($panelSlotUsage['by_slot'][$slot] ?? []) as $item)
{{ $item['chart_type'] }} {{ number_format($item['count']) }}
@endforeach
@empty
Henüz slot değişikliği verisi yok.
@endforelse
{{-- ═══ Saatlik Yoğunluk Haritası ═══ --}}
Saatlik Yoğunluk Haritası
@php $dayNames = [1 => 'Paz', 2 => 'Pzt', 3 => 'Sal', 4 => 'Çar', 5 => 'Per', 6 => 'Cum', 7 => 'Cmt']; $maxVal = 1; foreach ($hourlyHeatmap as $dow => $hours) { foreach ($hours as $val) { if ($val > $maxVal) $maxVal = $val; } } @endphp
{{-- Saat başlıkları --}}
@for ($h = 0; $h < 24; $h++)
{{ str_pad($h, 2, '0', STR_PAD_LEFT) }}
@endfor {{-- Günler --}} @foreach ($dayNames as $dow => $dayName)
{{ $dayName }}
@for ($h = 0; $h < 24; $h++) @php $val = $hourlyHeatmap[$dow][$h] ?? 0; $intensity = $maxVal > 0 ? $val / $maxVal : 0; // Renk: beyazdan koyu yeşile $r = (int)(255 - ($intensity * 200)); $g = (int)(255 - ($intensity * 100)); $b = (int)(255 - ($intensity * 200)); $bg = $val > 0 ? "rgb($r,$g,$b)" : '#f5f5f5'; $textColor = $intensity > 0.5 ? '#fff' : '#999'; @endphp
{{ $val > 0 ? $val : '' }}
@endfor @endforeach
{{-- ═══ Son Ziyaretçiler ═══ --}}
Son Ziyaretçiler
@forelse ($recentVisitors as $v) @empty @endforelse
Ziyaretçi Cihaz Platform Tarayıcı Giriş Sayfası Sayfa Zaman
{{ $v->ip ?? '—' }}
@if ($v->referer)
{{ Str::limit($v->referer, 30) }}
@endif
{{ ucfirst($v->device) }} {{ $v->platform ?? '—' }} {{ $v->browser ?? '—' }} {{ Str::limit($v->landing_url, 35) }} {{ $v->total_page_views }} {{ $v->created_at->diffForHumans() }}
Henüz ziyaretçi yok
@endsection @push('scripts') @endpush