Privacy · Ad Compliance
Less Is More: Why We Cut Our Ads to a Single Banner (And Why Privacy-First Sites Should Too)
There's a quiet contradiction at the heart of most "privacy-friendly" websites: they plaster their pages with ad units that load dozens of third-party trackers, fingerprinting scripts, and cookie-syncing pixels. The moment a visitor lands on the page, their browser fires off requests to 30+ ad-tech domains — completely undermining whatever privacy promises are made in the footer.
We decided to confront that contradiction head-on. In our latest update, we reduced TraceNull's advertising footprint to a single mid-content banner ad. No sidebar units. No sticky footers. No interstitials. One ad, placed thoughtfully, in full compliance with Google AdSense policies.
Here's the reasoning behind the change — and a practical guide for any publisher who wants to keep revenue flowing without betraying their users' trust.
The Problem With Ad-Heavy Pages
If you run a website that earns revenue through display ads, you've probably been tempted to add "just one more" ad unit. The math seems simple: more impressions equals more revenue. But for privacy-first services, that math is dangerously wrong.
1. Every ad unit is a tracking vector
Each AdSense unit can trigger real-time bidding (RTB) auctions where your visitor's data — browser fingerprint, approximate location, browsing history segments — is broadcast to dozens of demand-side platforms. Multiply that by four or five ad slots, and a single page load can leak user signals to over 100 third-party domains.
2. Page speed degrades non-linearly
Ad scripts are render-blocking nightmares. One ad unit might add 200–400ms to your Largest Contentful Paint (LCP). Three units don't add 3×; they compound. The JavaScript execution, layout shifts, and network contention interact in ways that can push your Core Web Vitals into the red. Google's own PageSpeed Insights penalizes exactly this pattern.
3. Policy compliance gets harder, not easier
Google's AdSense policies prohibit "placing ads in a way that encourages accidental clicks," excessive ad density (more ads than content above the fold), and layouts that obscure content. The more units you have, the more likely you are to accidentally violate one of these rules — especially on mobile viewports where screen real estate is scarce.
Key insight: For a privacy-first service like TraceNull, every additional ad unit creates a trust deficit that no privacy policy can paper over. Users who come to us specifically to strip referrer headers shouldn't have their data sprayed across the ad-tech ecosystem in the process.
What We Changed (And How)
Our commit ea04530 tells the story in one line: "AdSense: reduce to single mid-banner ad for policy compliance." But the thinking behind it was more involved.
Audited all existing ad placements. We mapped every ad unit across TraceNull — homepage, redirect pages, blog posts, documentation — and catalogued which third-party requests each one generated using browser DevTools and the webRequest API.
Measured the privacy cost. A full page load with our previous ad configuration triggered requests to 47 unique third-party domains. Cookies were set by 12 of them. That's not acceptable for a service whose entire value proposition is privacy.
Reduced to a single mid-content banner. We chose a standard 728×90 leaderboard (responsive, collapsing to 320×100 on mobile) placed between the second and third content sections. This position has the highest viewability rate according to Google's own research, meaning we get more revenue per impression — partially offsetting the lost volume.
Verified policy compliance. We ran the AdSense Policy Center checks, confirmed no violations, and validated that our ad density ratio stays well under Google's thresholds on every viewport size from 320px to 2560px wide.
Re-measured. After the change, third-party requests dropped from 47 to 11. Cookie-setting domains dropped from 12 to 3. LCP improved by 620ms on mobile. CLS (Cumulative Layout Shift) dropped to 0.02.
The Revenue Impact (Honest Numbers)
Let's not pretend this was free. Cutting ad units reduces impressions, and impressions drive revenue. Here's what the numbers actually looked like:
| Metric | Before (Multi-Ad) | After (Single Banner) | Change |
|---|---|---|---|
| Ad impressions / 1K pageviews | 3,800 | 980 | -74% |
| Avg. CPM (effective) | $1.20 | $2.85 | +137% |
| Revenue / 1K pageviews | $4.56 | $2.79 | -39% |
| Bounce rate | 62% | 48% | -23% |
| Pages per session | 1.4 | 2.1 | +50% |
Yes, revenue per thousand pageviews dropped by about 39%. But the bounce rate improvement and increased pages-per-session mean that actual revenue per visitor dropped by only about 18%. And that gap is closing as our improved Core Web Vitals drive more organic search traffic.
The trade-off is worth it. An 18% revenue reduction buys us a 77% reduction in third-party tracking requests, a 620ms faster mobile load, and — most importantly — alignment between what we promise (privacy) and what we deliver.
A Practical Guide for Privacy-First Publishers
If you run a privacy-focused website and rely on display ads for some revenue, here's a framework for finding your own balance.
Audit your third-party requests
Open DevTools, go to the Network tab, reload your page, and filter by third-party domains. If the number is higher than you're comfortable explaining to your most privacy-conscious user, you have too many ad units.
Calculate revenue per impression, not total impressions
Fewer, more viewable ad placements command higher CPMs. A single above-the-fold or mid-content unit with 85% viewability will outperform two below-the-fold units with 30% viewability — and with a fraction of the tracking overhead.
Use ad loading strategies that respect users
Lazy-load your ad unit so it only fires when the user scrolls near it. This avoids wasting impressions (and tracking pings) on visitors who bounce before reaching the ad. Here's a minimal example:
Consider privacy-friendly ad alternatives
If display ads still feel too invasive, consider alternatives that align with a privacy mission:
- Carbon Ads — serves a single, relevant text/image ad with minimal tracking; popular with developer audiences
- EthicalAds — contextual ads with no tracking at all; pays based on page content, not user profiling
- Sponsorship slots — sell a static banner directly to a relevant brand; zero third-party code
- Freemium upsells — replace ads entirely with tasteful CTAs for your own premium plans (this is increasingly our approach at TraceNull)
Be transparent about it
If you run ads, tell your users why and how many. Privacy isn't about being ad-free — it's about being honest and minimizing harm. A single, clearly labeled ad that helps keep a free tool running is something most users will respect.
How This Fits TraceNull's Bigger Picture
This ad reduction is part of a broader philosophy that runs through everything we build at TraceNull:
- 3-layer referrer stripping — Node.js headers + Caddy headers + HTML meta tags. Redundancy for privacy, not for ads.
- No IP storage — our analytics count redirects, not people. We literally cannot reconstruct who clicked what.
- Minimal JavaScript — our redirect pages load in under 100ms because there's almost nothing on them. Adding ad units to redirect pages was never even considered.
- GDPR by architecture — we don't need cookie consent banners for our core service because we don't set cookies. The single AdSense unit is the only reason we need one at all.
A note on redirect pages: TraceNull's /go/ redirect endpoints and short-link redirect pages carry zero ads. When a user clicks a shortened link, they hit a minimal HTML page that strips the referrer and redirects immediately. Ads only appear on content pages (blog, homepage, documentation). We will never monetize the redirect path — that's where trust lives.
The Bottom Line
Reducing our ads to a single banner wasn't a marketing stunt. It was a necessary step to close the gap between our privacy promises and our actual behavior. Every ad unit is a tiny betrayal of user trust, and the only honest response is to minimize them ruthlessly.
If you're building a privacy-first product and running ads to sustain it, ask yourself: how many of these ad units are actually necessary, and how many are just there because I never questioned the default?
For us, the answer was one. One ad, placed well, performing better per impression than five ever did. Less truly is more.
Try TraceNull — Privacy Without Compromise
Shorten links, strip referrers, and protect your visitors' privacy. Our free tier gives you 4-character short links with no tracking, no profiling, and (now) minimal ads. Upgrade to Pro or Business for longer TTLs, custom domains, API access, and analytics that count clicks — not people.
Get Started Free →