How Much to Charge for Banner Ads on Your Website
A practical method for turning your traffic, placement and niche into a fair flat daily or weekly rate, with worked examples you can copy.
On this page
A fair price for a banner ad starts with the slot's real impressions: multiply its expected daily impressions by a target CPM and divide by 1,000 to get a daily rate. Then adjust for placement, niche and demand, round to a clean number, and sell it as a flat daily or weekly price with a minimum booking length.
Key takeaways
- Price from the slot's own impressions, not your sitewide pageviews.
- Your floor is what an ad network already pays you for the same position; a direct booking should beat it.
- Adjust for placement, audience value and exclusivity, then round to a clean daily number.
- Sell flat daily or weekly rates with a minimum booking length, and use CPM as your internal yardstick.
- Raise the price when your calendar fills up, and rethink the placement when it stays empty.
The pricing formula in one line
Every method in this guide comes back to the same formula:
Daily rate = (expected daily impressions ÷ 1,000) × target CPM
CPM means cost per thousand impressions. You won't necessarily sell by CPM—direct-sold banners on small sites are often sold at a flat rate—but CPM is the common language advertisers use to compare your price with their other options. For a full comparison of pricing models, read flat rate vs. CPM banner pricing.
Step 1: Count impressions for the slot, not the site
Pageviews and slot impressions aren't the same number. A sidebar slot that disappears on mobile layouts, or a banner that only appears on blog posts, will be seen far less often than your sitewide pageview total suggests.
Pull 60–90 days of data and work out:
- Pageviews on the pages where the slot appears.
- The share of those pageviews where the slot actually renders, for example desktop only.
- The median daily figure, ignoring one-off spikes from a viral post.
Example: 120,000 monthly pageviews on article pages, with the slot visible on the 75% of views that come from desktop, gives about 90,000 monthly impressions, or roughly 3,000 a day.
If you already serve an ad in that position, your ad tool's impression count is the best source. Our guide to banner ad metrics explains how impressions and clicks are counted and what a click-through rate tells you.
Step 2: Find your floor and pick a target CPM
Your floor is the minimum that makes direct sales worth the effort. If you run AdSense or another network, look at the earnings per thousand impressions (RPM or eCPM) for the ad unit in that position over the last few months. A direct booking should pay more, because you're doing the selling and the advertiser gets the slot to themselves.
If you don't run a network, use two other reference points:
- Comparable sites. Many niche sites publish rates on their advertise pages. Divide their daily price by their stated daily impressions and multiply by 1,000 to estimate the CPM they charge.
- Advertiser value. Estimate what a visitor is worth to the advertiser. A software company selling a $50-a-month plan can justify paying more per thousand impressions than a shop selling $10 accessories.
Be careful with "average CPM" figures you find online. CPMs vary widely by niche, country, device and season, and a single average hides all of that.
Step 3: Adjust for placement, audience and exclusivity
| Factor | Raises your price | Lowers your price |
|---|---|---|
| Placement | Above the fold, near the top of articles | Footer, far below the fold |
| Exclusivity | One advertiser per slot, no rotation | Rotating with other ads |
| Audience | Clear buying intent: software, B2B tools, hobby gear | Broad, casual entertainment traffic |
| Geography | Mostly countries your advertisers sell to | Scattered or mismatched |
| Proof | Past click data and repeat advertisers | No history yet |
| Unit size | Larger units such as 300×600 or 970×250 | Small mobile banners such as 320×50 |
Keep adjustments modest and explainable. A simple approach is to move your target CPM up or down in steps of 10–25% for each factor that clearly applies. You should be able to explain every premium in one sentence when an advertiser asks.
Step 4: Work through examples
These examples use illustrative numbers to demonstrate the method. They are not market rates.
| Example site and slot | Daily impressions | Target CPM | Daily rate | 7-day price |
|---|---|---|---|---|
| Hobby blog, sidebar 300×250 | 3,000 | $6 | $18 | $126 |
| Community forum, 728×90 leaderboard | 10,000 | $3 | $30 | $210 |
| Developer docs site, in-content 300×250 | 800 | $25 | $20 | $140 |
Look at the docs site: it has the least traffic, but its audience is so specific that the target CPM is several times higher. That's the main advantage of direct sales—you can price relevance, not just volume.
Then round. A calculated $18.40 a day becomes $18 or $20. Odd numbers like $17.63 invite buyers to question the formula instead of the value.
Step 5: Set minimum days and multi-week discounts
- Minimum booking length. A 7-day minimum is a sensible default. It gives the advertiser enough impressions to judge results and keeps your admin per booking low. High-traffic slots can go shorter.
- Longer bookings. Offer a small discount for 30 days or more, for example 10%, and state it on your rate card.
- Launch pricing. If you're new to direct sales, a time-limited introductory price beats a permanently low one. It's easier to end a promotion than to raise a rate.
Step 6: Review the price every quarter
Pricing is a test, not a one-time decision. Every few months, look at:
- Occupancy. If your calendar is booked several weeks ahead, raise the rate for new bookings by 10–20%. If a slot has had no bookings for two months despite real outreach, lower the price or move the slot somewhere more visible.
- Renewals. Advertisers who rebook are telling you the price works for them.
- Clicks. Share click-through rates with advertisers. A slot that delivers steady clicks justifies a higher rate.
Apply new prices to new bookings only, and never change the price of a campaign that's already paid.
Don't forget fees in your net price
Card payments cost money. Stripe's processing fees vary by country and payment method, so check the Stripe pricing page for your account rather than assuming a fixed rate. Add any booking-tool or platform fee on top, then confirm the net amount still beats your network floor.
Publish the rate where buyers can act on it
Once you have a number, put it in front of buyers: on your advertise page and, ideally, on a booking page with live availability. In Spreadiom, each slot has a price per day in USD and a minimum number of days, and the booking page shows advertisers the slot's recent impressions and clicks next to the price, which makes your rate easier to justify. There's no subscription, just a 5% fee on completed bookings—see Spreadiom pricing. For the rest of the setup, follow our guide on how to sell ad space on your website.
FAQ
What is a good CPM for direct-sold banner ads?
There's no universal number, because CPMs vary by niche, audience location, device and season. The most reliable benchmark is your own data: what an ad network already pays you for that slot is your floor, and a direct booking should beat it. If you have no network data, estimate the CPM implied by comparable sites' published rates, then adjust for your audience.
Should I charge per day, per week or per month?
Quote a daily rate and set a minimum booking length, such as 7 days. Daily pricing lets advertisers book exact dates and keeps the math transparent, while the minimum keeps your admin per booking low. For low-traffic sites with a valuable audience, monthly packages often make more sense, because a few days wouldn't deliver enough impressions for the advertiser to judge results.
How do I price ads on a new site with little traffic?
Price from the audience rather than the volume. Calculate the daily rate from your actual impressions, then lean on what makes your readers valuable: a precise niche, a newsletter or an engaged community. Offer longer bookings so the advertiser gets enough impressions, use a time-limited launch price instead of a permanently low one, and share results so your first advertiser can become a reference.
Should I lower my price if nobody books?
Not straight away. First check the basics: is the slot visible, is your advertise page easy to find, and have you contacted likely advertisers directly? If the slot still sits empty after a couple of months of real outreach, try a lower introductory rate with an end date, offer a longer booking, or move the slot to a better position before cutting the price permanently.
Should mobile and desktop slots have different prices?
Yes, if they're different slots with different sizes and visibility. A 320×50 mobile banner and a 300×600 desktop half page deliver very different exposure, so price each from its own impressions and placement. If one slot appears on both, price it from the combined impressions and tell advertisers roughly what share of views comes from mobile, so they can plan suitable creative.
Sell ad space on your site — start free
Give every ad slot its own booking page. Advertisers pick dates, upload a banner and pay by card or PayPal — straight into your own account. No subscription; 5% only on completed bookings.