A native unit that behaves like part of your page

One asynchronous script tag per slot. The unit renders inside a shadow root, so it cannot inherit your stylesheet and your stylesheet cannot break it — the two most common reasons a native widget looks wrong on a real site.

How it works

  1. 1Register the site

    Add your domain and it is bound to your account. A request for your placement from any other domain is refused, so nobody else can earn against your inventory.

  2. 2Place the slot

    Drop a div where the unit belongs — in the article body, a header, a footer, a sidebar rail or a sticky bar — and paste one script tag.

  3. 3Set the density

    You choose position and how many items each breakpoint may show. The network then fits the item count to the container the unit actually got, not to the size of the visitor's monitor.

What you are paid for

A share of what the advertiser paid

Not an estimate and not a smoothed average. Each charge is booked as a double-entry row — advertiser debit, publisher credit, network margin — and the three have to sum to zero. Your revenue report is that ledger, grouped.

Viewable impressions, honestly measured

CPM revenue is earned when a unit is genuinely viewable — half its pixels for one continuous second. A unit that never enters the viewport does not bill the advertiser, which is also why the ones that do are worth more.

Traffic quality cuts both ways

The same scoring that protects advertisers decides your payout, so it is worth knowing what it looks for: units stacked out of view or hidden with CSS, a slot that re-renders itself repeatedly without a navigation, an unusual share of datacentre traffic, and clicks that arrive faster than a person can move a hand. Ordinary sites, including ones running several units on a page, are unaffected — density is judged per page, and a multi-item unit painting all of its cards at once is not a refresh.

The whole integration

<div data-adx-placement="PL_your_id"></div>
<script async src="https://adxads.com/w.js"></script>

Roughly 7 KB gzipped. Asynchronous, so it never blocks your content, and it renders nothing at all rather than an empty box when there is no fill.