Ad slot
Declared, labelled and bounded. Two per article, maximum, and no mobile sticky. The count is a design decision, not an inventory decision.
The budget
The old article template carried six AdSense units plus a sticky mobile unit, wrapped around a summary that averages 147 words. Mobile is 64 per cent of search traffic. On a phone that page is more advertisement than article.
The new budget is two slots on an article, and no mobile sticky. This was agreed on 4 November 2026.
The slot, labelled
HTML
<div class="p234-adslot">
<span style="font-family:var(--p234-font-family-mono);font-size:0.75rem;color:var(--p234-color-ink-subtle)">300 x 250</span>
</div>Where the two go
- One after the first two or three paragraphs, where a reader has committed.
- One after the article body, below the next step module, never above it.
- Reserve the height before the ad loads, so the text does not jump under the reader's eye.
- Never between the headline and the first paragraph.
- Never a sticky unit on mobile.
- Never more than two, whatever the page length.
Why it is in the design system
Ad density is usually treated as a revenue setting and quietly ratchets upward, one slot at a time, with nobody owning the total. Putting the ceiling in the design system makes it a design decision with a number attached, visible on the same page as the component, and changing it means changing this page.
The trade is explicit: at 1,612 users over 28 days the revenue difference between two slots and six is small, and the cost is the 1.18 pages per session that the whole rebuild is aimed at.
Labelling
The slot labels itself "Advertisement" through a pseudo-element, in caption type and subtle ink. This is not decoration: an unlabelled ad that looks like editorial is the thing that makes a reader stop trusting the page.
In the article flow
Official NBS data puts the Lagos pump price at a figure four months old. Semantic search across the archive returns live prices from reporting this week.
Both are accurate, and the distance between them is what a reader came for.
HTML
<div class="p234-prose">
<p>Official NBS data puts the Lagos pump price at a figure four months old. Semantic search across the archive returns live prices from reporting this week.</p>
</div>
<div class="p234-adslot" style="margin:var(--p234-space-7) 0">
<span style="font-family:var(--p234-font-family-mono);font-size:0.75rem;color:var(--p234-color-ink-subtle)">slot 1 of 2</span>
</div>
<div class="p234-prose">
<p>Both are accurate, and the distance between them is what a reader came for.</p>
</div>Tokens this component reads
--p234-color-paper-sunk--p234-color-rule-strong--p234-color-ink-subtle--p234-type-caption-*--p234-radius-sm--p234-space-3--p234-space-5--p234-measure-text--p234-border-hairline