{{-- Advertiser dashboard (all campaigns, or one). $d = Dashboards::advertiser(); $csv = download link. --}} @php use App\Support\Charts; $range = $d['range']; $pct = fn ($a, $b) => $b > 0 ? number_format($a / $b * 100, 2).'%' : '–'; $hoursTable = fn (array $h, string $noun) => ['head' => ['Hour (US Eastern)', ucfirst($noun)], 'rows' => array_map(fn ($k, $v) => [Charts::hour($k), number_format($v)], array_keys($h), $h)]; @endphp @include('charts.range', ['range' => $range, 'csv' => $csv ?? null]) @include('charts.kpis', ['tiles' => $d['kpis']])
US Eastern time.
@include('dash._table', ['table' => $hoursTable($d['hours']['views'], 'views')])Views by state. Places come from each visitor's network address; the address itself is never stored. Places with fewer than {{ $d['min'] }} views are grouped together.
Slot 1 is the first sponsored row in a page of job results.
Views, clicks and spend are exactly what was counted and charged. Breakdowns by place, device, time of day and position start {{ $d['since'] }}, and update every 10 minutes.
@endif