
The best display ads sizes for a website are the standard sizes each slot can actually fit: 728x90 or 970x90 at the top on desktop, 336x280 and 300x250 inside articles, 300x600 and 160x600 in sidebars, and 320x50 or 320x100 on phones. Give each slot two to four of these sizes in Google Ad Manager or AdSense, and reserve space for them with CSS.
Most size guides are written for the people designing ads. You're on the other side of the deal. You decide which sizes each slot on your page will accept, and that's where money leaks.
A slot that takes one size loses bids. A slot that asks for the wrong size breaks the layout, and a slot with no reserved space makes the page jump. This guide gives you a size plan per slot and the exact settings in Ad Manager, AdSense and Prebid. For every size on the market, see our full list of banner ad sizes.
Display ads sizes for each slot on your page
Match the sizes to the space. Each slot should accept the standard sizes that fit its container on that device, and nothing wider. Here's the plan we start from on a typical content site, with desktop ad sizes and mobile ad sizes side by side.
| Slot | Desktop sizes | Mobile sizes | Space to reserve |
|---|---|---|---|
| Top of the page, above the content | 728x90, 970x90 (add 970x250 only if the layout is 970px wide) | 320x50, 320x100 | 90px desktop (250px with 970x250), 100px mobile |
| Inside the article, after paragraph 2 or 3 | 336x280, 300x250 | 300x250, 320x100 | 280px desktop, 250px mobile |
| Sidebar, first slot | 300x600, 300x250 | None (the sidebar drops below the article) | 600px if it shows on the first screen |
| Sticky sidebar, lower down | 300x600, 160x600, 300x250 | None | 600px |
| End of the article | 728x90, 336x280, 300x250 | 300x250, 320x100 | 280px desktop, 250px mobile |
| Between posts in a list or feed | 728x90, 300x250 | 300x250 | 250px |
| Mobile anchor (sticky footer) | Optional 728x90 | 320x50 | None: it sits on top of the page in a fixed position |
Why 300x250 on phones and not 336x280? A 336x280 ad needs 336 pixels of free width. On a 360px phone with a 16px margin on each side, your column is only 328px wide. The bigger ad overflows or gets cut off.
The same logic stops a 728x90 going into a 700px content column. Google's Ad Manager help on desktop and tablet ad expansion says it plainly: "You should avoid requesting a size that is bigger than the container dimension."
How we check it. When we review a site, we open each slot in Chrome DevTools at desktop width and at 360px. We measure the container, then allow only the sizes that fit both the width and the design.
Google display ad sizes that AdSense and Ad Manager rank highest
Google publishes two lists of top performing ad sizes, and they don't fully agree. Both put 300x250, 336x280 and 728x90 at the top. After that, the AdSense guide to ad sizes and the Ad Manager list of supported ad sizes pick different winners.
| Size | Name | AdSense guide | Ad Manager guide |
|---|---|---|---|
| 300x250 | Medium rectangle | Top performing | Top performing |
| 336x280 | Large rectangle | Top performing | Top performing |
| 728x90 | Leaderboard | Top performing | Top performing |
| 300x600 | Half page | Top performing | Supported, and "one of the fastest growing sizes by impressions" |
| 320x100 | Large mobile banner | Top performing (mobile) | Supported |
| 300x50 | Mobile banner | Not listed | Top performing |
| 160x600 | Wide skyscraper | Supported | Top performing |
| 320x50 | Mobile leaderboard | Supported (mobile) | Supported |
| 970x250 | Billboard | Supported; advertiser demand rising, supply limited | Supported |
So if you want the best display ad sizes in Google's own words, start with the three both lists share. Then add 300x600 wherever a sidebar has room. It's the one size both guides speak well of beyond the big three.
The AdSense guide also flags weak sizes. It says supply for 468x60, 120x600, 250x250 and 200x200 is limited, which "may lead to sub-optimal ad performance". Keep those as extra sizes in a slot, never as its only size.
These Google display ad sizes are the same ones advertisers build for in Google Ads. That's the point. A slot that accepts what buyers already make gets more of them bidding.
How to choose display ads sizes for a slot
Pick sizes from the space first and the list second. Run every slot through these steps before you touch a tag.
- Measure the container at desktop width and on a 360px phone. Write down the width each slot really has.
- Start with the top performer that fits. In content that's usually 336x280 on desktop and 300x250 on phones.
- Add one or two sizes of the same shape. Wide goes with wide (728x90 with 970x90), tall goes with tall (300x600 with 160x600).
- Stop at four sizes. More sizes make the reserved space a guess and the layout harder to keep stable.
- Use standard sizes for open auction slots. Buyers build creatives for standard sizes, so a custom 310x260 slot gets almost no bids. Keep custom sizes for direct deals where you agree the creative first.
- Decide the space to reserve (the section on multi-size ad slots below shows how).
Watch out for mixed shapes. If you list [[300, 250], [728, 90]] and give the slot no CSS size, Google Publisher Tag (GPT) sets the div to the shortest declared height and the widest declared width. That's 728x90 here. Google's GPT ad sizes guide warns this "might occur after other content on the page has loaded, causing that content to shift."
How to set up Google Ad Manager ad sizes
In Google Ad Manager, the sizes in your page tag decide what can serve. The sizes on the ad unit screen are for trafficking and reports. It's easy to get this backwards, so do it in order.
Step 1. Add the sizes to the ad unit
Go to Inventory, then Ad units, then New ad unit (or open an existing unit and click Settings). Next to "Sizes", leave Size mode on Fixed size and add each size the slot will accept. Add Fluid only if the unit will serve native ads. Add Out-of-page for interstitials, which our guide to interstitial ads CPM covers.
Here's the catch. Google's help page on creating an ad unit says "Sizes specified don't affect ad serving." They help traffickers filter ad units by size when they target line items. That's still worth keeping tidy, but it won't change a single impression.
Step 2. List the same sizes in the GPT tag
The tag is where sizes count. Google's GPT guide says "Ad Manager only considers creatives matching these sizes during the ad selection process." An in-article slot looks like this:
googletag.defineSlot('/1234567/article_incontent',
[[336, 280], [300, 250]], 'div-incontent')
.addService(googletag.pubads());
Step 3. Add size mapping for phones
Size mapping tells GPT which sizes to request at each viewport size. Without it, a phone can be asked for a 970x90. Here's a top-of-page slot that asks for wide banners on desktop and mobile banners on phones:
const topMap = googletag.sizeMapping()
.addSize([1024, 0], [[970, 90], [728, 90]])
.addSize([768, 0], [[728, 90]])
.addSize([0, 0], [[320, 100], [320, 50]])
.build();
googletag.defineSlot('/1234567/top_banner',
[[970, 90], [728, 90], [320, 100], [320, 50]], 'div-top')
.defineSizeMapping(topMap)
.addService(googletag.pubads());
Each addSize line is a viewport (width, height) and the sizes allowed from that width up. GPT picks the largest mapping that fits, checking width first, then height. An empty list, like .addSize([0, 0], []), means no ad at all below the next breakpoint.
One trap. If the mapping has an error or the viewport can't be read, GPT falls back to the sizes in defineSlot(). That's why the full list sits there too. Test every mapped slot on a real phone, not just a narrow desktop window.
Step 4. Check expansion and contraction
Two network settings change which creative sizes can land in your slots. Both live under Inventory, then Inventory rules, then Format settings.
- Ad slot expansion is on by default. On desktop and tablet, Google's rule is that "Eligible ad slots can be expanded up to the container width." On phones, mobile web ad expansion gives this example: a 300x250 slot on a 360px-wide device "a 360x300 ad may serve."
- Ad contraction lets smaller creatives into a bigger slot. Google's ad contraction page says "By default, Ad Manager accepts some creatives that are smaller than the inventory size." It also notes contraction doesn't apply to multi-size requests, while expansion does.
What this means for your CSS: don't lock a mobile slot to exactly 300px wide with overflow hidden. Leave the container free to grow to the column width, or an expanded ad gets cropped.
How to set AdSense ad sizes: responsive or fixed
Leave AdSense ad units responsive unless your layout needs one exact size. Google recommends responsive and warns that fixed size ads may earn less. Here's how to create a display unit:
- In AdSense, click Ads, then By ad unit, then Display ads.
- Name the unit after its slot, like "article_incontent", so reports make sense later.
- In the "Ad size" section, keep Responsive selected, or pick Fixed and enter a width and height.
- Click Save and get code, paste the code into the slot, then click Done.
On Fixed, Google's create a display ad unit page says "fixed-sized ad units may have a limited pool of ads available, which might result in lower earnings than using responsive." Its fixed-size guidelines add hard limits:
- At least 120px wide and 50px tall.
- No side longer than 1200px.
- Only one side may be longer than 450px.
Ads outside those limits won't appear at all.
Shaping responsive ad units
Responsive ad units pick their size from the space, but you can steer them. Google's page on responsive ad tag parameters lists two settings that matter:
data-ad-formattakes "rectangle", "vertical", "horizontal" or a mix like "rectangle, horizontal". Shape control works on desktop only.data-full-width-responsive="true"lets the ad expand to the full screen width on phones more often. Google recommends it and says full-width ads "perform better on mobile devices in portrait mode".
Exact sizes per screen width
Need a 320x100 on phones and a 728x90 on desktop in the same spot? Google's guide to modifying responsive ad code shows how. Keep Responsive selected when you create the unit, then set sizes with media queries:
<style>
.incontent_ad { width: 320px; height: 100px; }
@media (min-width: 500px) { .incontent_ad { width: 468px; height: 60px; } }
@media (min-width: 800px) { .incontent_ad { width: 728px; height: 90px; } }
</style>
<ins class="adsbygoogle incontent_ad" style="display:block"
data-ad-client="ca-pub-0000000000000000"
data-ad-slot="1234567890"></ins>
Delete data-ad-format="auto" and data-full-width-responsive="true" when you set sizes this way. Keep the style block in the page, since Google says sizes set from an external style sheet aren't officially supported. And note Google's own example uses 468x60 for mid-size screens, a size its size guide calls limited. If your tablet column is 728px or wider, use 728x90 there instead.
Multi-size ad slots and size mapping without layout shift
Multi-size ad slots need reserved space, or the page jumps when the ad arrives. Google's guide to minimizing layout shift puts it bluntly: "The only guaranteed way to avoid layout shift is to reserve a sufficient amount of space for a given ad slot using CSS." It then gives three ways to pick the height.
| Reserve space for | Use it when | The trade-off |
|---|---|---|
| The largest size | The slot shows on the first screen or inside the article | Blank space when a smaller ad wins |
| The smallest size | The slot sits far down the page | The page shifts when a bigger ad wins |
| The size most likely to serve | You have a few weeks of delivery data by size | Some small gaps, some small shifts |
Take an in-article slot set to [[336, 280], [300, 250]]. Reserving for the largest size costs you a 30px gap when a 300x250 wins. That's a cheap price for a stable page, so we'd reserve 280px.
A sidebar set to [[300, 600], [300, 250]] is harder. The gap can be 350px. If the slot is on the first screen, reserve 600px anyway. If it's lower down, the most likely size is the better call.
#div-incontent { min-width: 300px; min-height: 280px; }
#div-sidebar { min-width: 300px; min-height: 600px; }
Use min-height and min-width, not fixed sizes, so the box can still grow. Google says to avoid reserving space with JavaScript.
Two more rules from the same guide. Fluid slots can't have space reserved at all, so put them only below the fold. And slots that usually fill should start expanded, while slots that rarely fill should start collapsed.
Keep Prebid sizes the same as your Ad Manager sizes
If you run header bidding, give Prebid the same size list as your GPT slot. Prebid's own ad unit reference says the sizes auctioned by Prebid "should be the same auctioned by AdX and GAM OpenBidding, which means AdUnit sizes should match the GPT sizes."
pbjs.addAdUnits([{
code: 'div-incontent',
mediaTypes: { banner: { sizes: [[336, 280], [300, 250]] } },
bids: [ /* your bidders */ ]
}]);
When the two lists drift apart, Prebid and Google's demand are bidding on different slots in all but name. You can't compare them fairly, and your floors and reports stop making sense. Our Prebid.js setup guide walks through the full ad unit, and our header bidding service keeps the lists in sync for you.
Check which display sizes actually serve, then prune
Testing ad sizes is a monthly habit, not a one-off. Look at which sizes really render in each slot, then cut or add one size at a time.
- Pull delivery by size. In Ad Manager reporting, split impressions by the size that served. Google's list of report dimensions calls it "Rendered creative size", "the size of the ad slot where creatives are served". The newer Interactive reports may name size dimensions differently.
- Add the ad unit as a second dimension so you see sizes per slot, not for the whole site.
- Set reserved space from the data. If a sidebar serves 300x600 most of the time, reserve 600px.
- Change one thing per test. Add or drop one size in one slot, then compare that slot's RPM over two full weeks. Our guide to CPM and RPM explains which number to watch.
A size that almost never wins doesn't cost much on its own. But a shorter list keeps your reserved space honest, and that's worth more.
Display size mistakes we see in setup reviews
Most slot problems come from the setup, not from picking the "wrong" size. These are the mistakes we check for first:
- One size per slot. A 300x250-only slot turns away every 336x280 bid it could have taken.
- Sizes on the ad unit, missing from the tag. Ad Manager's ad unit sizes don't affect serving. The tag does.
- Desktop sizes on phones. No size mapping means a 390px phone can be asked for a 728x90.
- A 336x280 in a 328px mobile column. It overflows the screen or gets cut off.
- Prebid sizes that don't match GPT. Two auctions, one slot, no fair comparison.
- No min-height. The article jumps down every time an ad loads, which hurts Core Web Vitals. Our website checklist before applying for AdX lists the targets.
- A fluid native slot at the top of the page. Google says fluid ads always cause layout shift.
Fix these and the size list mostly takes care of itself. For how these sizes get sold once they're live, see programmatic display advertising.
Display ads sizes FAQ
These are the size questions publishers ask us most, with short answers you can act on.
What size are display ads?
Most display ads come in a handful of standard sizes: 300x250 (medium rectangle), 336x280 (large rectangle), 728x90 (leaderboard), 300x600 (half page), 160x600 (wide skyscraper), and 320x50 or 320x100 on phones. Google's AdSense and Ad Manager guides list more, but most slots only need these.
What is the best display ad size?
300x250, 336x280 and 728x90 are on both Google top lists, so they're the safest choices. Add 300x600 where a sidebar has room. The best size for a given slot is the biggest top performer that fits its container.
How many sizes should one ad slot accept?
Two to four. That's enough for real competition between buyers, and few enough to reserve space without a big gap.
Do the sizes on an Ad Manager ad unit control what serves?
No. Google's help page says "Sizes specified don't affect ad serving." The sizes in your GPT tag decide which creatives can compete.
Should AdSense ad units be responsive or fixed?
Responsive, unless the layout needs one exact size. Google warns that fixed units may have a smaller pool of ads and lower earnings. You can still set exact sizes per screen width with CSS on a responsive unit.
What is the smallest display ad AdSense will show?
A fixed AdSense unit must be at least 120px wide and 50px tall. Google also says some small fixed sizes, like 120x60, might not have any display ads available.
Can a 300x250 slot show a bigger ad?
Yes, in Ad Manager. Ad slot expansion is on by default, and Google's example is a 300x250 mobile slot on a 360px phone showing a 360x300 ad. Leave your container room to grow.
Do high-resolution (retina) ads need a bigger slot?
No. Slot sizes are in CSS pixels, so a 300x250 slot stays 300x250 on a sharp phone screen. Making a crisp creative for that space is the advertiser's job, not yours.
Next step
Pick sizes from the space each slot has, list them the same way in the tag, Prebid and Ad Manager, and reserve space for them. If you'd like a second pair of eyes, our web monetization team checks slot sizes, size mapping and layout shift in every setup review, or you can send us your site for a free look.


