Instagram ad specs aren't optional — they're enforced. Upload an ad creative at the wrong dimensions and Instagram either crops it automatically (slicing through your headline), letterboxes it (massive black bars), or rejects the ad entirely. Get the wrong aspect ratio for the placement and you'll waste budget on a creative that doesn't render the way you designed it. There's no "close enough" with Instagram ads.
This guide is the complete reference for every Instagram ad placement: feed, Stories, Reels, and carousel. It covers exact sizes, aspect ratios, safe zones, common mistakes, and the best practices that protect your ROAS before you spend a single dollar.
Instagram ads run across four main placements: feed, Stories, Reels, and carousel. Each placement uses a different canvas, has its own aspect ratio rules, and behaves differently when your creative doesn't match. Knowing all four is the foundation of any reliable Instagram ad workflow — the same master file rarely works across all placements without re-cutting.
| Placement | Size | Aspect Ratio | Notes |
|---|---|---|---|
| Feed (Square) | 1080×1080 | 1:1 | Safe baseline format, works everywhere |
| Feed (Portrait) | 1080×1350 | 4:5 | Best vertical real estate, highest engagement |
| Feed (Landscape) | 1080×566 | 1.91:1 | Use only when source is landscape-native |
| Stories Ad | 1080×1920 | 9:16 | Full-screen vertical with CTA button |
| Reels Ad | 1080×1920 | 9:16 | Full-screen vertical with engagement column + CTA |
| Carousel Slide | 1080×1080 | 1:1 | Every slide must match the first slide's ratio |
Feed ads run in the main Instagram feed alongside organic posts. The two viable formats are square (1080×1080) and portrait (1080×1350). Landscape (1080×566) is supported but rarely the right choice — it claims the smallest amount of vertical screen space and gets scrolled past faster than the other two.
The safe baseline. Square works everywhere — feed, Explore, carousel, every cross-placement campaign — without needing per-placement re-cuts. Use 1:1 when you need a single asset that runs across multiple platforms or when you're not sure which format to pick.
The highest-engagement format for feed ads. At 4:5, your ad fills nearly the entire phone viewport above the fold — the next post barely peeks in at the top. This vertical dominance is the single biggest reason 4:5 outperforms 1:1 for stop-scroll metrics. Use 4:5 for any single-placement feed ad where conversion matters.
Verify the dimensions and aspect ratio of any feed ad creative with the Instagram Post Size Checker before uploading to Ads Manager.
Stories ads display full-screen between organic Stories at 1080×1920 (9:16). Same canvas as organic Stories, with one critical difference: ads add a non-removable Call-to-Action button anchored above the reply bar.
Stories ads occupy the entire phone screen. Anything narrower or wider than 9:16 gets letterboxed or zoom-cropped automatically — neither outcome is acceptable for an ad you're paying for. Always design at exactly 1080×1920.
The combined bottom impact is roughly 400 px of vertical space consumed by ad UI — about 150 px tighter than organic Stories. Map every overlay coordinate with the Instagram Story Safe Zone tool.
Reels ads display inside the full-screen Reels player at 1080×1920 (9:16). Same canvas as organic Reels, but with the same CTA button addition that Stories ads have, plus the Reels-specific right-side engagement column.
Reels ads use exactly the same canvas, aspect ratio, and basic UI as organic Reels — the right-side engagement column (like, comment, share, audio buttons), the bottom-left username and caption area, and the Reels header at the top. The differences are the Sponsored label and the non-removable CTA button at the bottom-center.
Reels ads have the tightest safe zone of any Instagram placement because they combine the Stories ad CTA with the Reels engagement column. Verify cover and creative behavior with the Instagram Reels Cover Preview.
Carousel ads let you run 2–10 swipeable slides in a single placement. Build every slide at 1080×1080 (1:1) for maximum compatibility — square is the safe baseline that works across every carousel context, including organic carousels and cross-placement ads.
The most important rule for carousel ads: every slide must match the aspect ratio of slide 1. Instagram locks the entire carousel to slide 1's ratio — if slide 1 is 1080×1080 (1:1) and slide 2 is 1080×1350 (4:5), Instagram center-crops slide 2 to fit. The fix is to build every slide at the exact same dimensions from the start, not to mix ratios and hope.
Preview multi-slide carousels and verify per-slide consistency with the Instagram Carousel Preview.
Ad safe zones are tighter than organic safe zones because the CTA button is non-removable. Design with the CTA in mind from the first wireframe, not as a fix at the end.
Stories and Reels ads anchor a CTA button (Shop Now, Learn More, Sign Up, Install Now, etc.) above the reply bar. Combined with the reply bar and safe-area inset, this consumes ~400 px of vertical space at the bottom of every Story and Reels ad. Anything below Y:1520 on a 1080×1920 canvas is at risk.
Feed ads have the profile header (~100 px above your image) and the caption + CTA block (~120 px below). Stories and Reels ads have the Sponsored label at the top (~150 px) and the CTA + reply bar at the bottom (~400 px). These don't overlap your image directly in feed ads, but they crowd it visually — your creative needs to stop scroll on its own without help.
The reliable rule across every Instagram ad placement: keep your headline, focal point, and any logo inside the central 60% vertically. For a 1080×1920 Story or Reels ad, that's roughly Y:380 to Y:1540. For a 1080×1350 feed ad, that's Y:270 to Y:1080. Center horizontally too — on Reels especially, the rightmost 80 px is reserved for engagement buttons.
| Placement | Top Overlay | Bottom Overlay | Effective Safe Zone |
|---|---|---|---|
| Feed (1080×1080) | ~80 px crowd | ~120 px crowd | Y:80 – Y:960 |
| Feed (1080×1350) | ~80 px crowd | ~120 px crowd | Y:80 – Y:1230 |
| Story Ad (1080×1920) | ~250 px | ~400 px | Y:250 – Y:1520 |
| Reels Ad (1080×1920) | ~250 px | ~400 px + right 80 px | Y:250 – Y:1520, X:0 – X:1000 |
For the full safe-zone reference across every Instagram placement, see the Instagram Safe Zones Guide.
Text placed in the top or bottom 250 px of a Story or Reels ad gets covered by the header and CTA button. The fix is to move all text into the central safe zone (Y:250 to Y:1520) and design with the CTA button mocked in from the start.
A 16:9 horizontal video repurposed as a 9:16 Reels ad gets letterboxed with massive black bars. A 1:1 square dropped into a 4:5 feed slot leaves dead space. Re-cut and re-frame for each placement; don't ship one master file across all placements.
Instagram aggressively compresses every uploaded creative. Starting under the recommended resolution — or with a screenshot of a screenshot — produces blurry ads that look unprofessional and signal "scam" to scrolling users. Always upload at the full target dimensions or higher.
Instagram doesn't enforce the old 20% text rule strictly anymore, but text-heavy creatives still get penalized in delivery and almost always perform worse. Cut your headline to 5–7 words. If you can't, the offer is too complex for an ad — rebuild it in the Free Thumbnail Editor.
Light text on a busy photo. Dark text on a dark gradient. Thin script fonts at small sizes. All of these make headlines unreadable in the feed where ads scale to ~30% of original size. Use heavy weights (700+), high-contrast color pairs, and stroke or shadow effects on top of photos.
Designs that look perfect on a 27-inch monitor fall apart on a 6-inch phone. Over 95% of Instagram ad impressions come from mobile, and that's the screen the safe zones are calibrated for. Always design and preview at actual phone display size, not desktop.
Free tools that work alongside this guide to verify every part of your Instagram ad creative before launch: