Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Key Innovations

Promovolve’s design choices form a coherent system where each innovation enables the next.

1. The Magazine Format

Traditional: Static rectangles in fixed IAB pixel sizes (300×250, 728×90, 970×250).

Promovolve: Expandable, multi-page creatives. The collapsed view sits in the publisher’s slot like a magazine ad on a page; tapped, it opens into a full-screen overlay the reader can swipe through (cover, story pages, call to action), then collapses again.

Why it matters: Attention is given, not stolen. The advertiser pays for an impression; if the reader chooses to expand, the advertiser earns engaged time. Print-style creative work translates directly. And because the format is a container, not a fixed pixel size, a single creative renders into any slot the publisher offers (see §2).

2. Fluid Creatives

Traditional: Creatives are pinned to specific IAB dimensions. Mismatched slots get letterboxing, scaling artifacts, or no fill.

Promovolve: One creative reflows to fit whatever rectangle the publisher provides. The pipeline (Playwright extraction from a landing page → Gemini rewriting → in-house designer rendering) outputs a layout the slot’s geometry drives at serve time.

Why it matters: Advertisers stop maintaining N variants of every creative. Publishers stop forcing slot dimensions to match available inventory. Small-business advertisers — who never had the resources for N-variant production — can participate.

3. The Dog-Ear (Reader Bookmarks)

Traditional: Readers can’t influence which ads they see. Retargeting is an advertiser-controlled chase.

Promovolve: Readers fold the corner of a creative they want to remember; the next time that advertiser is eligible on a page they visit, the bookmarked creative is the one served. The pin lives in the reader’s browser (IndexedDB) and is signed by a stateless FoldToken so the server never stores who folded what.

Why it matters: An explicit reader vote is more reliable than any inferred preference, and it puts agency on the right side of the table. Pinned re-encounters bypass auction reservation and pacing throttle — the system treats them as free engagement signals.

4. Content-Based, Not User-Based

Traditional: User profiles, cookies, device fingerprinting power ad targeting.

Promovolve: Targeting uses LLM-based content classification (Gemini/OpenAI/Anthropic) to match ads to page topics. No user tracking, no cookies.

Why it matters: Privacy-preserving (no GDPR/CCPA data collection), simpler infrastructure (no profile database), content-value alignment (ads match what the user is currently reading).

5. Recency-Only Monetization

Traditional: Ads on any page, regardless of publication date.

Promovolve: Only content within the 48-hour recency window participates. AuctioneerEntity prunes older classifications every 5 minutes.

Why it matters: Fresh content has higher engagement → higher CTR → better outcomes for all participants. Reduces low-quality inventory.

6. Periodic Batch Auctions

Traditional: One auction per page load.

Promovolve: One auction per crawl (scheduled via Quartz cron) + 5-minute re-auctions.

Why it matters: Decouples auction cost from traffic. Sub-millisecond serving via DData local replica. Enables multi-candidate caching.

7. Fair Selection + Multi-Candidate MAB

Traditional: Single winner per auction.

Promovolve: Per-campaign diversity guarantee at auction time (one creative per campaign first), then Thompson Sampling explores among cached candidates at serve time.

Why it matters: Discovers which creative actually engages users. Graceful degradation on budget exhaustion. Self-correcting (poor creatives lose share naturally).

8. Quality-Adjusted Second-Price Clearing

Traditional: Highest bid wins; second-price (Vickrey) is the gold standard but ignores creative quality.

Promovolve: Score is sampledCTR × CPM^α (α publisher-tunable). The exploiting winner pays the minimum CPM that would still have beaten the runner-up given its sampled CTR — a quality-adjusted second price.

Why it matters: A creative readers click outscores one that merely bids high. There’s no upside to bid shading, so Promovolve runs no campaign-side bid optimizer at all — the auction mechanism itself extracts honest bids.

9. Self-Tuning PI Pacing

Traditional: Simple rules (“spend X% by noon”) or fixed-gain controllers.

Promovolve: PI controller with:

  • Adaptive gains scaled by traffic volatility (CV)
  • Self-tuning overpace multiplier (1.5×–5.0×, adjusts every 20 samples)
  • Oscillation detection (stddev threshold 0.08 → dampening)
  • Leaky integrator (decay 0.995, anti-windup)
  • Cross-day learning (boosts multiplier if budget exhausted early)
  • Traffic shape awareness (separate weekday/weekend 24-hour profiles)

Why it matters: Adapts to any traffic pattern without manual tuning. Learns from past days’ mistakes.

10. Publisher-Side Floor RL

Traditional: Floors are static or set by exchange-side heuristics outside the publisher’s view.

Promovolve: A per-site RL agent tunes the publisher’s minimum floor CPM based on observed bid spread and post-pacing served revenue. Activates only when bid spread is wide enough to make floor adjustments meaningful (>1.5×).

Why it matters: The publisher’s tool, not the exchange’s. Honest second-price clearing for advertisers; floor optimization for the publisher.

11. Buffered At-Least-Once Spend Recording

Traditional: Database writes per impression.

Promovolve: Spend events buffered (500ms timer OR batch of 20), deduplicated via Bloom filter (50K entries, 0.01% FPP), at-least-once delivery with exponential backoff retries.

Why it matters: Reduces persistence load by ~20× while maintaining correctness guarantees.

The Unified Picture

graph TD
    LLM["LLM content classification"] --> Auction["Periodic batch auction<br/>(content changes slowly)"]
    Auction --> Fair["Fair selection<br/>(per-campaign diversity guarantee)"]
    Fair --> DData["DData cache<br/>(multi-candidate, replicated locally)"]
    DData --> Pin["Dog-ear pin check<br/>(reader bookmark wins if eligible)"]
    Pin --> TS["Thompson Sampling<br/>(quality-adjusted score, second-price clearing)"]
    TS --> PI["Self-tuning PI pacing<br/>(smooth delivery within days)"]
    PI --> Spend["Buffered spend recording<br/>(correctness at scale)"]
    PI -.-> FloorRL["Publisher-side floor RL<br/>(slow loop, post-pacing revenue)"]
    Spend --> FloorRL

Each choice enables the next. Remove the magazine format and the dog-ear has nowhere to live; remove fluid creatives and the format collapses back to fixed-size banners; remove quality-adjusted clearing and bid shading returns. Together, they create an ad platform that is fast, learning, privacy-preserving, reader-respectful, and publisher-aligned.