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.
Tier 1 slim ribbon · Tier 2 magazine banner
300×250
ON
2. Anatomy of a page (text view)
Same content as the visual above, in tabular row form for quick scanning.
_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_728 | OFF | OFF | OFF | OFF |
below_nav_728 | OFF | OFF | OFF | OFF |
below_hero_728 | ON | ON | ON | ON |
lead_sidebar_300 | ON | ON | ON | ON |
inline_mrec_300_a/b | ON | ON | ON | ON |
video_rail_mrec_300 | ON | ON | ON | ON |
slideshow_top_728 | ON | ON | ON | ON |
slideshow_inter_300 | ON | ON | ON | ON |
bottom_728_a/b/c | 2 of 3 | 3 of 3 (Hublot in c) | 3 of 3 (Amazon in c) | 2 of 3 |
| Sponsor modules | ||||
presented_by_ribbon | — | Slim | Magazine | — |
sponsor_nav_entry | — (greyed slot shown) | Yes (gold) | Yes (orange) | — |
about_sponsor_cta | — | Discover Big Bang | Visit Watch Parties | — |
sponsor_pick_chip | — | Hublot Pick (×2) | Amazon's Choice (×2) | — |
side_skin | — | — | Yes (orange) | — |
shop_the_story_rail | — | — | Yes | — |
end_slate | — | Big Bang Unico | Watch 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. |