One of the reasons ad management on WordPress has a reputation for being fiddly is that most approaches require theme edits - inserting PHP snippets into header.php, registering widget areas, or pasting shortcodes into every post template. WB Ad Manager takes a different approach: the plugin ships 16 or more placement hooks that attach to standard WordPress action hooks. You create an ad post, assign it a placement, and it renders. No theme edits required.
This guide covers the full flow from creating your first ad to verifying it is live, then walks through the placement options so you can pick the right one without trial and error.
Step 1: Install and activate the plugin
Install WB Ad Manager from your Wbcom account. Activate it from the Plugins screen. No setup wizard is required - you can create ads immediately after activation.
The plugin adds a WB Ad Manager menu to wp-admin. Link cloaking has its own Links menu, and the Pro plugin adds a Classifieds section if classifieds are enabled. Each feature is independent.
Step 2: Create your first ad post
Go to WB Ad Manager > Add New Ad. The editor screen has three sections worth understanding:
Ad content. This is where you choose the ad type and add the creative. Five types are available:
| Ad type | Use it when |
|---|---|
| Image | You have a JPG, PNG, or WebP graphic and a destination URL |
| Rich content | You want to write the creative yourself in plain HTML (a styled offer, for example) |
| Code | You are pasting an HTML or JS ad tag from Ezoic or another network |
| Google AdSense | You run AdSense and have a publisher ID and slot ID |
| Email capture | You want a newsletter signup form in the ad slot |
For a direct sponsor’s banner, Image is the right type. For AdSense, use the AdSense type, or paste the unit into a Code ad.
Scheduling. Set a start date and end date if the campaign has defined run dates. If you are testing or running an evergreen house ad, leave the dates empty and the ad runs indefinitely while published.
Session limit. Optionally set a maximum number of times the ad displays per visitor per session. Useful for avoiding over-exposure on sites with long average session durations.
Placement. Choose where the ad appears on the site. This is the most important setting, covered in detail below.
Tracking. Impression counting and click counting are on by default. Every ad view and every click is recorded server-side without any external pixel. Impressions and clicks show in WB Ad Manager > All Ads. Ads that share a placement also get an Ad Performance Comparison box on the ad’s edit screen.
Step 3: Choose the right placement
The 16+ built-in placements cover the locations advertisers actually care about. Here is the full list grouped by area:
Content placements
- Before/After Content - one placement that puts the ad above the first paragraph or below the last, above comments
- After Paragraph - inserted after a paragraph number you set on each ad (2 by default), with an option to repeat it further down long posts
In-content placements are the highest-converting positions for most niche publishers, because the reader is already looking at the text.
Sidebar and widget placements
- Sidebar widget - add the WB Ad Manager widget to any widget area your theme registers.
Global placements
- Header bar - a full-width bar above the site header, visible on every page. High visibility, appropriate for sitewide announcements or high-paying sponsor campaigns.
- Footer bar - full-width bar at the bottom of every page.
Archive and listing placements
- Before and after the archive post list - ads appear above or below the list of posts on blog, category and tag pages
- Comments - before the comment form, after it, or between comments
Community placements (optional integrations)
- BuddyPress activity feed - if BuddyPress is active, ads render between activity items in the main feed
- bbPress topics - if bbPress forums are active, ads render in topic threads
Choosing placement without breaking layout
Two placements cause layout issues more than any others, and both are avoidable with one check:
Sidebar widget placements require that your theme has a registered sidebar. If your theme uses a full-width layout without a sidebar widget area, sidebar placement ads will not render visibly - they are technically placed but have nowhere to render. Verify your theme has an active sidebar before using these placements.
Header bar and footer bar placements add a full-width element that inherits zero theme styling. On sites with complex header layouts (sticky headers, mega menus), the header bar can push the navigation down in unexpected ways on mobile. Test at 390px viewport width after enabling the header bar.
For the content placements (before/after/inside post), layout conflicts are rare because the plugin inserts into standard WordPress content hooks that themes are designed to handle.
Step 4: Publish and verify
Set the ad to Published and view a post that the placement applies to. The ad should render in the position you selected.
If it does not appear, check:
- Is the post type excluded? Content and paragraph placements run on any single post, page or custom post type. If an ad is missing, check the ad’s display rules and the Settings option that disables ads on chosen post types.
- Is a caching plugin serving a stale page? Clear the cache and reload.
- Does an ad blocker explain the absence? Test in a browser profile without an ad blocker active or with ad blocker disabled for the domain. Server-side impression counting still works even when the creative is blocked client-side, but you will not see the visual ad.
- Are start/end dates set correctly? If the start date is in the future, the ad will not render until that date arrives.
When the ad is live but you cannot see it
The four checks above cover most cases. If the ad still does not show, work through the plugin’s own gates, which are easy to forget because you set them once and move on.
- You are the exception. Under Settings, the options to disable ads for logged-in users and for administrators are both off by default, but check them if you turned either on. Test in a private window.
- A slot is closed. The Settings screen has a table of placements. A slot you have unticked delivers nothing, whatever ads are assigned to it.
- The ad hit a limit. Look at Total Impressions (a lifetime cap across all visitors) and Session Limit (a cap per visitor). Either one stops the ad quietly once reached.
- The page already has enough ads. Maximum Ads Per Page is 10 by default and counts every ad type.
- The ad already appeared higher up. The same ad renders once per page, so if you ticked two placements it shows only in the first one reached.
- The theme never calls the hook. The header bar relies on the standard body-open hook. A theme that omits it shows nothing there.
Most “the ad is missing” reports end at one of these six. Check them in that order, because the first two take seconds.
Step 5: Run multiple campaigns in one slot
You can assign multiple ads to the same placement. When more than one active ad targets the same placement, WB Ad Manager shows one per page view, picked at random and weighted by each ad’s Priority slider (1 to 10). Every ad starts at 5, so the share is even until you change it.
This is the mechanism for running:
- Direct sponsor campaigns in rotation (three sponsors sharing a sidebar slot)
- AdSense and a direct sponsor in the same slot (they share it by priority while the sponsor’s dates are live)
- Manual creative comparisons (rotate two creatives in one slot and compare impressions + CTR in the CTR comparison box; automated A/B testing with statistics is a Pro feature)
The AdSense + direct hybrid is the most common configuration for publishers moving from purely programmatic to mixed monetization. Put AdSense and a sponsor in the same slot and they share it. Each page view shows one, weighted by priority (1-10). Schedule the sponsor’s dates; AdSense keeps the slot to itself before and after.
The setup: create an Image ad for the sponsor with a start and end date and Priority 10. Create an AdSense ad, leave the dates empty and set Priority 1. Assign both to the same placement. During the sponsor’s dates it gets about 91% of views. Nothing pauses AdSense for you, so if the sponsor bought the slot outright, switch the AdSense ad off for those dates.
Targeting and limits worth setting on day one
You can run an ad everywhere and never touch these. They are worth a look, because they keep a new slot from annoying readers.
On each ad you can show it on all pages with exclusions, or only on the pages, content types, categories and tags you pick. You can limit it to desktop, tablet or mobile, to logged-in or logged-out visitors, or to certain user roles. Scheduling goes further than a start and end date: you can choose days of the week and a time window, such as weekday mornings, and it follows your site’s time zone. An end date runs to the end of that day.
A few practical uses:
- Exclude a category that holds sponsored posts, so the ad never sits beside paid content.
- Show a sponsor only on one category that matches what they sell.
- Hide a wide banner from mobile visitors if it needs a sidebar.
- Cap a paid campaign with Total Impressions, so it stops once the advertiser has received what they bought.
Country targeting is free too. Reports that split performance by country and device are Pro.
Reading the impression and click reports
After the ad has been live for a few days, WB Ad Manager > All Ads shows impressions and clicks for each ad. Open an ad that shares a slot with others and the Ad Performance Comparison box on its edit screen lines them up by click-through rate.
Pro adds the Ad Analytics screen, with geographic and device breakdowns and CSV export for the reports you send direct sponsors. Impressions are counted on the server when it renders the ad, not on a pixel load, so privacy-focused browsers don’t hide them. One catch: a page served whole from a cache never reaches that code, so fully cached pages undercount.
A sensible first week
Resist the urge to fill every slot at once. Reader reaction and your own numbers tell you more when you add things one at a time.
- Day one. Publish a single ad in one in-content slot. View a post as a logged-out visitor, on a desktop browser and on a phone.
- Day two. Check the layout at 390 pixels wide. Look for a pushed-down header, an overflowing banner or a gap where the ad should be.
- Day three. Add the second slot, such as after the content, and leave the first alone.
- Day four to seven. Leave everything unchanged and watch Impressions and Clicks in All Ads.
After a week you know what one slot earns and how the page feels, which is the information you need before adding a sidebar, a bar or a popup. For slot-by-slot sizing, read banner ad sizes for your website above. If your concern is page speed with AdSense in the mix, AdSense on WordPress without slowing the page covers it. Community sites can read about ads inside threads and feeds, and publishers who plan to sell slots directly should look at direct sponsor ads.
Quick reference: placement decisions
| You want | Use this placement |
|---|---|
| High-attention in-article unit | After Paragraph |
| Sitewide always-visible banner | Header bar |
| Rotating sponsor banners | Sidebar widget |
| End-of-article CTA or sponsor note | Before/After Content (after) |
| AdSense plus a scheduled sponsor | AdSense ad + sponsor ad, same placement, sponsor at higher priority |
| Community site feed sponsor | BuddyPress activity feed |
For publishers selling ads directly, The Ad Sales Pipeline, From Inquiry to Invoice: What to Automate and With What covers which steps of the sales process to automate, and with which tools.
Planning to sell these slots? Banner ad sizes for your website shows which sizes suit each placement and what to send a sponsor. If a slot should collect subscribers and not sell space, see email capture ads.