How to Sell Direct Ads on WordPress Sites

So a sponsor emails you out of the blue and asks if they can buy a banner on your site. That’s awesome! Then the less fun part kicks in. What do you charge? Where does the ad go? How long does it run, and how do you show them their money actually did something? I’ve watched a lot of publishers get stuck right here. If you want to sell direct ads on WordPress sites, you need more than an empty sidebar. You need a process you can repeat, one that keeps your readers happy and makes your ad space easy to buy.

I really like direct advertising because you’re the one in control. You pick the inventory, you approve the creative, you set the terms, and you own the relationship with the advertiser. Ad networks just can’t give you that. For niche publishers with a clear audience, it usually means better margins and ads your readers might actually care about.

Start With Inventory Worth Buying

Before you offer anything, look at your site the way an advertiser would. They’re not really buying pixels. They’re buying a moment in front of a specific group of people.

A 728 x 90 banner at the top of a busy resource page has pretty obvious value. A responsive unit a few paragraphs into your newsletter archive could be great too, if people actually read those archives. A footer spot nobody scrolls to is a much harder sell, even if it technically racks up impressions.

I’d keep your first menu of options small. For most publishers that’s a sitewide leaderboard and a sidebar position (desktop and mobile), plus an in-content spot or two. Once you start adding extra sizes and page-specific exceptions, a simple sponsorship turns into a custom ad operation really fast. Ugh.

And please respect the content. If an ad jumps in front of a tutorial before the reader gets to the good part, you’re chipping away at the trust that makes your site worth advertising on in the first place. A good direct ad placement is easy to see without feeling like a roadblock.

Use Real Traffic Patterns

Don’t set prices based on total monthly pageviews alone. A site can pull in a ton of traffic and still be a weak buy if visitors bounce right away or never scroll far enough to see the ad.

I like to look at impressions by position and device, and then by content section. You’re looking for pages that get steady traffic and naturally line up with a sponsor’s category. A WordPress tutorial site, for example, is probably a better fit for hosting companies and plugin shops than for a random consumer brand.

If you’re new to this, start with just a couple of placements and collect some baseline numbers. Once you know what reliably gets views and clicks, you can grow from there.

Set Pricing That Leaves Room to Learn

There’s no magic rate card for direct ads. What you charge depends on who your audience is and how much traffic you get, plus how visible the spot is and how much work you’re doing for the advertiser.

I think a flat monthly sponsorship is the easiest place to start. The advertiser pays one fee for one placement over a set period, and everybody knows what they’re getting. It works well when your traffic is fairly stable and the buyer cares more about brand exposure than raw clicks.

CPM pricing can work once you have solid impression data and more inventory to sell. The advertiser pays per thousand impressions, which media buyers are used to. But it means your tracking has to be accurate, and you need a clear plan for what happens if a campaign comes up short on the impressions you promised.

If you’ve got a niche audience, don’t assume low traffic means cheap ads. A focused group of IT managers or WordPress agency owners can be worth a lot more than a giant general audience. What matters is whether the sponsor can reach people who might actually buy from them.

Pick a rate you can explain with a straight face. A spot with top visibility, category exclusivity, setup, reporting, and a newsletter mention isn’t the same product as a rotating sidebar banner. So don’t price it like one.

Offer Sponsorships, Not Just Banners

A banner is a box on a page. A sponsorship is a relationship, and it tells a much better story.

A package might be a fixed spot on your site for 30 days along with a labeled mention in a relevant email. You could throw in placement on one of your high-intent guides too. This works really well when the advertiser wants broad awareness and your readers already trust your recommendations.

Just be careful about promising editorial coverage for cash. If you do sponsored content, label it clearly and keep your standards where they are. Readers can smell a recommendation that doesn’t fit, and losing their trust costs a lot more than any single campaign pays.

Make the Buying Process Easy

Honestly, finding an advertiser usually isn’t the hard part for small publishers. The hard part is that buying from them feels uncertain or super manual. If a sponsor has to send five emails just to find out the size, price, start date, and how you’ll report results, they’ll probably move on.

Put together a short media kit. It should cover who your audience is, a rough monthly traffic range, and your top content categories. Then add your available placements, creative specs, campaign terms, and how to reach you. Keep it factual. Advertisers want real numbers, not marketing fluff.

When a sponsor says yes, you’ll want their name and destination URL, the campaign dates, and their creative files (image or HTML5, in the right dimensions). Ask about any tracking they need too. I’d set a creative deadline well before launch. That keeps you from scrambling on setup at the last minute, and it means nobody burns paid campaign days waiting on files.

For most direct campaigns, get paid before the ad goes live. Invoice terms are pretty normal with established agencies and repeat clients, but a brand new advertiser shouldn’t get a month of inventory on a handshake.

Get the basics in writing. That means the placement, the dates, rotation rules, cost, and payment terms. It also means who approves creative, what the cancellation policy is, and whether unused days can be rescheduled. It doesn’t need to be a big legal production. It just needs to keep everybody on the same page.

Manage Direct Ads Inside WordPress

Pasting sponsor code into widgets or theme files works fine…until it doesn’t. A campaign ends, a creative changes, or a developer updates the theme, and suddenly you’re hunting through template files trying to figure out where that banner lives.

I think ad management should live in WordPress and stay separate from your theme. You should be able to create an ad, give it campaign dates, choose how it rotates, and drop it in with a block, widget, shortcode, or template function (whatever fits the site).

Performance matters here too. Your ads are part of how you publish, so the tool running them shouldn’t slow down every page load. That’s a big part of why we built AdSanity the way we did. It gives WordPress publishers a lightweight way to schedule, rotate, place, and track both self-hosted and third-party ad creative.

If you’re a developer or run an agency, reusable placements are a lifesaver. You set up an ad group once and it can show up anywhere on a client’s site without hard-coding each campaign into the templates. When the campaign changes, the placement stays put and you just update the creative and schedule in the dashboard.

Set Clear Rotation Rules

Rotation lets you sell a single spot to more than one advertiser, but it gets confusing fast if you don’t spell it out up front. Tell advertisers whether the spot is exclusive or shared evenly with other sponsors. If it’s capped at a certain share of impressions, say so.

Exclusive placements usually cost more because the sponsor owns all the attention in that spot. Rotating inventory can bring in more money from one slot, but each advertiser gets less exposure. I don’t think either one is always better. It depends on your traffic, your pricing, and what you told the advertiser before they paid.

Report What Matters

A good campaign report isn’t a data dump. At a minimum, share impressions, clicks, click-through rate, the campaign dates, and which placement it ran in. For longer sponsorships, send a quick update at the halfway point and a final report once it wraps up.

A little context goes a long way. If the campaign did especially well in one section of your site, tell them. If traffic spiked because of a seasonal article or a newsletter issue, mention that too. It shows you understand your own inventory, and it sets you up for a much smarter renewal conversation.

Clicks are nice, but they’re not the whole picture. A brand awareness campaign might care more about qualified impressions and repeat exposure. A sponsor tracking conversions might care most about what visitors do after they click. So ask about their goal before launch, and then talk about the results in terms of that goal.

Don’t bury weak results or promise things you can’t back up. Honest reporting is what turns a one-month test into a sponsor who sticks around.

Protect the Reader Experience

I believe direct ads last longest when they actually fit your publication. Say no to creative that’s misleading, unsafe, or way too animated, and to anything that has nothing to do with your audience. Set file size limits and approve the final assets before anything goes live.

Be clear with disclosures, especially for sponsored posts and affiliate links. Display ads should also look different from your navigation and your editorial content. Nobody should have to guess whether a link is an ad.

Keep an eye on ad density as things grow. More placements might bump revenue for a bit, but a cluttered layout drags down engagement and slows your site. It also makes your premium sponsorships a lot less appealing. Scarcity is worth something, but only if you earn it by keeping your inventory good.

Your first direct campaign doesn’t need a polished media department behind it. It needs a fair offer, a clear spot on the page, ads that run when they’re supposed to, and a report the advertiser can actually understand. Get that routine down once. After that, every good campaign makes the next sale a little easier, kind of like a snowball that picks up speed each time it rolls downhill.

Brandon Dove Avatar

Ready to get started?

Time to take control of your ads.
Find your perfect plan and go for it.

Ready to Make Money With Your Site?

Get ads on your site in
60 minutes or less
with AdSanity.

  • Self-Hosted Ads
  • Ad Networks
  • HTML5 Ads
  • Video Ads
  • and More!

With our 14-day money back guarantee, it’s easy to see if AdSanity is the right fit for you.

Our Community

Join our mailing list to keep up to date on everything happening with AdSanity and Pixel Jar.

This field is for validation purposes and should be left unchanged.

Note: Your email address will be added to our CRM and be used to receive emails from Pixel Jar. You can unsubscribe at any time.

Our Partners

adcreative.ai platform