{{-- The campaign editor. $c campaign (or a copy), $mode advertiser|house, $locked (paid: budget, pricing and start are fixed), $action, $submit (button label), $rates, $countries, $regions, $copyOf (optional). --}} @php $old = fn (string $k, $d = null) => old($k, $d); $type = $old('media_type', $c->media_type ?: 'image'); $placements = (array) $old('placements', $c->placements ?? ['results']); $cats = (array) $old('categories', $c->categories ?? []); $placeKeys = (array) $old('places', $c->places ?? []); $pricing = $old('pricing', $c->pricing === 'cpc' ? 'cpc' : 'cpm'); $budget = $old('budget', $c->budget_cents ? $c->budget_cents / 100 : 100); @endphp
@csrf @include('partials.errors') @if (! empty($copyOf))@endif
1 · The placement
Media
@foreach (['image' => 'JPG PNG WebP GIF', 'video' => 'MP4 WebM', 'video_url' => 'YouTube Vimeo Wistia Loom', 'text' => 'No media'] as $k => $hint) @endforeach
2 · Who sees it
Show on
@foreach (\App\Models\Campaign::PLACEMENTS as $k => $label) @endforeach
Recruiting and job ads are never shown on job pages.
Job categories (none = all)
@foreach (config('board.categories') as $cat) @endforeach
Countries and states (none = everywhere)
@forelse ($placeKeys as $key) @php $p = \App\Models\AlertLocation::parseKey((string) $key); @endphp @if ($p && ! $p['is_remote'])@endif @empty Everywhere. @endforelse
3 · {{ $mode === 'house' ? 'Schedule and delivery' : 'Budget and schedule' }}
@if ($mode === 'advertiser') @if ($locked)

Budget {{ \App\Models\Campaign::money($c->budget_cents) }}, {{ $c->rateLabel() }}. The budget and start date are fixed once paid; to spend more, run it again as a new campaign.

@else
@endif @endif
@if ($locked)@else@endif
@if ($mode === 'house')
House campaigns fill slots paid campaigns don't use; higher weight shows more often.
@endif @if ($mode === 'advertiser' && ! $locked)

Your card is held for the budget, not charged. We charge it only when the campaign is approved; if we don't approve it, the hold is released. Unspent budget is refunded when it ends.

@endif