The adult ad industry runs on a quiet assumption that gets passed down through every JuicyAds onboarding, every ExoClick rate sheet, every TrafficStars sales call: opacity is load-bearing. Publishers can’t see how their quality score is computed. Advertisers don’t know which impressions are bots until after they’re billed. Marketplace listings hide the same numbers the platform uses to decide who wins the auction.
Everyone treats this like a feature. It’s the easiest part of the industry to fix.
What "opacity is load-bearing" actually means
Walk an advertiser through the typical buy cycle on any of the big three networks. They deposit money, pick a vertical, set a bid, watch impressions land. After a week they get a report: X impressions served, Y clicks, Z conversion rate. If the numbers underperform, the network’s answer is always the same — “try a different format,” “raise your bid,” “test new creatives.” What they’ll never say is which publisher sites burned your budget, because the per-publisher quality data is the platform’s leverage.
Same thing on the publisher side. You hand a network 30% of gross — sometimes more — in exchange for “optimization.” Your dashboard shows aggregate revenue per day. It does not show which advertisers your traffic underperformed for, what their opinion of your inventory was, or how your quality grade compares to the publisher next to you in the same vertical. That information exists. The network just doesn’t share it with you.
Each side stays on the network because the alternative — building a direct relationship between every publisher and every advertiser — is logistically worse than the opacity. The opacity is the price of admission to a working marketplace.
The technical part is easier than people pretend
Every signal an ad network keeps private is a number derived from data that already exists. Quality score? A function of viewability rate, click-fraud incidence, repeat-visitor patterns, and a handful of compliance flags. Each one is a SQL query away. IVT (invalid traffic) rate? Datacenter ASN check + viewability + focus check, all of which run client-side. The hard part isn’t computing the numbers. It’s deciding to publish them.
So we did. The SiteScan methodology page lists every input to a publisher’s grade and how each one is weighted. The dashboard at /dashboard/marketplace/[id]shows the breakdown per site. Same numbers every side sees. Nothing reserved for premium accounts. Nothing rolled into an unsourced “optimization” signal.
Three concrete things we did differently
1. Public quality scores
Every publisher’s SiteScan grade is identical across the whole platform. Same A/B/C the advertiser sees in the marketplace, the publisher sees on their own dashboard, the moderator sees when reviewing creatives. No private “true” score that’s different from the public one.
2. Automatic invalid-traffic refunds
Invalid impressions don’t go on the invoice in the first place. The ad-server tags them at serve time, the event worker drops them from the daily spend rollup, and the advertiser sees the discount line-item-by-line-item in their billing tab. We’re not the only network that flags invalid traffic — most do — but we’re the only one (that we’ve seen) that deducts it pre-bill instead of running a credit dispute process. The credit-back model is great for cashflow if you’re the platform. We figured the advertiser cares more.
3. Seven-day publisher payouts
Net-30 is the industry default for publisher payouts, with a $50 minimum and a payment-method tax on top. We pay weekly past a $50 minimum, with the rail fee passed through at cost. Doesn’t cost us much extra — the money is the publisher’s, holding it for 30 days is a free loan, and nobody who treats their publishers as the actual customer should be writing themselves a free loan.
Things we’re still figuring out
Most of the hard parts of running an adult ad network are not engineering. The hard parts are: getting the payment processor underwriting through, keeping the chargeback ratio under network thresholds, moderating creatives without becoming the bottleneck for legitimate advertisers, refusing the wrong sites without becoming the morality police for the right ones, and dealing with the periodic policy churn from upstream vendors.
We don’t have all of that figured out. We’re a solo operator and an AI coding partner running an alpha with a small invited batch of publishers. We’re posting the build notes as we go — failures, decisions, and rewrites — on this blog and on the public changelog. The whole point of the project is that secrecy isn’t the moat. The moat is actually doing the work.
If you’re reading this and you run an adult site
Sign up. The alpha is invite-tilted but we’re onboarding publishers manually right now and reviewing every domain that comes through. The earnings are real but variable while the network is small. If you’re willing to be a name on the directory while we shake out the kinks, you’ll get outsized attention from the support side, real input on the roadmap, and a seat that we’ll hold against future rate-card changes.
If you’re an advertiser, the doors aren’t open yet — we’re inventory-first by design — but the waitlist is warm. We’ll open advertiser signups once the first wave of publishers passes the 90-day stability mark.
Talk to us: [email protected].