Built to sit inside the stack you already run
Most ad networks want the whole page. PurpleAds takes the slots you give it, hands them back when it has nothing to serve, and tells your code what it is doing. AdSense, Ad Manager, WordPress and your own JavaScript all stay exactly where they are.

One more network, nothing taken away
Adding demand should be a pure gain. It stops being one the moment a new network takes a slot it cannot always fill, or asks you to route everything through it.
PurpleAds is designed around that. Our tags go where you put them and nowhere else. When we have no ad for a banner, the fallback you saved in the dashboard fills it, so the slot is never worse off than it was with your old network alone. When AdSense has no ad for one of its own units, our tag can fill that one instead. Two networks, each covering the other's gaps.
If you already run Google Ad Manager, PurpleAds fits in as a line item with custom creatives, and your waterfall keeps deciding the order. If you run WordPress, the plugin places our units without touching your theme. If you write your own code, the callbacks and events below are the seams you can hook into.
For developers
window.purpleDisplay = window.purpleDisplay || {};
window.purpleDisplay.onUnfilled = function(placement) {
// placement.element, placement.sizes, placement.reason
};
window.addEventListener('purpleVideo:start', function(event) {
// event.detail.ad
});Every field, event name and rule is inFallback tags and callbacks.
Every piece of the stack, covered
Runs next to AdSense
Google allows other networks on the same page, and PurpleAds is one. Your AdSense units, policies and reporting are untouched.
Serves through Ad Manager
Paste the banner code into custom creatives on a House or Network line item and run PurpleAds inside your existing waterfall.
Falls back to your tags
When we have no ad for a banner, the AdSense or other network code you saved fills it, sized to the slot, on the same page view.
Recovers AdSense gaps
The same tag detects AdSense units that rendered empty and fills them, so the two networks cover each other rather than compete.
Callbacks for your code
A one-function JavaScript callback tells your page when a banner went unfilled, with the container and the sizes that fit it.
Video player events
The video player sends start, quartile, pause, end and close events on the window, so your page can react to what it is doing.
Questions publishers ask
- Do I have to remove AdSense or another network to use PurpleAds?
- No. PurpleAds is a separate demand source with its own tags. It takes the slots you give it, and with the banner fallback it hands a slot back to your own code when it has nothing to serve.
- Can I run PurpleAds through Google Ad Manager?
- Yes. Create a line item at House or Network priority, add a custom creative per size with the PurpleAds banner code, and turn off SafeFrame on the creative. The setup guide lists the sizes and shows the creative settings. Inside Ad Manager the dashboard fallback stays off, since Ad Manager's own AdSense backfill covers that case.
- What can my page listen to?
- For banners, a purpleDisplay.onUnfilled callback with the container, the fitting sizes and the reason. For video, purpleVideo events on the window for load, start, play, pause, quartiles, end, skip, close and errors, plus an on and off API once the player has loaded.
- Is there a WordPress plugin?
- Yes. It places the floating banner and display banners for you, so you do not edit theme files, and links to the ads.txt lines your site needs.
- How do I get paid?
- Monthly, at NET+15, once your balance passes the minimum for your payout method, which starts at $20. Revenue shows in the publisher dashboard per site and per ad unit, so you can compare it with what your other networks report for the same pages.