Case study
A 25M-user edutainment app
$100M+ ARR · 100M downloads
How category-level personalization lifted notification CTR +43% and doubled second-video starts
In six weeks, Pavo took the app's sticky notifications from broadcast logic to category-level personalization, lifting engagement across the full funnel, from click to second-video start, and deepening the retention a subscription business runs on.
- Monthly active users
- 25M
- Downloads
- 100M
- Annual recurring revenue
- $100M+
- Surface personalized
- Notifications
- +43%Notification CTR
- +94%Second-video initiation
- +27%70% video completion
- +23%40% video completion
The problem
Broadcast to everyone, personalized for no one
The app's notifications ran on a broadcast model: the same four daily pushes, 7, 9, 11 AM and 1 PM, to everyone, chosen from a handful of manual and query-driven sources.
Pavo found the ranking query counted views driven by earlier notifications, a self-reinforcing loop, and organized content into three business units (Awareness, Income, Skill) on the content side only. On the audience side there was no segmentation at all.
The symptom was a plateauing click-through rate around 1.27%. But this wasn't a content-quality problem, the app's library has strong organic engagement, it was a matching problem: the right content existed, it just wasn't reaching the right users. In a subscription business, every day a user doesn't find value is a day closer to churn.
- 01Content-manager requests
- 02Event-driven manual picks, breaking news, trending topics, seasonal events
- 03A query ranking content by total watch hours per business unit
“Getting a high CTR is easy, maybe by sending clickbaity notifications. That's why I want to track a more holistic metric: not just get the user on the platform, but let them consume the content.”
The approach
Map the system, fix the signal, ramp in phases
Pavo's principle: start with the broadest segmentation that could show lift in week one, validate it rigorously, build trust, then go deeper.
- 01
Compiled the tribal knowledge
Pavo connected to the app's warehouse and mapped every table in the notification pipeline, content metadata, user profiles, video-play tables, MoEngage campaign data, and funnel tables, into a complete operational model, and reviewed the daily ranking queries. That surfaced the structural issues silently capping performance: the self-reinforcing notification loop, and organic signals drowned out by notification-driven views.
- 02
Designed the content-selection logic
With a mandate to power half the notification slots, Pavo built new selection logic: one slot for proven organic performers (evergreen content up to 120 days old), one for fresh, trending content. Both replaced raw view counts with a quality-weighted score across intent, completion depth, and second-video likelihood, plus category-diversity multipliers, saturation penalties, and organic-only counting.
- 03
Ramped up in phases
Phase 1 (3 weeks): a 50/50 A/B matching each user to their primary interest group, Awareness, Income, Skill, or English, with two slots held as concurrent controls. Phase 2 (3 weeks): reclassify users into 16 category-level segments learned from watch behavior, and roll out to 100% of users across the 9 AM and 1 PM slots.
The results
Lift across the full funnel, not just the click
From click to second-video start, every stage moved, and the deeper the funnel stage, the larger the lift.
- Notification CTR+43%
- Second-video initiation+94%
- 70% video completion+27%
- 40% video completion+23%
- Click → 5s watched+18%
CTR climbed the ladder from a 1.27% broadcast baseline to 1.65% with interest-group personalization to 1.82% at category level.
Engagement depth
The fit compounded through every stage
| Funnel stage | Broadcast | Phase 1 | Phase 2 | Lift vs broadcast |
|---|---|---|---|---|
| Click → 5s watched | 30.5% | 32.4% | 36.1% | +18% |
| 40% video completion | 33.0% | 39.6% | 40.6% | +23% |
| 70% video completion | 24.5% | 29.8% | 31.1% | +27% |
| 2nd-video initiation | 10.7% | 13.8% | 20.7% | +94% |
“We've seen a good jump in numbers and we've been able to maintain them in a stable way. The category-level bifurcation we did is the right spot.”
What's next
The 16-cluster layer is the floor, not the ceiling
| Phase | What it is |
|---|---|
| Phase 0 · Broadcast (historical) | Same content to all users |
| Phase 1 · Interest-group segments | 4 interest groups, group-level content; ranked by watch hours |
| Phase 2 · Category segments (current) | 16 category-based groups; ranked by deeper engagement metrics |
| Phase 3 · Per-user rules | Individual content from user intelligence (lifecycle, responsiveness, preference) and content intelligence (collaborative filtering, dedup, continuity) |
| Phase 4 · Per-user predictions | ML models rank content per user by predicted engagement; collaborative filtering becomes model-informed |
| Phase 5 · Self-learning | Adaptive exploration and weekly retraining; the system improves autonomously from feedback |
In closing
What made this possible
In six weeks Pavo mapped the notification system, found the structural flaws capping it, designed new quality-weighted selection logic, and ran a phased A/B program from interest groups to 16 category clusters, moving every stage of the funnel while holding CTR gains stable. The next target state is user-level, self-learning personalization above the cluster layer.
More case studies
Teams using Pavo to move the metrics that matter, in production, at scale.
- Feed Personalisation 2Technical case-study rewriteHow Pavo’s Segment-Adaptive Personalization Lifted Time Spent by 4.5%+4.5%Platform-wide time spentRead case study
- A high-traffic consumer platformRecommendation systems · ExperimentationBetter offline tests lead to more production wins−0.4 → +0.8Offline–online rank correlationRead case study
