Simple to use ad manager for WordPress
Place image, code and rich-text ads anywhere on your site. Slots, rotation, conditions and accessible popups stay under your control — with local stats, ads.txt and a theme API, and nothing loaded on pages without ads.

Place ads. Keep control.
Automated slots and rules so the right creative shows in the right spot — without slowing pages that have no ads.
Ad types
- ✓Image ads with link, alt text, sponsored rel attributes and optional new tab
- ✓HTML / JavaScript code ads for AdSense and other networks
- ✓Rich text ads with the classic editor
- ✓Script ads can only be saved by users allowed to post unfiltered HTML; everyone else is filtered to safe HTML
Slots & placements
- ✓Header (top of body, with a fallback when themes lack wp_body_open) and footer
- ✓Before or after post content, or after paragraph N
- ✓Between posts in blog and archive lists, every N posts (classic and block themes)
- ✓Manual: shortcode, AdPlacer Ad block, widget, or theme code
Rotation
- ✓A slot holds one or more ads and decides where they appear
- ✓Random, weighted random or fixed order
- ✓Show any number of ads from a slot at once
- ✓Pair rotation with schedules so the right creative shows at the right time
Display conditions
- ✓Device (mobile or desktop), logged-in or logged-out visitors, and user roles
- ✓Page types, post types, categories, tags and specific post IDs
- ✓Excluded IDs when you need an exception
- ✓Start and end schedule in your site’s time zone — on ads and on slots
Accessible popups
- ✓Center modal, bottom bar or corner slide-in
- ✓Triggers: page-load delay, scroll percentage, exit intent (desktop) or active time on page
- ✓Frequency: every view, once per session or once every N days
- ✓Close button, Escape, overlay click, focus trap, aria-modal and focus return — no layout shift, no external assets
Local statistics
- ✓Impressions and clicks counted on your own site
- ✓Compact daily table — no personal data in the totals
- ✓Totals and CTR per ad for 7, 30, 90 or 365 days
- ✓The plugin never contacts outside servers
Page-cache friendly
- ✓Optional JavaScript rendering keeps rotation, schedules and visitor rules live on cached pages
- ✓Nothing loads on pages without ads
- ✓Front-end script is plain JavaScript with no libraries
- ✓Works alongside common full-page caching plugins
ads.txt editor
- ✓Edit ads.txt from the dashboard
- ✓Served at /ads.txt when there is no physical file
- ✓Add your publisher line for AdSense and other networks
- ✓Keep inventory declarations under your control
Theme developer API
- ✓adplacer_show, adplacer_get and adplacer_has helpers
- ✓do_action for named slots in templates
- ✓Filters at every step so themes stay in charge
- ✓Shortcode [adplacer slot="name"] or [adplacer id="12"] for editors
Up and running in four steps
Install the plugin
Upload the zip under Plugins → Add New → Upload Plugin.
Create an ad
Open AdPlacer → Ads and add an image, code or rich-text ad.
Make a slot
Under Slots & Popups, choose a placement and tick the ads it should show.
Tune conditions
Set devices, roles, pages and schedules so each ad appears where it should.
Requirements
- WordPress 6.3 or newer
- PHP 7.4 or newer
- Works with classic and block themes
- No outside servers contacted
Frequently asked questions
What licence do I get?
You get the fully licensed version, to use on your own sites.
Does it work with AdSense?
Yes. Create a Code ad and paste the AdSense snippet. Add your publisher line under AdPlacer → Settings → ads.txt.
Does it work with caching plugins?
Yes. For full-page caching, turn on JavaScript rendering in AdPlacer → Settings so rotation, schedules and visitor rules stay correct.
Does it send data anywhere?
No. Statistics stay in your data40base. The plugin makes no outbound requests.
What happens to my data if I remove the plugin?
Nothing is removed unless you tick the option in Settings to delete all ads, slots, statistics and settings when the plugin is deleted.
Can theme developers place slots in code?
Yes. Use adplacer_show, adplacer_get, adplacer_has or the adplacer_slot action, plus filters for every step.
Are popups accessible?
Yes. They support a close control, Escape, overlay click, a focus trap, aria-modal and focus return, with no layout shift and no external assets.
Who can save JavaScript ads?
Only users who are allowed to post unfiltered HTML can save script ads. Everyone else is filtered to safe HTML.
Your slots. Your rules. Your site.
Image, code and rich-text ads with rotation, conditions, accessible popups, local statistics and ads.txt — simple to use, automated where it helps.