Stadio
Spec · For YourBow Team

Ad slot inventory.

Every possible ad position the World Cup / Women's templates can render. Build them ALL into the WP template — toggle which ones SHOW per program via ACF flags. Default state shown is Christine's preference for the World Cup launch; other programs can have different defaults.

Back to index

1. Visual map

Scaled wireframe of a typical Stadio page with every slot rendered as a labeled rectangle. Yellow = ad slot. Yellow-dashed = ad slot off by default. Purple = sponsor module (hard-coded). Green = programmable editorial module (video, slideshow, embeds). Grey = editorial.

Legend

Ad slot — ON728×90 / 300×250 / 320×50 only
Ad slot — OFF (default)Built into template, hidden via ACF flag
Sponsor moduleHard-coded, sponsor_active=true
Programmable editorial moduleVideo player, social embeds (YouTube / TikTok / X), slideshow, fixtures
EditorialAlways on, content from CMS
Embeds = a programmable module.
External-source content (YouTube oEmbed, TikTok embed.js, X/Twitter oEmbed, Instagram embed.js, Vimeo iframe, Facebook embed.js) renders inside the embed_module block. Each platform keeps its native chrome so users recognise the source. See video-C.html "Around the Web" for live examples.

2. Anatomy of a page (text view)

Same content as the visual above, in tabular row form for quick scanning.

above_masthead_728 · optional, off by default 728×90 OFF
topbar (logo + hamburger + search) Always on EDITORIAL
subnav (Groups · Stories · Guides · Women's · WC + Sponsor slot) Always on EDITORIAL
below_nav_728 · DISABLED per Christine's call 728×90 OFF
cat-hero (cat-tag + H1 + subhead, centered) Always on EDITORIAL
variable_widget_area · landing-C only · TBD Embed (scores/brackets/standings/fixtures) Programmable MODULE
below_hero_728 · primary 728 placement (Christine) 728×90 ON
lead article (image + headline + meta) Always on EDITORIAL
groups_rail (4-up cards) Always on EDITORIAL
inline_mrec_300_a + inline_mrec_300_b · side-by-side 300×250 between rails 300×250 (×2) ON
video_module (featured player + Up Next rail) · combined-template Programmable MODULE
video_rail_mrec_300 · inside the Up Next rail 300×250 ON
slideshow_module (horizontal carousel) Programmable MODULE
slideshow_inter_300 · every 3 editorial slides 300×250 ON
stories_rail (4-up cards) Always on EDITORIAL
guides_rail (4-up cards) Always on EDITORIAL
shop_the_story_rail · Tier 2 Premium only (Amazon-style commerce) sponsor_active && tier=2 MODULE
bottom_728_a · bottom_728_b · bottom_728_c · stacked edge-to-edge bands 728×90 (×3) ON
footer Always on EDITORIAL
Mobile (<768px) treatment: every _728 slot swaps to its _320 partner (320×50 mobile banner) automatically via CSS media queries. The 320 partners share the same ACF on/off flag as their 728 counterparts.

3. Slot reference table

Every slot, its dimensions, the ACF flag that toggles it, the GAM slot ID pattern, and the World-Cup-launch default. Copy this table into the YourBow ticket.

Slot ID Position Size ACF flag GAM slot pattern WC launch default
above_masthead_728 Above topbar (very top of page) 728×90 ad_above_masthead /{net}/{section}/above_masthead OFF
below_nav_728 Between section nav and hero 728×90 ad_below_nav /{net}/{section}/below_nav OFF (Christine)
below_hero_728 Between hero/widget area and lead article 728×90 ad_below_hero /{net}/{section}/below_hero ON (Christine primary)
lead_sidebar_300 Right of the lead article photo (2-column layout) 300×250 ad_lead_sidebar /{net}/{section}/lead_sidebar ON (Christine, May 12)
inline_mrec_300_a Between Groups rail and Stories rail (left) 300×250 ad_inline_a /{net}/{section}/inline_a ON
inline_mrec_300_b Between Groups rail and Stories rail (right) 300×250 ad_inline_b /{net}/{section}/inline_b ON
video_rail_mrec_300 Inside the Up Next rail on video module 300×250 ad_video_rail /{net}/{section}/video_rail ON
slideshow_top_728 Above slideshow track (in slideshow-C standalone) 728×90 ad_slideshow_top /{net}/{section}/slideshow_top ON
slideshow_inter_300 Every 3 editorial slides (interstitial) 300×250 ad_slide_cadence (3 or 4) /{net}/{section}/slide_inter_{n} ON
bottom_728_a Bottom of page, edge-to-edge band #1 728×90 ad_bottom_a /{net}/{section}/bottom_a ON
bottom_728_b Bottom of page, edge-to-edge band #2 728×90 ad_bottom_b /{net}/{section}/bottom_b ON
bottom_728_c Bottom of page, edge-to-edge band #3 (sponsor close) 728×90 ad_bottom_c /{net}/{section}/bottom_c VARIES (by sponsor)
Mobile partners (auto-swap below 768px)
{any_728}_mobile Mobile equivalent of any 728 slot above 320×50 Inherits parent slot's flag /{net}/{section}/{slot}_mobile Tracks parent

4. Sponsor-only modules (hard-coded, NOT GAM)

These are not ad slots — they're editorial modules that render only when sponsor_active=true. Hard-coded to avoid layout shift and ad-block edge cases.

Module ID Position Tier Trigger
presented_by_ribbon Above topbar (Tier 1) or as magazine banner above topbar (Tier 2) Tier 1 Tier 2 sponsor_active=true
sponsor_nav_entry In subnav, e.g. "Watch Parties" Tier 1 Tier 2 sponsor_section=true
about_sponsor_cta Inline button in hero (e.g. "Discover Big Bang →" or "Visit Watch Parties →") Tier 1 Tier 2 sponsor_active=true
sponsor_pick_chip Star/letter chip on hand-picked cards (e.g. Hublot Pick, Amazon's Choice) Tier 1 Tier 2 Per-article ACF flag
side_skin Subtle gold/orange edge rules left + right of page Tier 2 sponsor_active=true && tier=2
shop_the_story_rail Commerce rail of products curated by sponsor Tier 2 sponsor_active=true && tier=2 && commerce_partner=true
end_slate Sponsor close before bottom 728 stack Tier 1 Tier 2 sponsor_active=true

5. Default-state matrix per program

Each program (section + sponsor combination) gets its own default state. Editors can override per-page via ACF.

Slot WC · No sponsor WC · Hublot (T1) WC · Amazon (T2) Women's · No sponsor
above_masthead_728OFFOFFOFFOFF
below_nav_728OFFOFFOFFOFF
below_hero_728ONONONON
lead_sidebar_300ONONONON
inline_mrec_300_a/bONONONON
video_rail_mrec_300ONONONON
slideshow_top_728ONONONON
slideshow_inter_300ONONONON
bottom_728_a/b/c2 of 33 of 3 (Hublot in c)3 of 3 (Amazon in c)2 of 3
Sponsor modules
presented_by_ribbonSlimMagazine
sponsor_nav_entry— (greyed slot shown)Yes (gold)Yes (orange)
about_sponsor_ctaDiscover Big BangVisit Watch Parties
sponsor_pick_chipHublot Pick (×2)Amazon's Choice (×2)
side_skinYes (orange)
shop_the_story_railYes
end_slateBig Bang UnicoWatch Parties Hub

6. Build notes for YourBow

Five things to keep in mind as the slot system goes in:

1. Approved sizes only Every ad slot is one of: 728×90, 300×250, 320×50. No exceptions, no "high-impact" oversized creatives. Premium feel comes from editorial modules, not ad sizes.
2. Slot containers always render The DIV exists in the DOM whether the slot is on or off. display:none via the ACF flag — don't conditionally render the wrapper, or the page will jump.
3. ACF flag = single source of truth Each slot has one ACF boolean. Editors flip the flag, no developer roundtrip needed for new sponsor configs.
4. data-position attribute on every slot For QA + analytics. data-position="below_hero", data-gam-slot="/.../below_hero", data-size="728x90". See it in any C-mock.
5. Sponsor modules are hard-coded Presented-By ribbon, sponsor end-slate, side skin — not ad-served. Avoids layout shift and ad-block. Driven by sponsor_active + tier ACF fields.
What this inventory replaces: previously the C-mocks showed only Christine's preferred default state (some slots visible, others hidden). The YourBow team needs to build ALL slots into the WP template and hide-by-flag — not delete-by-design. This page is the canonical list of what to build.