Stadio Mockup Index · v2
Ukraine Dev Team · Landing Page System

Six Mockups.
Two Audiences.

Each page type has two options, A runs regular GAM ads, B is a premium sponsor takeover with desktop side-skins (gutters). Switch between the Gallery view for stakeholder review and WordPress Handoff view for the template, ACF group, Sponsor CPT and GAM mapping.

For the Ukraine dev team. Three templates, six mockups, one shared Sponsor CPT. Every “B” mockup is the same template as its “A” pair, just with a Sponsor relationship populated and a takeover layout flag set. Build once, swap sponsor to reskin. The GAM slots are identical per template regardless of A/B; key-values change based on sponsor.
1Mock → WordPress Mapping
Template Mockups WP Template File ACF Field Group Sponsor CPT GAM Slots
Category Landing
A · B
landing-A.html
landing-B.html
template-category-landing.php group_category_landing sponsorship (relationship) /stadio/landing/header-728x90
/stadio/landing/inline-300x250
/stadio/landing/gutter-L
/stadio/landing/gutter-R
/stadio/landing/interscroller-mobile
Video Hub
A · B
video-A.html
video-B.html
template-video-hub.php group_video_hub sponsorship (relationship) /stadio/video/top-728x90
/stadio/video/pre-roll-vast
/stadio/video/rail-300x250
/stadio/video/gutter-L
/stadio/video/gutter-R
/stadio/video/interscroller-mobile
Slideshow
A · B
slideshow-A.html
slideshow-B.html
template-slideshow.php group_slideshow sponsorship (relationship) /stadio/slideshow/top-728x90
/stadio/slideshow/mid-interstitial
/stadio/slideshow/footer-728x90
/stadio/slideshow/gutter-L
/stadio/slideshow/gutter-R
/stadio/slideshow/interscroller-mobile
2Sponsor CPT & ACF Field Groups

CPT: sponsorship

Post type
sponsorship, public false, show_in_rest true
Title
textSponsor display name (e.g. “Amazon”)
logo
imageSquare transparent PNG/SVG, 400×400 min
logo_wordmark
imageHorizontal wordmark SVG for sponsor bar
primary_color
colorHex, drives --sp CSS var
accent_color
colorHex, drives --sp-ink CSS var
cta_url
urlSponsor landing target
cta_label
texte.g. “Shop Now on Amazon”
gutter_L
imageLeft skin art, 320×1200 min
gutter_R
imageRight skin art, 320×1200 min
interscroller_creative
image or mp49:16 mobile interscroller, 1080×1920
gam_kv_sponsor
textGAM key-value (e.g. sponsor=amazon)

group_category_landing

layout_mode
selectstandard | takeover
hero_eyebrow
text
hero_title
text
hero_image
imageFull-bleed 2400×1200
shop_rail
repeaterimage, name, price, cta_url
editorial_picks
relationshipto post
sponsor
relationshipto sponsorship (nullable)

group_video_hub

layout_mode
selectstandard | takeover
featured_video
oembedor VAST URL
featured_title
text
up_next
repeatervideo ref, title, duration
featured_grid
relationshipto post type=video
sponsor
relationshipto sponsorship

group_slideshow

layout_mode
selectstandard | takeover
slideshow_title
text
slides
repeaterimage, caption, credit
mid_interstitial_at
numberslide index for mid ad
sponsor
relationshipto sponsorship
3Template Stub (shared pattern)
<?php
/* Template Name: Category Landing */
get_header();

$layout  = get_field('layout_mode');
$sponsor = get_field('sponsor');
$is_takeover = ($layout === 'takeover' && $sponsor);

// GAM targeting: pass sponsor slug as key-value
if ($is_takeover) {
  $sp_slug = get_field('gam_kv_sponsor', $sponsor->ID);
  add_action('wp_head', fn() => printf(
    '<script>googletag.pubads().setTargeting("sponsor","%s");</script>',
    esc_js($sp_slug)
  ));
}
?>

<?php if ($is_takeover): ?>
  <!-- Gutter skins only render when sponsor exists and viewport ≥ 1200px (CSS) -->
  <aside class="skin left">
    <img src="<?= esc_url(get_field('gutter_L', $sponsor->ID)) ?>">
  </aside>
  <aside class="skin right">
    <img src="<?= esc_url(get_field('gutter_R', $sponsor->ID)) ?>">
  </aside>
<?php endif; ?>

<main class="page-category <?= $is_takeover ? 'is-takeover' : '' ?>">
  <?php get_template_part('parts/landing/hero'); ?>
  <?php if ($is_takeover) get_template_part('parts/landing/shop-rail', null, ['sponsor'=>$sponsor]); ?>
  <?php get_template_part('parts/landing/editorial-grid'); ?>
</main>

<?php get_footer(); ?>
4Dev Checklist