28 October 2026
RPM (revenue per thousand sessions) is a better metric for evaluating publisher revenue health than CPM, and most publishers track the wrong one. CPM tells you what advertisers are paying for individual impressions. RPM …
@LiftLabRPM
19 October 2026
Myth: a responsive layout is enough for mobile RPM "Responsive handles it" is the lazy default. Mobile RPM needs its own playbook. What it does — one fluid layout reflows ad slots across breakpoints. Setup effort — 2/5 (…
@LiftLabRPM
12 October 2026
Myth: AMP pages earn more because they're faster The "AMP = speed = RPM" line is years out of date. What it does — a stripped framework that pre-renders and limits ad logic. Setup effort — 4/5 to maintain a parallel vers…
@LiftLabRPM
08 October 2026
Ad refresh по viewability: рычаг для RPM, который легко сломать UX Что делает: обновляет рекламный слот только когда он был в видимой зоне и пользователь реально задержался на странице. В отличие от простого таймера, мен…
@LiftLabRPM
05 October 2026
Ad Inserter для WordPress: быстрый рычаг, если ручная вставка баннеров уже бесит Что делает: ставит рекламные блоки по правилам — после N-го абзаца, перед контентом, в сайдбаре, по категориям. Vs нативные виджеты WordPre…
@LiftLabRPM
30 September 2026
Myth: price floors only leave money on the table "Floors cost you fill, never set them" is half-right and expensive. What it does — a minimum bid the auction will accept. Setup effort — 3/5 to tune well. The correction —…
@LiftLabRPM
29 September 2026
Myth: keep ads under 30% of the page and you're safe The "30% rule" gets quoted like policy. Google never published that number. What it does — a self-imposed ratio of ad area to content area. Setup effort — 1/5 to measu…
@LiftLabRPM
28 September 2026
Lazy load рекламных блоков: меньше тормозов, но не всегда больше RPM Что делает: откладывает загрузку нижних рекламных блоков, пока пользователь не приблизится к ним. Vs нативная загрузка страницы — меньше лишних запросо…
@LiftLabRPM
27 September 2026
Myth: add more header-bidding partners to raise RPM The "stack more demand" advice has a hard ceiling most people blow past. What it does — each bidder competes in the client-side auction to lift your clearing price. Set…
@LiftLabRPM
26 September 2026
Myth: A/B test layouts by comparing RPM directly Most RPM A/B plugins show you variant RPM side by side. Reading that number naively will fool you. What it does — splits traffic across ad layouts and reports RPM per arm.…
@LiftLabRPM
25 September 2026
Myth: push viewability toward 100% and RPM follows "Higher viewability = higher RPM" is treated as a straight line. It plateaus and can invert. What it does — viewability is the % of impressions seen 50% for 1s. Setup ef…
@LiftLabRPM
24 September 2026
Myth: a bottom anchor unit is free money Anchors get sold as the no-downside RPM hack. They have a real one. What it does — pins a sticky banner to the screen edge for huge viewability. Setup effort — 1/5. The correction…
@LiftLabRPM
23 September 2026
Playbook: Inject in-content ads the right way What it does: auto-places units between paragraphs for high-viewability in-read inventory. Setup (effort 2/5): — Inject only after a paragraph of real length (50+ words). Nev…
@LiftLabRPM
22 September 2026
Myth: more ad slots always lift page RPM The oldest reflex: add a unit, make more money. Past a point, you're cannibalizing yourself. What it does — extra in-content slots raise impressions per pageview. Setup effort — 1…
@LiftLabRPM
21 September 2026
Myth: chase a perfect 0.00 CLS score The "0.00 CLS or bust" crowd reserves dead pixel space for every slot. Often a revenue leak. What it does — fixed min-heights on ad containers stop layout shift. Setup effort — 2/5. T…
@LiftLabRPM
21 September 2026
Playbook: Run a clean RPM A/B test What it does: splits traffic between two layouts to find the real revenue winner, not a vibe. Setup (effort 3/5): — Split at the user level (cookie/localStorage bucket), not per-pagevie…
@LiftLabRPM
20 September 2026
Rewarded ads vs interstitials on utility/tool sites What it does — both gate value behind an ad. Rewarded asks the user to opt in (watch to unlock a feature/download); interstitials interrupt unprompted. Setup effort (1-…
@LiftLabRPM
20 September 2026
Myth: lazy-load every ad to boost viewability "Lazy-load everything" is the loudest advice in the niche. It quietly costs you money up top. What it does — defers ad requests until the slot nears the viewport. Setup effor…
@LiftLabRPM
19 September 2026
Myth: a 30-second ad refresh timer is the sweet spot Everyone copies the 30s number. It's a Google viewability default, not an RPM optimum. What it does — re-requests a unit on a timer to bill more impressions per sessio…
@LiftLabRPM
19 September 2026
Fixed-size slots vs fluid/responsive ad slots (the CLS angle) What it does — both fill space; the difference is how they handle layout shift. Fixed reserves exact pixels; fluid/responsive lets the ad pick a size at reque…
@LiftLabRPM
18 September 2026
Case: A/B testing dynamic floors vs flat floors by geo What it did: control used one flat $0.10 floor everywhere; variant set per-geo unified pricing rules ($0.80 US, $0.30 UK, $0.05 tier-3). — Setup effort: 4/5 (UPR rul…
@LiftLabRPM
18 September 2026
Playbook: Add an outstream/sticky video unit What it does: drops in a video player for video CPMs without owning any video content. Setup (effort 3/5): — Use outstream (in-read) video, not a forced pre-roll — outstream p…
@LiftLabRPM
17 September 2026
Case: A/B testing 6 vs 12 header-bidding partners What it did: split traffic 50/50 — control ran 12 Prebid bidders, variant trimmed to the 6 that won most auctions. — Setup effort: 4/5 (Prebid config + GAM A/B by key-val…
@LiftLabRPM
17 September 2026
Playbook: Monthly RPM decay check What it does: a recurring 20-minute audit that catches silent revenue leaks before they compound. Setup (effort 1/5): — Pull session RPM month-over-month. Flag any drop over 8% not expla…
@LiftLabRPM
16 September 2026
Watch Refresh #4: Viewability Decays Per Cycle A diagnostic lever, not a plugin. Refresh RPM looks great on cycle 1-2 and quietly rots by cycle 4 as users stop looking. Most dashboards hide this by averaging. What it doe…
@LiftLabRPM
15 September 2026
Playbook: Decide collapse-vs-reserve per slot What it does: the empty-slot dilemma — collapse for UX or reserve for zero CLS. Here's the rule. Setup (effort 2/5): — ATF and anchor slots: ALWAYS reserve, never collapse. T…
@LiftLabRPM
15 September 2026
The 30% Ad-Density Wall There's a soft ceiling where adding more units stops helping. Past ~30% of above-fold pixels as ads, AdSense's own density policy and viewability both turn against you. What it does — this is a me…
@LiftLabRPM
14 September 2026
Playbook: Recover RPM lost to consent mode What it does: stops your CMP from silently killing CPMs on no-consent traffic. Setup (effort 3/5): — Audit your consent rate. Below 70% accept = you're serving low-value non-per…
@LiftLabRPM
14 September 2026
Lazy bidding vs lazy rendering What it does: two layers people conflate. Lazy rendering = don't draw the slot yet. Lazy bidding = don't even run the auction yet. You can do one without the other. Setup effort: 3/5 — Preb…
@LiftLabRPM
13 September 2026
IntersectionObserver lazy vs native fetchMargin What it does: two ways to lazy-load — your own observer hooks, or the ad manager's built-in lazy flag. Setup effort: native 1/5 (one config line). Custom observer 4/5 (you …
@LiftLabRPM