Skip to content

Default house ad fallback (never-blank ad slots) - #89

Merged
ralyodio merged 1 commit into
masterfrom
default-house-ads
Jul 7, 2026
Merged

ralyodio merged 1 commit into
masterfrom
default-house-ads

Conversation

@ralyodio

@ralyodio ralyodio commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

When a slot has no eligible/in-budget campaign, serveAd returned null and the publisher's unit rendered blank. This adds a default CrawlProof house ad so slots are never empty.

  • lib/ads/house.ts — image-based house ad using default AI-generated promo artwork (public/ads/house/*.webp, ~8–10KB) with an overlaid "Your ad here — crypto PPC ads" pitch that links back to CrawlProof. Not metered or billed.
  • Wired into serveAd for both the no-creative and out-of-budget paths; invalid/inactive slots and format mismatches still return null (no ad).

Only touches the ads module + two image assets.

🤖 Generated with Claude Code

serveAd() returned null when a slot had no eligible/in-budget campaign, leaving
publisher units blank. Now it falls back to a CrawlProof house ad so a slot is
never empty:

- lib/ads/house.ts: renders an image-based house ad from default AI-generated
  promo artwork (public/ads/house/*.webp) with an overlaid "Your ad here" pitch
  linking back to CrawlProof. Not metered or billed.
- Wired into serveAd for both the no-creative and out-of-budget cases; invalid/
  inactive slots and format mismatches still return null.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown

vu1nz Security Review

0 finding(s) in PR #?

No security issues found.

@ralyodio
ralyodio merged commit 5b49eb6 into master Jul 7, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant