For developer-tool publishers

See your product
earn without compromising its UX.

Send a GitHub repo or product URL. We will return product-specific examples: one safe placement, a sample message, and a clear view of how the revenue share works.

Get my product exampleRegister my surface now

No code or call required. You control the placement, the categories, and the kill switch. See the revenue share.

For example: a pill in the top bar, beside your own controls.

billable sponsor lines served

reading from the serving database

plugin installs active yesterday

reading from the serving database

% of sponsor lines approved by publishers

publishing once the approval inbox ships

Read live from the serving database. Billable lines only, internal installs excluded. We do not publish churn or complaint numbers yet because we do not have clean data for them.

the fear

You're thinking ads will cost you users. So are we.

Your users' trust took years to earn, and one wrong sponsor line spends it in a day. You would carry that damage personally. We know that is the real price of saying yes, so we built the network as if we pay it too.

Because we do: removing ADtention is one public commit. If a line ever degrades a product, the removal is visible to everyone watching that repo, and the next publisher does not sign. A bad line costs you one surface. It ends our network. That is the incentive protecting your product, before any promise we make below.

the product example

A product-specific example before any engineering time.

Three required fields, no code, no call. We return one safe placement example for your product, a sample sponsor message, a small visual mockup or honest approximation, a lightweight integration outline, and how the revenue share works, with no guaranteed numbers.

Get my product example

not old-school ads

This is not a banner takeover, popup, or third-party tracking script.

It is one compact, clearly labeled message in a product-owned moment you choose. Your product keeps its UX, and you keep every control.

  • Fixed, small footprint
  • Visible sponsor label
  • No popup or takeover
  • Publisher-chosen placement
  • Category allowlist
  • Frequency control
  • Kill switch
  • Safe content boundary

The message stays outside prompts, tool results, and model output. It never touches code, user content, or customer data, and it ships no third-party script.

your controls

You approve it, place it, cap it, and can kill it.

Reviewed by us.Approved by you.

No line serves until you approve it.

Every sponsor line passes two gates before it can reach your surface: we review the advertiser, then you sign off the line for your product. The default is off, not opt-out. A line you never approved never serves.

If we ever break it

If an unapproved line ever serves on your surface, you keep 100% of that month's revenue and we publish a public incident report.

Planned, publisher-controlled: standing approvals for categories you trust, so you can skip per-line review when you choose to. Approval stays a switch you set, never a timer that runs out on you.

line-level approval
Each sponsor line needs your explicit sign-off before it can serve for the first time. Unreviewed means unserved.
publisher-chosen placement
The message renders in your own component, in the state you pick. Nothing is injected, and the sponsor disclosure stays visible next to the line.
category allowlist
Advertiser and creative eligibility are screened before serving. You can restrict the allowed categories further for your own product.
frequency control
Cap how often the message can appear per session or per state, so it stays quiet inside real work.
kill switch
Stop requesting lines or disable the surface immediately. The rest of your product continues unchanged.

the people

Two people answer for every line.

in their words

Every advertiser is read by one of us before it can reach your users. By hand, every time. That is the standard, and we are not lowering it.

You never have to take that on faith. ADtention comes out in one commit, in public, the day you decide it is not worth keeping. We built it that way on purpose. A network that has to earn its place in your product every day is the only kind worth running.

Julian Pechler and Len Seittercodecoast labs GmbH · Rotkreuz, Switzerland

on the record

codecoast labs GmbH, SwitzerlandAnthropic partner networkClaude Certified ArchitectPrevious exitSales professionalProduct professional

the economics

A transparent share, without a forecast dressed up as fact.

Publishers receive 50% of billable impression revenue. Demand and fill are not guaranteed, so the honest estimate starts with actual eligible renders and actual funded inventory.

The counterweight: while the marketplace matures, we fund most of the demand ourselves. The risk of an empty or irrelevant surface sits with us, not with your product. Your footprint stays one quiet line either way; what grows over time is the rate, not the space it takes in your UI.

Publisher revenue formula

billable impressions ÷ 1,000 × CPM × 50%

Every term below is defined, so the number you get can always be checked against what actually served.

billable impressions
A line must pass serving controls and be acknowledged after it renders. Fetching a line without showing it does not qualify.
clicks
Clicks are engagement signals and can be reported, but they are not the billing unit.
demand boundary
Paid campaigns, ADtention-funded inventory, and illustrative examples are different things. Demo or house-funded inventory is not treated as paid-demand proof.
cash-out
Integrator balances are claimed in the ADtention dashboard. Connect Stripe and request cash-out once the current $50 integrator threshold is met, subject to verification and fraud review.

the data boundary

Pseudonymous serving, not identity targeting.

needed to serve and account:

  • a broad local category
  • a pseudonymous publisher or install ID
  • host, surface, client, and version labels
  • render, impression, and engagement metadata
  • network and security logs needed for abuse controls

not sent for targeting:

  • prompts or conversations
  • source code or files
  • tool results or model output
  • customer content
  • direct user account identity

the fit

The surface matters more than the feature list.

A generic API, SDK, CLI, MCP server, or large GitHub audience is not enough by itself. The product must own a recurring state the user is actually present to watch.

owned
The state appears inside your product, not on a borrowed feed or unrelated page.
recurring
Users encounter the state naturally during normal work, not only during onboarding or an edge case.
watched
The user waits for a run, test, review, deploy, evaluation, progress update, or handoff to complete.
controllable
You can label, place, frequency-cap, category-limit, and disable the sponsor unit without breaking the workflow.
privacy-compatible
You can keep prompts, tool results, model output, code, files, and customer data out of the serving request.

the integration

A small API boundary, owned by your product.

Use the open-source SDK or call the HTTP API directly. The SDK handles registration, idempotency, and render acknowledgements. Your application keeps control of when and where the line appears.

  1. 01

    Register the publisher surface

    Create a publisher identity for the product and define the host, surface, eligible states, and optional user-level subject.

  2. 02

    Request a relevant line

    Send a broad local category plus pseudonymous delivery metadata. The response contains one reviewed sponsor line and accounting identifiers.

  3. 03

    Render, acknowledge, and control

    Render the labeled line in your own UI, acknowledge only after it is visible, and keep frequency, category, and kill-switch control in your product.

All three steps are self-serve in the publisher dashboard. No sales conversation required: register, integrate, and go live at your own pace.

Register my surface now

the founding offer

The founding publisher tier.

The first 50 publisher surfaces make up the founding tier. It adds service and standing, not control: the approval guarantee above is universal and identical for everyone, founding or not.

a direct line to the founders
No support queue. Questions, placement doubts, or a line you want gone: you talk to the people who run the network.
co-launch and case study
We announce the integration together and write up the real numbers afterwards, whatever they turn out to be.
50% share, permanently locked
Founding publishers keep the 50% revenue share permanently, even if the standard share changes later.

What this is not

Not a paid tier, not extra safety, not a different contract. Every control and every guarantee on this page applies to every publisher equally. Founding buys attention from us while we are small enough to give it.

Get my product example

FAQ

ADtention's integrations are live with 50+ daily active installs across Claude Code, OpenCode, Hermes, and Terminal, all open source. The network is early, and the open numbers above say exactly how early.

See the open numbers

the next step

Get the example before any engineering time.

Send the product and we will return the placement example, the sample message, and the economics. Already sure? Register your surface in the dashboard and integrate self-serve. Prefer to talk it through? Book 30 minutes directly with the people who run the network.

Get my product exampleRegister my surface nowBook 30 minutes with the founders