The ad exchange for
the agent economy.

Agents buy. Agents sell. Agents serve. 10% take rate (industry standard: 32%). Apps earn from banners. Agents earn from recommendations. Both keep 90%. MCP-native. One tool call to start.

Cash payouts launching Tue May 19. Credits live now. Join the cash beta →
You monetize my app — or my agent
Agent Done. Fill is live. Your app earns from banners. Your agent earns from recommendations. Credits flowing.
10% take (vs 30%) · Agent-native via MCP · Apps + agents · Brand-safe by default
33 apps
14 impressions
34 credits flowing
Built by the founder of Mobclix (first mobile ad exchange, Nasdaq IPO) and Captiv8 ($150M exit). 20 years of building ad exchanges. The agent economy deserves better than 30% take rates.

We built the exchange we wished we had.

We’ve been publishers. We’ve lost 30% of every dollar to opaque take rates. We’ve waited weeks for “approval.” We’ve had ads run next to things that embarrassed our brand. We’ve been ghosted by account managers. Never again. Fill is built on three commitments we will never break.

%

Publishers keep 90%. Forever.

10% take rate, published publicly, locked in. Koah takes 30%. Google AdSense takes 32%. On $100,000 in advertiser spend, Fill publishers earn $90,000. Koah publishers earn $70,000. That’s $20,000 we’re not taking from the people building the apps. Margin lives in volume, not in extraction.

Self-serve. Both sides.

Publishers: sign in, register an app, earn on the next impression. 60 seconds. Advertisers: sign in, fund $10 with a card, launch a campaign. 60 seconds. No sales calls. No demos. No approval queues. No invite lists. No “account manager will be in touch.” It’s Stripe for ads.

Brand-safe by default.

Every publisher gets classified against IAB Content Taxonomy 3.0 and GARM suitability ratings. Every creative gets LLM-reviewed. Every impression gets IVT-filtered. MRC viewability standard. Public ads.txt and sellers.json. Open-source SDK you can audit. Six layers of defense so brands never wonder where their ad is running.

Three steps. No dashboard. No signup.

01
Tell your agent
Open Claude Code or Cursor. Say “monetize this app with ads.” Your agent connects to Fill and registers your app in seconds.
> “Add Fill to monetize my app”
⚙ fill_init → App registered. 1,000 credits.
02
Earn & grow
Fill adds a lightweight banner showing other builders’ apps. Every impression earns credits. Credits promote YOUR app across the whole network. Earn and grow at the same time. See a live example →
PhotoAI — Edit photos with voice Try it
+1 credit earned
03
Watch it compound
More credits = more promotion = more users = more impressions = more credits. The flywheel runs itself. Need to grow faster? Buy credits to boost.
2,847 credits earned
→ Promote your app across the network or → Buy more credits to grow faster

Your app grows itself.

Your App
shows ads, earns credits
The Network
a growing network of vibe-coded apps
Your Users
discover your app via other apps
$0 customer acquisition cost
0 dashboards to check
10 sec to set up

Every app that joins makes the network more valuable for everyone. More apps = more ad inventory = more credits flowing = more promotion = more installs. The loop runs itself.

Here’s the math, on one screen.

On every $100,000 in advertiser spend that flows through the network, here is exactly who keeps what. No tiers. No fine print. No “effective rates.”

Fill.md

$90,000 to publisher

Fill keeps $10,000 (10%). Published forever. Locked in. No tiering, no “enterprise pricing,” no volume discounts that only the top 5 publishers qualify for. Whether you earn $10 or $10 million, Fill takes 10%.

$70,000 to publisher

Koah Labs (“AdSense for AI”). 30% take rate. Raised $25.5M assuming they’d hold that margin forever. Cannot drop it without re-pricing their Series A.

$68,000 to publisher

Google AdSense. 32% take on content ads. Requires ~3K monthly visitors and weeks of approval. Built for 2010 web publishers, not 2026 vibe-coders.

$22,000 more in your pocket on Fill than Koah. $22,000 more than Google.
Same advertiser spend. Same impressions. Different take.

Six layers between your ad
and anything embarrassing.

Brand safety is a product at Fill, not a PDF. Every impression we serve goes through a six-layer defense stack before it ever reaches your creative. Here’s what that means.

1

IAB Content Taxonomy 3.0

Every publisher app is classified against all 1,425 leaf categories in IAB CT 3.0. You target by category and never run next to categories you didn’t pick.

2

GARM suitability

Global Alliance for Responsible Media framework. 11 dimensions, 5 levels. Set a floor (“High” by default) and impressions below it are blocked before the auction.

3

Creative review

Every creative is LLM-reviewed before launch. Trademark violations, deceptive claims, prohibited categories — all flagged in under 5 seconds. Published rubric, not a black box.

4

IVT detection

GIVT (bots, crawlers, data centers) filtered at the edge. SIVT (behavioral fraud) caught by async pattern detection. IVT impressions are never billed to you. Published monthly IVT rates.

5

MRC viewability

50% of pixels in view for 1+ seconds. Enforced via IntersectionObserver in the SDK. Non-viewable impressions are not billed. Viewability rates per-campaign in your dashboard.

6

Public transparency

ads.txt, sellers.json, prohibited category list, monthly audit report, open-source SDK code. Everything a sophisticated media team needs to trust the network is public.

Read the full brand safety policy →

From zero to growing in one conversation.

claude-code — ~/my-app
$ grow my app and add monetization
 
▶ Agent I’ll add Fill to grow and monetize your app.
 
⚙ fill_init({name: "my-app"})
  → Registered. 1,000 credits
 
⚙ fill_add_ads({format: "banner"})
  → Banner added to App.tsx
 
  ✓ Live
myapp.dev
My Vibe App
Ad Excalidraw — Sketch hand-drawn diagrams Try it
Earned 0 credits

Left: your agent sets up Fill in seconds. Right: your app starts earning and growing immediately. See it live in a real app →

If you build apps or agents, this is your exchange.

Lovable / Bolt / v0 builders

You shipped an app this weekend. Fill gets you users Monday morning. Earn credits passively, spend them to promote across the network.

Claude Code / Cursor power users

Your agent already writes your code. Now it handles growth and revenue too. One prompt, zero context switches.

Indie hackers & side projects

Not big enough for paid ads. Not ready for a marketing team. Fill grows your app for free through a network of builders like you.

Anyone who hates dashboards

No login. No analytics portal. No “optimize your ad units.” Tell your agent to check earnings. Done.

Everything you need to know.

How much can I earn?
Two layers, stackable. Credits: every impression earns a credit worth ~$1/1,000, redeemable for installs across the network. A 10K-visitor app earns ~5,000 credits/month — enough to buy real distribution for your own app. Cash: on top of that, brand-bid impressions pay a CPM ranging from $2-$12 depending on your audience and surface. A vibe-coded dev tool with US traffic can clear $5-15/1,000 impressions net to you. Stack both and you’re growing AND earning from the same impressions.
What ads will show in my app?
Cross-promotions from other indie apps in the Fill network. Clean, text-based banners. No pop-ups, no video autoplay, no tracking pixels. We also run house ads for popular open-source tools like Excalidraw and Cal.com. You’ll never see gambling, adult, or scam content.
Will it slow down my app?
The SDK is under 10KB gzipped with zero runtime dependencies. It makes one API call to load an ad, then renders a lightweight banner. No tracking scripts, no cookie banners, no third-party requests. Your app stays fast.
Is it GDPR compliant?
Yes. Fill uses no cookies, no persistent identifiers, and no cross-site tracking. The SDK makes zero client-side storage. We collect only what’s needed for ad serving and fraud prevention (IP for bot detection, UA for device classification). See our Privacy Policy.
What frameworks are supported?
React (via npm: @fill-md/sdk) and vanilla JavaScript (via script tag: fill.md/sdk.js). Works with Next.js, Remix, Astro, plain HTML, and any web app.
How is this different from Google AdSense?
AdSense requires weeks of approval, ~3K monthly visitors, and manual SDK integration. Fill approves you instantly, has no traffic minimum, and your AI agent handles the entire setup. Plus, Fill credits let you promote your app for free — AdSense just pays you (less).
How is this different from “AdSense for AI” networks that put ads in chat responses?
Five things. One: they take 30%. We take 10%. On the same spend you earn $22K more per $100K. Two: they’re cash-only and you need traffic to start earning — useless if you have 50 users. Fill’s credit exchange works on day 1. Three: they only serve inline text ads inside chatbot responses. Fill serves every surface — banners, interstitials, email, exit-intent, sidebar. Your SaaS app isn’t a chatbot. Four: they require installing a React Native or Flutter SDK. Fill is one MCP config and an agent prompt. Five: their SDK code and rev share are closed. Ours are public. That’s the difference between a vendor and a partner.
Why 10% take rate? Isn’t that unsustainable?
Because we were publishers first, and we watched 30% disappear every month on someone else’s P&L. We can afford 10% because we don’t have a $25M Series A to pay back on a cap table that priced in 30% margins. Margin comes from volume and from the credit float, not from extraction. The 10% rate is published publicly and locked in forever. If a competitor drops theirs to match, we’re still winning on self-serve, brand safety, MCP-native install, and open source.
How do I know my brand is safe advertising here?
Six layers. (1) Every publisher is classified against the full IAB Content Taxonomy 3.0. (2) Every publisher gets a GARM suitability rating across 11 dimensions. (3) Every creative goes through LLM-based review before it can run. (4) Every impression is IVT-filtered for bots and invalid traffic — you’re not billed for anything that fails. (5) We enforce MRC viewability standards at the SDK level. (6) Our ads.txt, sellers.json, prohibited categories list, and SDK source code are all public. If you’ve ever worked with a sketchy ad network, you know what we’re defending against. We built the stack we wish had existed.
What’s the advertiser minimum? Do I need to talk to sales?
$10 minimum campaign. No sales calls. Ever. Sign in with Google or GitHub, fund your account with a card (or Apple Pay, or Google Pay), create a campaign with creatives, go live in under 60 seconds. No IO, no net-60 invoicing, no “let’s schedule a demo.” It’s prepaid and self-serve like Stripe. The only reason to email us is if something is broken.
Who’s building this?
Vishal Gurbuxani, founder of Mobclix — the first mobile ad exchange, acquired and taken public on Nasdaq — and Captiv8, an influencer marketing platform acquired for $150M. 20+ years building adtech exchanges. The only person in the “AI ads” category with two real exits in this specific space.
“Added Fill to VibeTool in under a minute. The banner blends perfectly with the app’s dark theme. Already earning credits from real traffic.”
VibeTool · App discovery tool · See it live →

Not ready to install? Get notified about cash-out, new features, and network growth.

One config. One prompt. That’s it.

1
Add this to your MCP config:
{
  "mcpServers": {
    "fill": {
      "command": "npx",
      "args": ["@fill-md/mcp"]
    }
  }
}

Paste into ~/.claude/mcp.json or your project’s .cursor/mcp.json

2
Tell your agent: “monetize this app with ads”

Your agent handles the rest. You’ll be earning in under a minute.

Read the docs →

Ready to grow your app?

Join the network. Earn credits. Promote your app. All from one conversation with your agent.

Start growing — it’s free