
How to Write Push Notifications That Users Actually Read
A practical copywriting guide for mobile push notifications. Covers the anatomy of high-open notifications, writing strong titles and body copy, urgency without manipulation, and using AI to scale good copy.
Your notification has about half a second on a user's lock screen before they make a decision. They don't read it — their brain scans it. The pattern of words either triggers interest or gets filed under "I'll deal with this never." Understanding that half-second is the whole game.
This guide covers how to write notification copy that earns the tap. Not through tricks or fake urgency — through copy that actually reflects something the user wants to know or do.
The 0.5 Second Attention Window
Here's what actually happens when a notification arrives: the user's phone makes a sound or vibrates. They glance at the lock screen. Their eye catches the app icon and notification title. In less than a second, they've made a decision: tap, dismiss, or ignore.
In that fraction of a second, they're not reading — they're pattern matching. They're asking subconsciously: "Is this something that affects me right now?" If the answer isn't immediately yes, they move on.
The implication for copywriting: your title has to pass the scan test. It needs to communicate relevance in 5-7 words without requiring the user to parse a complete sentence. That's a different skill from email subject lines or ad copy, where readers have more context and patience.
The scan test: Cover your notification's body text and read only the title. Would you tap based on just those words? If you need the body text to make the title make sense, the title needs work.
Anatomy of a High-Open Push Notification
High-performing push notifications consistently have five things in common:
Specificity
"Your cart" beats "Complete your purchase." "Day 14" beats "Keep your streak." Specific details signal that the notification is about the actual user, not a mass-blast template.
Works:
"Your cart has 3 items from last week."
Doesn't work:
"Don't forget to complete your purchase!"
Immediate relevance
The notification connects to something happening now (a streak about to break, an offer expiring, a friend's activity, a market move). If the timing feels arbitrary, open rates drop.
Works:
"Julia just commented on your post."
Doesn't work:
"Check out what's new in the app!"
Minimal jargon
Plain language outperforms corporate phrasing. Users scan fast — unfamiliar words slow processing and reduce taps.
Works:
"Your 7-day streak ends tonight. Jump in."
Doesn't work:
"Maintain your usage continuity for streak preservation."
Implied action
The notification should make the action feel obvious without explicitly saying "Click here." The implicit invitation (the reminder, the status update, the offer) should naturally suggest what to do.
Works:
"New message from Sarah."
Doesn't work:
"You have a new message. Open the app to read it."
Appropriate length
iOS shows ~100 characters before truncation. Android shows slightly more. Get the core message in the first 80 characters in case truncation happens.
Works:
Gets the point across in 60-80 characters.
Doesn't work:
Writes a full sentence in the title and relies on body text for context.
Writing Titles That Earn the Tap
The title is the most important line. Here are the most effective structural patterns for notification titles, with examples for each:
The progress marker
References the user's specific progress or streak. Creates personal relevance instantly.
"Day 14. Almost three weeks."
"You're 3 workouts from your monthly goal."
Best for: Fitness, education, habits, gamification
The activity trigger
References something another user (or the system) just did. Time-pressure signals.
"Alex started your challenge."
"Your portfolio moved 2.3% today."
Best for: Social, finance, news, real-time apps
The direct address
Short, casual, like a message from a friend. Works when your app has a personal or coaching tone.
"Hey, morning."
"How's the project going?"
"Ready when you are."
Best for: Coaching, wellness, productivity, small-team apps
The specific offer
Mentions the exact value clearly. Avoids vague promotional language.
"Free delivery ends in 4 hours."
"Your referral credit: ₹200 waiting."
Best for: E-commerce, subscription apps, referral programs
The curiosity gap
Implies something interesting without revealing it — works when the content is genuinely worth the tap.
"Something changed in your account."
"We noticed something about your week."
Best for: Use sparingly. Only when the reveal genuinely pays off the curiosity.
Body Copy That Justifies the Tap
Not all notifications need body text. A notification title like "New message from Maria." is complete on its own — the body text would just be the message preview. But for campaigns and engagement notifications, the body adds context that can tip a hesitant user into tapping.
Three things body text should do:
✓ Add a specific detail the title left out
Title: "Your cart is waiting." Body: "The Merino hoodie in your cart is low stock — 3 left."
✓ Reduce friction for taking the action
Title: "Day 7 streak." Body: "Just 15 minutes today. Your session starts where you left off."
✓ Reinforce relevance with a human tone
Title: "We haven't seen you in a while." Body: "No rush. Everything's still here when you're ready."
What body text should not do: repeat the title in different words, use filler phrases like "Don't miss out!" or "Act now!", or explain how the app works. The user already has the app.
Urgency Without Manipulation
Urgency is one of the most effective open rate drivers when it's real. A notification about a flash sale that actually ends in 4 hours is legitimate urgency. A notification that says "Limited time offer!" when the offer has been running for 3 months is manipulation, and users learn to ignore it fast.
The test for legitimate urgency: is the deadline real? Would the user be annoyed if they found out the "limited" offer was actually available indefinitely?
Legitimate urgency
- "Sale ends at midnight."
- "Your streak ends today if you don't practice."
- "Free delivery expires in 2 hours."
- "Only 3 items left in your size."
- "Registration closes tomorrow."
Fake urgency (avoid)
- "Limited time offer!"
- "Don't miss out on this deal!"
- "Act NOW before it's too late!"
- "Exclusive offer just for you!"
- "Hurry — this won't last!"
Fake urgency erodes trust over time. When users realize the "exclusive" and "limited" tags are always there, they stop reading the notification content at all. Use urgency when it's actually true, and your users will respond to it more reliably.
Personalization: The Right Kind and the Creepy Kind
Personalization improves open rates when it feels helpful, not surveillance-y. The line between the two is thinner than most marketers realize.
Name personalization
Works sometimes, overused often"Hey Maria, your cart is waiting." is fine. "Maria, we noticed you browsing workout gear on Wednesday" starts to feel tracked. Use first names sparingly — every notification doesn't need one.
Activity-based personalization
High impact, low creepiness risk"Your 12-day streak ends today." "You're 2 lessons from completing the course." These are helpful because they reference the user's own progress — they don't feel invasive, they feel attentive.
Location-based personalization
Useful for commerce, risky for others"A coffee shop near you has a deal." works for apps where location is expected. "We noticed you're at the gym again" from a wellness app crosses a line.
AI-generated personalization
High value when context is clearAI can vary tone and angle based on campaign context (new user vs. returning user, morning vs. evening, fitness app vs. finance app). This produces content that feels relevant without requiring granular personal data.
Optimal Length for iOS and Android
iOS
- Title: ~45 characters shown on lock screen, ~130 on expanded
- Body: ~100 characters on lock screen
- Recommendation: Keep title under 40 characters, body under 80
Android
- Title: ~50 characters in standard view
- Body: ~100 characters in standard, more in expanded
- Recommendation: Keep title under 50 characters, use body for detail
12 Bad vs Good Notification Examples
Avoid
"Check out what's new in the app!"
Better
"Workout logging now has automatic heart rate import."
Specific feature update beats generic discovery prompt
Avoid
"Don't forget to complete your purchase!"
Better
"The hoodie in your cart just dropped to ₹1,499."
Price drop is a reason. "Don't forget" is not.
Avoid
"We miss you! Come back to the app."
Better
"22 days since your last session. Everyone starts again somewhere."
Specific + low-pressure vs. vague + guilt-inducing
Avoid
"Limited time offer just for you!"
Better
"25% off your order — expires tonight at midnight."
Real deadline beats fake exclusivity
Avoid
"Your account needs attention."
Better
"Your free trial ends in 3 days. Keep your settings."
Specific consequence beats vague alarm
Avoid
"Complete your profile to unlock features!"
Better
"Add your fitness goals to get your first personalized plan."
Shows the specific value, not just the task
Avoid
"Tap here to resume your lesson!"
Better
"You're 4 minutes from finishing Module 3."
Progress context creates motivation
Avoid
"Daily reminder: practice makes perfect!"
Better
"Day 8. Your French is measurably better than day 1."
Evidence of progress beats generic platitude
Avoid
"New deals available now!"
Better
"Shoes from your wishlist are 30% off for the next 6 hours."
Personal relevance (wishlist) + real deadline
Avoid
"Congratulations! You've earned a reward!"
Better
"500 points earned. You're 200 away from a free month."
Specific amounts + progress toward goal
Avoid
"Our app has new features you'll love!"
Better
"The dark mode you requested is live."
Personalizes to a real user request
Avoid
"Your weekly report is ready."
Better
"Last week: 4 sessions, 2.3km more than the week before."
Headline stat beats generic report prompt
Using AI to Scale Good Copy
Writing one excellent notification is something any decent copywriter can do in 10 minutes. Writing 365 of them for a daily campaign, maintaining consistent quality and varying angles enough to avoid content fatigue — that's a different problem.
This is where AI content generation genuinely helps. PushPilot uses Google Gemini to write unique notification copy for every scheduled send. The AI works from your campaign description: the app type, goal, tone, and audience. The more specific your description, the better the output.
Effective vs ineffective campaign descriptions
Too vague (produces generic output)
"Daily reminder for fitness app users to use the app."
Specific (produces human-sounding output)
"Daily streak reminder for a yoga and meditation app. Users practice 15-30 minutes per session. Tone is calm, encouraging, non-judgmental. Address users directly. Vary angles: progress celebration, gentle accountability, mindfulness framing, humor sometimes. Avoid corporate language."
The AI maintains your campaign's voice while rotating through different emotional angles across sends. Users don't see a pattern because there isn't one — and your open rate holds steady over months instead of declining after the first few repetitions.
Testing Your Copy Without a Big A/B Test Budget
Formal A/B testing requires statistically meaningful sample sizes (usually 1,000+ recipients per variant for reliable results). Most indie apps don't have that volume. Here's a simpler approach that still surfaces useful signal:
Pattern tracking over time
Send different notification styles in alternating weeks and track open rates. Not statistically rigorous, but gives directional insight into which copy styles resonate with your audience.
Opt-out rate monitoring
A spike in opt-outs after a specific campaign is a signal the copy was off, the timing was wrong, or the frequency was too high. Opt-out rate is the fastest feedback loop available.
Open rate trend
A declining open rate trend over 30 days on the same campaign signals content fatigue. Test a different angle (different emotional hook, different structural pattern) and see if the trend reverses.
First-week cohort comparison
Compare the open rate of new users in week 1 vs. users who have been receiving the campaign for 60+ days. The gap shows you how much content fatigue has set in. A big gap means it's time to refresh the copy.
If you're using PushPilot's AI campaigns, the content freshness problem is handled automatically — each send is unique. Your testing effort shifts from "which copy should I write this week" to "is the campaign description producing the right tone and angle for my audience."
Frequently Asked Questions
How long should a push notification be?
Keep the title under 40-50 characters so it doesn't get cut off on lock screens. Body text can go to 80-100 characters. The practical rule: write for the lock screen, where most users decide whether to tap. If your message needs more than 80 characters to make sense, it's too long.
Should I use emojis in push notifications?
It depends on your app's tone. For casual, consumer apps (fitness, gaming, social), emojis in the title increase click rates by 5-10% on average. For professional or finance apps, emojis feel out of place and can reduce trust. Test with your specific audience before committing.
What makes a push notification title effective?
Specificity, immediate relevance, and scannability. A good title communicates what's happening (or what the user should do) in 5-7 words without requiring the body text to make sense. The title should pass the scan test: readable in under a second, relevant to the recipient's current situation.
How do I write push notifications that feel human, not robotic?
Use conversational language. Write the way you'd text a friend about the same topic, not the way you'd write a formal email. Contractions (it's, you're, don't) make copy feel more natural. Short sentences with clear subjects beat passive constructions. And avoid hollow phrases: 'act now,' 'don't miss out,' 'exclusive offer' — they read as template copy because they are template copy.
Can AI write push notifications that sound human?
Yes, when given specific context. Vague prompts produce generic output. A specific campaign description — app type, user context, specific goal, tone constraints, what to avoid — gives the AI enough context to produce copy that sounds like someone who knows the product wrote it. PushPilot's AI consistently varies angles while maintaining the voice defined in your campaign description.
Ready to automate your push notifications?
Start sending AI-powered push notifications in under 5 minutes. Free plan available — no credit card required.
Get Started Free