Push Notification Character Limits: The Complete Cheat Sheet for Every Platform

Getting your push notification character limit right is the difference between a message that drives action and one that gets cut off mid-sentence. Every platform — iOS, Android, and web — enforces different truncation rules for titles, body text, images, and action buttons. If you exceed them, your carefully crafted message turns into "Your order has been shi…"
Not ideal.
This complete cheat sheet covers every push notification character limit across all major platforms, along with icon specs, image dimensions, action button constraints, and real-world push notification examples that show you exactly how to write messages that fit — and convert.
Whether you're a product manager drafting your first notification or a seasoned marketer optimizing click-through rates, bookmark this guide. You'll reference it often.
Why Push Notification Character Limits Matter
Character limits aren't just a technical constraint — they directly impact performance:
- Truncated messages reduce clarity. If users can't read the full message on their lock screen, they won't tap it.
- Different devices show different amounts of text. A message that looks perfect on a Pixel 8 may get cut off on an iPhone SE.
- Notification shade vs. lock screen vs. banner — each view has its own display rules. The lock screen on iOS shows fewer lines than the expanded notification center.
- Rich media (images, buttons) further reduces the space available for text. Adding an image pushes the body text into a smaller area.
Understanding these limits helps you write concise, high-impact messages every time. And when you pair smart copywriting with a reliable push notification service, you maximize both delivery and engagement.
iOS Push Notification Character Limits
Apple's APNs (Apple Push Notification service) allows a maximum payload size of 4 KB (4096 bytes). However, the visible character limits on-screen are far more restrictive and depend on the device, font size, and notification style.
iOS Text Limits
| Element | Technical Max | Visible on Lock Screen | Visible When Expanded | Recommended |
|---|---|---|---|---|
| Title | 178 characters | ~40–50 characters (1 line) | ~110 characters (2 lines) | 30–40 characters |
| Subtitle | 178 characters | ~40–50 characters (1 line) | ~110 characters (2 lines) | 20–30 characters |
| Body | 178 characters | ~90–120 characters (2–4 lines) | ~178 characters (visible in full) | 80–100 characters |
Note: iOS Dynamic Island on iPhone 14 Pro and later shows an even more compressed preview — typically only the title and the first few words of the body. Design for the shortest view first.
iOS Image & Icon Specs
| Asset | Format | Recommended Size | Max File Size | Notes |
|---|---|---|---|---|
| App Icon | PNG | 120×120 px (@2x), 180×180 px (@3x) | N/A | Pulled automatically from app bundle |
| Rich Notification Image | JPEG, PNG, GIF | 1024×1024 px (square) or 1038×1038 px | 10 MB | Displayed via Notification Service Extension |
| Notification Thumbnail | JPEG, PNG | 1024×1024 px | 10 MB | Cropped to circle/square in compact view |
| Video Attachment | MPEG-4 | Up to 1080p | 50 MB | Requires Notification Content Extension |
iOS Action Buttons
- Maximum of 4 action buttons per notification (in a notification category)
- Button title limit: ~24 characters before truncation
- Supports destructive (red) and authentication-required action styles
- iOS 15+ supports focus filters that may suppress notifications entirely
Android Push Notification Character Limits
Android uses Firebase Cloud Messaging (FCM) with a maximum payload of 4 KB (4096 bytes). Android is generally more generous with visible text, especially on devices running Android 12+.
Android Text Limits
| Element | Technical Max | Visible in Collapsed View | Visible When Expanded | Recommended |
|---|---|---|---|---|
| Title | 65 characters | ~40–50 characters (1 line) | ~65 characters | 30–40 characters |
| Body | 240 characters | ~40–90 characters (1–2 lines) | ~240 characters (BigTextStyle) | 80–120 characters |
| Sub-text | 40 characters | ~20–30 characters | ~40 characters | 20–30 characters |
Important: Android truncation varies significantly by manufacturer. Samsung, Xiaomi, Huawei, and OPPO all apply custom notification UIs. A push notification that displays 3 lines on stock Android may show only 1 line on a Xiaomi device with MIUI. Always test across OEM skins.
Android Image & Icon Specs
| Asset | Format | Recommended Size | Notes |
|---|---|---|---|
| Small Icon | PNG (white + transparent) | 24×24 dp (72×72 px @3x) | Monochrome only; tinted by system accent color |
| Large Icon | PNG, JPEG | 256×256 px | Displayed as thumbnail on the right side of the notification |
| Big Picture | JPEG, PNG | 1024×512 px (2:1 ratio) | Shown when notification is expanded (BigPictureStyle) |
| Notification Channel Icon | PNG | 24×24 dp | Android 8.0+ notification channels |
Android Action Buttons
- Maximum of 3 action buttons per notification
- Button label limit: ~15–20 characters before truncation (varies by device width)
- Supports inline reply (direct reply) from the notification shade
- Android 12+ applies rounded corners and custom coloring to notifications
Push Notification Icon Best Practices for Android
The push notification icon is the small monochrome icon that appears in the status bar and notification shade on Android. Getting it wrong is one of the most common mistakes:
- DO: Use a simple, recognizable silhouette in white on a transparent background
- DON'T: Use your full-color app icon — Android will render it as a solid white or gray square
- DO: Provide icons at multiple densities (mdpi through xxxhdpi)
- DON'T: Add fine details that disappear at 24×24 dp
On iOS, the push notification icon is always your app icon — no customization is needed (or possible) for the notification itself.
Web Push Notification Character Limits
Web push notifications (delivered via the Push API and service workers) have their own limits, which vary significantly by browser and operating system.
Web Push Text Limits by Browser
| Browser / OS | Title Limit (Visible) | Body Limit (Visible) | Notes |
|---|---|---|---|
| Chrome (Windows) | ~50 characters | ~120 characters (2 lines) | Uses Windows notification center |
| Chrome (macOS) | ~35 characters | ~90 characters (3 lines) | Uses macOS notification system |
| Chrome (Android) | ~50 characters | ~90 characters | Matches Android native notification |
| Firefox (Windows) | ~50 characters | ~120 characters | Similar to Chrome behavior |
| Firefox (macOS) | ~35 characters | ~90 characters | Uses macOS native alerts |
| Safari (macOS) | ~35 characters | ~90 characters | Supported from macOS Ventura (13+) |
| Safari (iOS) | ~50 characters | ~120 characters | Supported from iOS 16.4+ (PWA only) |
| Edge (Windows) | ~50 characters | ~120 characters | Uses Windows notification center |
Web Push Image & Icon Specs
| Asset | Recommended Size | Format | Notes |
|---|---|---|---|
| Icon | 192×192 px or 512×512 px | PNG, JPEG | Displayed next to the notification title |
| Badge | 96×96 px | PNG | Monochrome; shown in Android status bar for web push |
| Image | 1350×900 px (3:2) or 1024×512 px (2:1) | PNG, JPEG | Chrome 56+ supports image in web push |
Web Push Action Buttons
- Chrome: Up to 2 action buttons (with optional icons)
- Firefox: Up to 2 action buttons
- Safari: Action buttons not supported for web push (as of 2026)
- Button label limit: ~20–25 characters
Universal Character Limit Quick-Reference Table
Here's a consolidated cheat sheet you can screenshot or bookmark:
| Element | iOS | Android | Web (Chrome) | Safe Universal Limit |
|---|---|---|---|---|
| Title | 50 visible | 50 visible | 50 visible | 30–40 characters |
| Body | 120 visible (lock screen) | 90 visible (collapsed) | 120 visible | 80–100 characters |
| Action Button Label | 24 chars | 15–20 chars | 20–25 chars | 15 characters |
| Payload Size | 4 KB | 4 KB | 4 KB | 4 KB |
Rule of thumb: If you keep your title under 40 characters and your body under 100 characters, your message will display cleanly across virtually every device and platform.
Push Notification Examples: Good vs. Bad
Real push notification examples make the difference tangible. Here's how character limits affect readability and engagement in practice.
Example 1: E-Commerce — Flash Sale
Bad (truncated on most devices):
Title: Don't Miss Our Biggest Summer Sale of the Year — Everything Must Go!!! Body: We're offering 50% off on all electronics, clothing, home goods, furniture, and outdoor equipment for the next 48 hours only — plus free shipping on orders over $50 and an extra 10% off with code SUMMER2026.
What the user actually sees:
Title: Don't Miss Our Biggest Summer Sale of th… Body: We're offering 50% off on all electronics, clothing, home goods, furniture, and outdoor…
Good (fits within limits):
Title: Flash Sale: 50% Off Everything ⚡ Body: 48 hours only. Free shipping over $50. Use code SUMMER2026 for an extra 10% off.
Title: 33 characters. Body: 78 characters. Displays fully on all platforms.
Example 2: Food Delivery — Order Update
Bad:
Title: Your Order Update Body: Hi John! We wanted to let you know that your order #48291 from Sakura Sushi has been picked up by your delivery driver and is currently on its way to your location.
Good:
Title: Your sushi is on its way 🍣 Body: Order #48291 from Sakura Sushi — arriving in ~15 min. Track your driver live.
Title: 27 characters. Body: 72 characters. Specific, actionable, fully visible.
Example 3: News App — Breaking Alert
Bad:
Title: BREAKING NEWS ALERT!!! Body: The Federal Reserve has just announced an unexpected interest rate cut for the first time in three years, sending markets surging across all major indices.
Good:
Title: Breaking: Fed Cuts Interest Rates Body: First rate cut in 3 years. Markets surge across all major indices. Tap for full coverage.
Title: 33 characters. Body: 87 characters. Urgency without shouting.
Example 4: Fitness App — Re-Engagement
Bad:
Title: Hey! We miss you 😢😢😢 Body: It's been a while since you last opened the app. Come back and check out all the new features we've added!
Good:
Title: 3-day streak at risk 🔥 Body: Just 10 minutes today to keep it alive. Your leg day workout is ready.
Title: 22 characters. Body: 67 characters. Specific, motivating, personal.
Push Notification Best Practices Beyond Character Limits
Fitting within character limits is necessary, but not sufficient. Here are the push notification best practices that separate high-performing campaigns from noise:
1. Front-Load the Most Important Information
Users scan from left to right, and truncation cuts from the right. Put the key value proposition — the discount percentage, the delivery ETA, the score update — in the first few words.
2. Use Numbers and Specifics Over Vague Language
"50% off for 2 hours" outperforms "Big sale happening now" every time. Numbers are scannable and create urgency.
3. Personalize With Dynamic Data
Insert the user's name, order number, favorite team, or last-viewed product. Personalized push notifications see 2–3× higher click-through rates compared to generic blasts.
4. Match Tone to Context
A playful re-engagement message and a bank fraud alert require completely different tones. Match the urgency and emotion of the situation.
5. Test on Actual Devices
Emulators and preview tools don't capture OEM-specific notification UIs. Test on real iPhones, Samsung Galaxy devices, and Pixel phones to see exactly how your message renders.
6. Use Rich Media Strategically
Images and action buttons increase engagement — but only if they add value. A product image in an abandoned cart notification is helpful. A generic stock photo is not.
7. Respect Frequency and Timing
Even the perfectly written notification fails if you send 5 per day or wake users up at 3 AM. Use intelligent send-time optimization and frequency capping.
To implement these best practices at scale, you need infrastructure that supports rich media, A/B testing, segmentation, and cross-platform delivery. A purpose-built push notification platform handles the technical complexity so you can focus on crafting the right message.
Platform-Specific Payload Breakdown
For developers who need the technical details, here's how the payload is structured on each platform:
APNs Payload (iOS)
{
"aps": {
"alert": {
"title": "Your title here (30-40 chars)",
"subtitle": "Optional subtitle (20-30 chars)",
"body": "Your message body (80-100 chars)"
},
"badge": 1,
"sound": "default",
"mutable-content": 1
},
"custom_key": "custom_value"
}FCM Payload (Android)
{
"message": {
"notification": {
"title": "Your title here (30-40 chars)",
"body": "Your message body (80-120 chars)",
"image": "https://example.com/image.jpg"
},
"android": {
"notification": {
"channel_id": "your_channel",
"icon": "ic_notification"
}
}
}
}Web Push Payload
{
"title": "Your title here (30-40 chars)",
"body": "Your message body (80-100 chars)",
"icon": "/icons/icon-192.png",
"badge": "/icons/badge-96.png",
"image": "/images/notification-banner.jpg",
"actions": [
{ "action": "view", "title": "View Details" },
{ "action": "dismiss", "title": "Dismiss" }
]
}Common Mistakes to Avoid
| Mistake | Why It Hurts | Fix |
|---|---|---|
| Writing titles over 50 characters | Truncated on lock screen | Keep under 40 characters |
| Using a full-color Android icon | Renders as white/gray blob | Use monochrome silhouette on transparent background |
| Same message for all platforms | Each platform truncates differently | Tailor copy per platform or use universal safe limits |
| Ignoring OEM differences on Android | Xiaomi, Samsung, OPPO all render differently | Test on top 3–5 OEM devices in your user base |
| Sending images without fallback text | If image fails to load, the notification feels empty | Always write body text that works standalone |
| ALL CAPS titles | Feels like spam; reduces trust | Use sentence case or title case |
| No clear CTA | Users see the notification but don't know what to do | End with an action: "Tap to track," "Shop now," etc. |
FAQs
What is the push notification character limit for iOS?
The iOS push notification character limit is 178 characters for the title, subtitle, and body fields individually. However, the visible limit on the lock screen is approximately 50 characters for the title and 120 characters for the body. We recommend keeping titles under 40 characters and body text under 100 characters for consistent display across all iPhone models.
What is the push notification character limit for Android?
Android allows up to 65 characters for the title and 240 characters for the body in an expanded (BigTextStyle) notification. In the collapsed view, only about 40–50 title characters and 40–90 body characters are visible. Keep in mind that Android OEM skins (Samsung One UI, Xiaomi MIUI, etc.) may truncate more aggressively than stock Android.
What is the maximum payload size for push notifications?
The maximum payload size is 4 KB (4096 bytes) across all three major platforms — APNs (iOS), FCM (Android), and Web Push. This includes the title, body, custom data, and metadata. If you need to send more data, include a URL or ID in the payload and fetch additional content when the user opens the notification.
How many action buttons can I add to a push notification?
iOS supports up to 4 action buttons, Android supports up to 3, and web push (Chrome/Firefox) supports up to 2. Safari web push does not currently support action buttons. Keep button labels under 15 characters to avoid truncation across all platforms.
What size should a push notification icon be?
For Android, the small push notification icon should be 24×24 dp (which translates to 72×72 px at xxxhdpi) and must be monochrome white on a transparent background. The large icon should be 256×256 px. For web push, use 192×192 px or 512×512 px for the icon. On iOS, the app icon is used automatically and cannot be customized per notification.
Do push notification character limits differ between lock screen and notification center?
Yes. On both iOS and Android, the lock screen view is the most restrictive — typically showing only 1 line for the title and 2–4 lines for the body. When a user expands the notification or views it in the notification center, more text becomes visible. Always optimize for the lock screen first, since that's where most users encounter your message.
What image size should I use for rich push notifications?
For iOS, use 1024×1024 px for a rich notification image (max 10 MB). For Android BigPictureStyle, use 1024×512 px (2:1 aspect ratio). For web push, use 1350×900 px (3:2) or 1024×512 px (2:1). Always compress images to reduce load time — a notification with a slow-loading image may display without the image entirely.
How do I test push notification character limits before sending?
The best approach is to send test notifications to real devices. Use platform-specific tools like Xcode's push notification simulator for iOS, Firebase Console's test messaging for Android, and browser DevTools for web push. You can also use push notification testing tools that preview how your message will render across platforms before you hit send.
Conclusion
Every character counts in a push notification. With screen real estate measured in pixels and user attention measured in milliseconds, understanding the push notification character limit for every platform isn't optional — it's foundational.
Here's your quick takeaway:
- Titles: Keep under 40 characters for universal safety
- Body text: Keep under 100 characters for lock screen readability
- Action buttons: Keep labels under 15 characters
- Images: Follow platform-specific dimensions and always provide fallback text
- Icons: Use monochrome, transparent-background PNGs for Android; iOS handles it automatically
Bookmark this cheat sheet. Share it with your team. And the next time you draft a push notification, check your character count before you check anything else.


