WB Ad Manager: the WordPress ad plugin that replaces three
Most WordPress sites that try to monetize end up with three plugins. One to cloak affiliate links (Pretty Links, ThirstyAffiliates). One to rotate banner ads (Advanced Ads, Ad Inserter). And one to run a classifieds section if you need it (AWPCP, Business Directory). Three admin screens. Three databases. Three sets of hooks that occasionally fight each other. And when you finally sit down to ask the question that actually matters to your bottom line, which of my posts is making the most money this month?, you cannot answer it. Your affiliate clicks live in one database. Your ad impressions live in another. Your listing upgrades live in a third. Joining them is a ticket for your developer.

WB Ad Manager is my answer to that. One WordPress ad plugin, three modules, one data model. And the free version on WordPress.org is the full thing, not a tease with three placements and a “Pro” pop-up every time you open the settings screen.
This post is a short orientation tour of the WordPress ad plugin. What each module does, who it is for, the thinking behind shipping it as one WordPress ad plugin instead of three, and how the free version compares to the commercial plugins it replaces. If you have been juggling a link cloaker plus an ad rotator plus whatever classifieds plugin you ended up on, one of the three modules will probably be a better fit for your site than what you are using today. And since they all ship in one install, there is almost no cost to trying them. If nothing else, this post gives you a map of how the three modules fit together before you install anything.
Why one WordPress ad plugin instead of three
The obvious argument for keeping monetization plugins separate is separation of concerns. One plugin does one thing well, and if you do not need classifieds you do not install the classifieds plugin. Fair.
The less obvious argument is the one that has been making my life harder for a decade. When each WordPress ad plugin has its own tracking system, its own targeting rules, and its own admin screen, you can never unify the view. You can see that ad position X has a 1.2% CTR. You can see that affiliate link Y has 340 clicks this month. You can see that classified Z got 8 featured upgrade purchases. But you cannot see which pages are actually carrying your income because the data never joins.
The plugins themselves were fine. The seams between them were where the failures lived. Same story with monetization plugins, and the same answer: collapse the seam.
And when you try to make changes, say, exclude a category from both ads and affiliate links, you configure it in two places. Set device targeting in two places. Schedule a promotion window in two places. The configuration drift between the plugins is where most monetization sites quietly break themselves. You turn a promotion on in the ad plugin, forget to update the link plugin, and for three days your cloaked links point at an expired offer page while your ads point at the new one.
My bet with WB Ad Manager was that the right answer for a site doing two or three of these jobs is one WordPress ad plugin with one targeting engine, one scheduler, one permissions layer, and one click-tracking system. The modules share code. Adding a new placement (say, a sticky sidebar) instantly makes it available for image ads, AdSense units, affiliate link cards, and email capture forms. Adding a new targeting dimension (say, “logged-in members only”) applies to every module at once.
This is the same instinct behind other “one plugin instead of three” choices I have made lately. When I wrote about when off-the-shelf community plugins stop cutting it, the inflection point was always the integration seams between plugins. The more plugins you stack, the more seams you create, and eventually the seams become the product.
What you get in the free WordPress ad plugin
Everything below ships in the free WordPress ad plugin on WordPress.org. Unlimited ads. Unlimited links. No feature locks, no per-site keys.
1. Affiliate link cloaker
Turn long affiliate URLs like amazon.com/dp/B08N5WRWNW?tag=you-20&linkCode=osi into clean yoursite.com/go/best-headphones links on your own domain. Every click is logged with timestamp, page URL, and device. You get 301, 302, and 307 redirect options (most affiliate links should be 301). Broken-link detection pings destination URLs on a schedule and flags the 404s before you lose commissions on a dead merchant URL.
There are two features in the link module that I specifically built because the other cloakers I was using did not have them:
- CSV bulk import. If you already have a spreadsheet of 200+ affiliate URLs, you upload the CSV, map the columns, and every link gets automatic cloaking and tracking. No migration script required.
- Partnership inquiry form. The
[wbam_partnership_inquiry]shortcode drops a form on your site where someone can pitch you a sponsored link or paid partnership. Admin accept/reject workflow. Automatic email notifications. No more sponsored-post conversations living in your Gmail search.
Group and category organization, SEO-correct rel attributes (nofollow / sponsored / ugc), expiration dates for time-limited offers. You can use the cloaked URL directly in content or drop [wbam_link id="123"]Anchor text[/wbam_link] anywhere. For blog networks and affiliate publishers managing 500+ cloaked links, the admin list paginates, filters by group, and exports to CSV, so auditing what you link to is a one-minute task, not a weekend project.
2. Ad manager
Five ad types in the free WordPress ad plugin. Image banner. Rich content (WYSIWYG editor for styled blocks, offers, CTAs). Custom HTML or JavaScript (affiliate network embed codes, third-party widgets). Google AdSense (manual units or Auto Ads). Email capture forms with customizable colors, optional name field, and a wbam_email_captured action hook for Mailchimp / ConvertKit / any webhook.
Sixteen-plus placements, every one of them battle-tested on real sites. Before content. After content. After paragraph N. Between archive posts. Sidebars and footer widget areas. Sticky header and sticky footer. Exit-intent popup. Timed popup. Scroll-triggered popup. BuddyPress activity feed and 6 directory positions across members and groups. bbPress topics and replies, with configurable frequency between replies. Jetonomy forum positions in the sidebar, after topic body, and around replies (7 positions total).
Every placement shares the same control layer:
- Schedule by date range, day of week, or time of day
- Target by device (desktop, tablet, mobile)
- Target by login status and WordPress user role
- Target by post type, category, and tag (include or exclude)
- Rotation priority and per-user frequency caps
- A/B comparison with a side-by-side CTR metabox and a “winner” badge
Because every module is built on the same taxonomy and targeting system, a category exclusion you add to an ad also applies to a link cloaker click-through on the same page. The cross-module consistency is the thing you never notice until you switch to a plugin that does not have it. When you add a new category to WordPress, every module picks it up immediately. When you change a targeting rule, it applies everywhere. No configuration drift.
3. Classifieds (free stub)
The free WordPress ad plugin ships the classifieds custom post type, browse pages, single-listing templates, and category plus location taxonomies. It is enough to run a manual directory where you, the admin, publish listings. If your use case is “I want to maintain a curated directory of 50 vetted local businesses,” you can do that on the free plugin alone.
When you want frontend submission where members post listings themselves, paid featured / urgent / highlighted upgrades, direct messaging between buyers and sellers, and member-sold listings gated by membership plans, that is where Pro picks up. Same CPT. Same taxonomies. No data migration when you upgrade. Your existing listing URLs keep working, your SEO does not reset, and your team does not relearn the admin.
What the WordPress ad plugin can do for you

A few concrete use cases I have watched customers build on this:
The affiliate blogger
Scenario: You run a review site, 200+ posts with a dozen affiliate links each. You have been using Pretty Links for the cloaking and Advanced Ads for the display banners. Every time you want to change the affiliate tag across all Amazon links, it is a manual edit spree. Every time you want to A/B test a banner creative, it is a copy/paste dance between two admin screens.
With WB Ad Manager: bulk-import all your affiliate URLs, cloak them, A/B test ad creatives between posts, run an email-capture popup on exit intent. One WordPress ad plugin handles all of it. The click tracking on the links and the impression tracking on the ads share the same date-bucketed aggregation table, so you can finally compare link revenue per post against ad revenue per post without joining across two plugins.
The BuddyPress or bbPress community owner
Scenario: You run a community with 2,000 active members. You want to monetize without making the site feel like a billboard. The activity stream ads need to be tasteful, respect member frequency caps, and stay away from new-member pages.
Drop ads into activity streams, member profiles, group pages, and forum topics without touching a single template file. The placements auto-detect when BuddyPress and bbPress are active. And because the targeting engine shares with the main ad module, you can exclude new accounts (logged-in but zero activity), cap activity stream impressions at 1 per scroll session per member, and schedule promotional banners for weekends only, all from the same settings screen.
The small publisher testing AdSense
Scenario: You are a niche blogger, moved from Google Auto Ads to manual placements because Auto was putting ads in visually disruptive positions. You need more control.
Set your Publisher ID once. Then every AdSense ad you create gets the same placement, schedule, and targeting options as every other ad type. Auto Ads supported if you want to use both. Frequency caps, device targeting, and post-type exclusions let you build a sensible AdSense setup without fighting with their auto-placement algorithm. The targeting engine respects your content categorization, so pages tagged “news” can run different creative than pages tagged “reviews,” and all of it happens in the same admin screen.
The directory or marketplace operator
Scenario: You want to run a curated local business directory. You are not sure yet whether you will eventually open it up to self-submission.
Start with the free classifieds CPT. Publish listings yourself. If it works and you want to scale to self-submission, flip Pro on. Frontend submission forms, paid upgrades, inquiries, direct messaging, and membership plans. Same CPT, same taxonomies, no data migration, no breaking the URLs you already have. The difference between a manual directory and a self-serve marketplace is a license key, not a re-platform.
How the free WordPress ad plugin compares
If you are shopping around, here is how the free WB Ad Manager WordPress ad plugin stacks up against the most common alternatives on the .org repository:
| Feature | WB Ad Manager | Advanced Ads | Ad Inserter | Pretty Links |
|---|---|---|---|---|
| Affiliate link cloaker + tracker | Yes | No | No | Yes |
| Classifieds marketplace module | Yes | No | No | No |
| Image, rich, code, AdSense, email capture | 5 types | Partial | Partial | N/A |
| 16+ placements out of the box | Yes | Yes | Yes | N/A |
| BuddyPress / bbPress integration | Native | Via hooks | Via hooks | No |
| Jetonomy integration (7 positions) | Yes | No | No | No |
| Email capture ad type | Yes | No | No | N/A |
| REST API for ads and links | 21 routes | No | No | Partial |
vs. Pretty Links / ThirstyAffiliates (link cloakers)
Pretty Links and ThirstyAffiliates are solid, purpose-built link cloakers. If all you need is cloaking, either is fine. What WB Ad Manager adds is the context: the same WordPress ad plugin also handles your ad rotation, classifieds, and community placements. When someone clicks your cloaked link on a page that also serves an ad, the two impressions are recorded in the same aggregation table. When you sell an ad placement to a partner, you can use the link cloaker for their tracking URL and run their display creative through the ad manager, one advertiser, two revenue streams, one dashboard.
vs. Advanced Ads / Ad Inserter (ad managers)
Advanced Ads and Ad Inserter are the two most common free ad plugins on the repository. I used both for years before writing WB Ad Manager. They do the ad-rotation job well. What they do not do is cloak affiliate links, run a classifieds module, or integrate natively with BuddyPress / bbPress / Jetonomy (they support it through generic hooks; WB Ad Manager has dedicated placements with admin UI).
Feature parity on the ad side is very close. The tiebreaker is what else your site needs that one WordPress ad plugin can give you.
vs. AWPCP / Business Directory Plugin (classifieds)
These are dedicated classifieds plugins. If classifieds is your entire business model, both are mature. But if classifieds is one of three things you need, the free stub in WB Ad Manager is enough to run a curated directory and the Pro marketplace module matches feature parity for frontend submission, paid upgrades, and member gating.
Common questions about the WordPress ad plugin
Is the free WordPress ad plugin really free?
Yes. The version on WordPress.org is fully functional with no artificial limits. Unlimited ads. Unlimited cloaked links. All 5 ad types. All 16+ placements. Full targeting, scheduling, rotation, and REST API. No feature locks. No per-site license. No premium-only hooks.
Will this WordPress ad plugin slow down my site?
No. Ad queries use denormalized counters so there is no COUNT query on page load. Placements only run when their hook fires on the current page type. BuddyPress and bbPress integrations only load when those plugins are active. Frontend JavaScript stays under 10 KB gzipped for the popup and sticky placements. Cache-friendly with WP Super Cache, W3 Total Cache, LiteSpeed, and WP Rocket.
Does the WordPress ad plugin work with my theme?
Any properly coded WordPress theme. The plugin uses standard hooks, widgets, shortcodes, and Gutenberg blocks. Community placements (BuddyPress, bbPress, Jetonomy) only appear when those plugins are active. Template overrides live in your theme’s wb-ad-manager/ directory if you need to customize the classifieds browse or single-listing views.
Can I migrate from Pretty Links or ThirstyAffiliates?
Export your existing links to CSV from the other plugin, upload the CSV to WB Ad Manager, map columns to URL / name / slug, and import. Each imported link gets automatic cloaking and click tracking. Click history from the previous plugin does not migrate, that would require schema conversion, but every new click is tracked from the moment you flip over.
Pricing at a glance
The WordPress ad plugin is free forever on WordPress.org. No credit card. No per-site license. The Pro add-on is the only paid component.
| Plan | Sites | Annual | Lifetime |
|---|---|---|---|
| Free (WordPress.org) | Unlimited | $0 | $0 |
| Pro Personal | 1 | $59/yr | $199 |
| Pro Professional | 5 | $129/yr | $299 |
| Pro Agency | Unlimited | $299/yr | $499 |
Every Pro plan includes a 30-day money-back guarantee. All future updates included on lifetime licenses. Annual licenses can be renewed at 30% of the base price after year one, which is the standard Wbcom Designs renewal structure.
When you outgrow the free version
Pro adds the pieces that matter once you want other people to pay you for ad placement or classified listings:
- A self-serve advertiser portal where members register, top up credits, submit their own ads and classifieds, and track performance, without ever touching wp-admin
- A credit wallet that hooks into your existing WooCommerce, WooCommerce Subscriptions, WooCommerce Memberships, Paid Memberships Pro, or MemberPress billing (no second payment stack)
- Full classifieds marketplace with frontend submission, paid upgrades, direct messaging, and membership plans
- A/B testing with statistical significance tracking and auto-winner promotion
- Revenue dashboard by advertiser, placement, and ad
- Geographic targeting
- Five Site Modes (Publisher / Sponsored / Paid Portal / Classifieds Marketplace / Full Platform) so the admin only shows you what you actually use
The difference between a manual directory and a self-serve marketplace is a license key, not a re-platform.
If you want the deep dive on what just shipped, I wrote about what is new in Pro 1.5.0, five Site Modes and a complete membership state machine as a separate post.
Why I keep building things like this
Earlier this year I wrote about how we rebuilt the entire product line after the rest of the industry seemed to be quitting. WB Ad Manager 2.8.0 and Pro 1.5.0 are part of that rebuild. So is Jetonomy (which has a dedicated WB Ad Manager integration with 7 placement positions). So is the refreshed BuddyX theme. The pattern is: take the thing we already sell, rewrite it with the lessons of the last ten years, ship it with documentation that does not lie, and price it so it pays for itself in month one.
The monetization space in WordPress has been waiting for a WordPress ad plugin that takes the “one install, one data model” idea seriously. Every existing option either picks one of the three jobs and does it well, or tries to do everything but ends up as a Frankenstein of acquired products glued together with filter hooks. WB Ad Manager is my attempt at the third option: built as one product from day one, with the three modules sharing enough code that they feel like one thing instead of three things stapled together.
Try WB Ad Manager
- Free on WordPress.org
- Pro on the store
- Docs and knowledge base
- Live sandbox to click through the portal without installing
If you build WordPress sites that need to make money, one of the three modules is probably a better fit for you than a dedicated plugin. Try it. Worst case, you uninstall, there is no migration cost either way because you never moved your data to a proprietary format. Best case, you collapse three plugin dependencies down to one and finally get a unified view of what makes your site money. The WordPress ad plugin ecosystem has a lot of options, but very few that try to be one install for all three monetization jobs, and that is the gap this plugin is built to fill. If any of the three modules sounds like a win for your site, install the free WordPress ad plugin from WordPress.org and spend ten minutes clicking through the admin before you commit. That is more than enough to know whether it fits.