@include('livewire.admin.seodashboards.tab') {{-- Header --}}

GSC Traffic Dashboard

Google Search Console — daily traffic vs target  ·  {{ $month }}

{{-- Filter (Converted to Livewire form submit) --}}
{{-- Per-month target breakdown strip --}} @if(!empty($summary['monthly_targets']) && $summary['monthly_targets']->count())
@foreach($summary['monthly_targets'] as $mt)
{{ number_format($mt['daily']) }} / day {{ $mt['label'] }} Monthly: {{ number_format($mt['monthly']) }}  ·  {{ $mt['days_in_month'] }} days
@endforeach @php $coveredKeys = $summary['monthly_targets']->pluck('month_key')->toArray(); $allKeys = collect(); $c = \Carbon\Carbon::parse($startDate)->startOfMonth(); $e = \Carbon\Carbon::parse($endDate)->startOfMonth(); while ($c->lte($e)) { $allKeys->push($c->format('Y-m')); $c->addMonth(); } $missingMonths = $allKeys->diff($coveredKeys); @endphp @foreach($missingMonths as $mk)
{{ number_format($fallbackDailyTarget) }} / day {{ \Carbon\Carbon::createFromFormat('Y-m', $mk)->format('F Y') }} ⚠ No target in DB — using fallback
@endforeach
@endif {{-- Achievement ring --}} @php $overallPct = isset($summary['total_target']) && $summary['total_target'] > 0 ? min(100, round($summary['total_actual'] / $summary['total_target'] * 100)) : 0; $radius = 44; $circumference = 2 * M_PI * $radius; $dashOffset = $circumference * (1 - $overallPct / 100); @endphp
{{ $overallPct }}%achieved
Total actual
{{ number_format($summary['total_actual'] ?? 0) }}
Total target
{{ number_format($summary['total_target'] ?? 0) }}
Days met target
{{ $summary['days_met'] ?? 0 }} / {{ $summary['total_days'] ?? 0 }}
Avg achievement
{{ isset($summary['avg_achievement']) && $summary['avg_achievement'] > 0 ? round($summary['avg_achievement'] * 100) . '%' : '—' }}
Total views
{{ number_format($summary['total_view'] ?? 0) }}
Days with data
{{ $summary['days_with_data'] ?? 0 }} / {{ $summary['total_days'] ?? 0 }}
{{-- Summary mini cards --}}
Total target
{{ number_format($summary['total_target'] ?? 0) }}
Total actual
{{ number_format($summary['total_actual'] ?? 0) }}
Achievement
{{ $overallPct }}%
Days met
{{ $summary['days_met'] ?? 0 }} / {{ $summary['total_days'] ?? 0 }}
Total views
{{ number_format($summary['total_view'] ?? 0) }}
Days with data
{{ $summary['days_with_data'] ?? 0 }} / {{ $summary['total_days'] ?? 0 }}
{{-- Chart --}}

Target vs Actual — {{ $month }}

{{-- wire:ignore is important taaki Livewire canvas ko bar bar delete na kare --}}
{{-- Table --}}
@forelse($rows as $row) @php $has = $row->actual_traffic > 0; $cls = !$has ? 'zero' : ($row->pct_achievement >= 1 ? 'met' : 'missed'); $lbl = !$has ? 'No data' : ($row->pct_achievement >= 1 ? 'Met ✓' : 'Missed'); $pct = $row->pct_achievement > 0 ? round($row->pct_achievement * 100) . '%' : '—'; $barW = $row->target_traffic > 0 ? min(100, round($row->actual_traffic / $row->target_traffic * 100)) : 0; @endphp @empty @endforelse
Date Daily Target Actual Total Views Impressions Achievement Progress
{{ \Carbon\Carbon::parse($row->date)->format('d M Y') }}
{{ \Carbon\Carbon::parse($row->date)->format('F Y') }}
{{ number_format($row->target_traffic) }} {{ number_format($row->actual_traffic) }} {{ number_format($row->total_view) }} {{ number_format($row->total_impressions) }} {{ $lbl }} {{ $barW . '%' ?? $pct }}
{{ $barW }}%
No data found for {{ $month }}. Try a different date range.