User Retention
User Retention
How do we classify users and send them useful notifications to engage our users, keep them coming back and convert them to core users?
Rule 1: no daily digest emails. Targeted notifications only.
Rule 2: Context Aware emails with a clear call to action
Rule 3: Experimentation
Classifying Users
We timestamp our users when they login
Users enter states based on their inactivity
We track when their state changes.
We assign them a class of user
We tie them to a kite for easy visibility
For a day, week, month, custom time period:
A user is:
- New: Accounts less than a week old
- Core: Users who are active 75% of the time over a given period
- Casual: Users who are active to 25% of the time over a given period
- Cold: Users who are active 0% of the time over a given period.
- Resurrected: User who were Cold during the previous given period, but active this one
Question: what makes a user active? (Posting something, browsing … ?)
We assign them to an outreach campaign
An outreach campaign is a set of emails/push notifications that get sent out at specific intervals under specific conditions
Campaign A (Reach out to cold users):
When AN ACTIVE OR CASUAL USER goes COLD, we send a “Here’s what you’re missing on minds” email.
Campaign B (Turn casual users into active users)
When a CASUAL USER has been using the site for a week, we send a “Here’s some other networks that might of interest” email
All emails and push notifications report back when a user acts on them.
We accumulate statistics based on successful notification types and their campaigns
Daily Reports
Pretty dashboards to excite executes/board members and identify successful (and unsuccessful) campaigns
Total Active over a Specific Time Range for a Day, Month, Year or Custom Time Period
Report: Total Active
| Total Active Yesterday | 1,000,000 users |
| ---------------------- | --------------- |
| New users | 100,000 |
| Core users | 300,000 |
| Casual Users | 300,000 |
| Resurrected Users | 200,000 |
Report: Total Loss
| Total Loss | 10,000 users |
| ---------------- | ------------ |
| Deactivations | 5,000 |
| Net Active Users | 5,000 |
Report: Email Campaigns
| Campaign | Notification Type | Number Sent | Number Activated | Efficacy |
| ---------- | --------------------- | ----------------- | ---------------- | -------- |
| Campaign A | Reach out | 1,000 | 500 | 50% |
| Campaign A | Here’s what happening | 1000 | 900 | 90% |
| | | New core users | 250 | |
| | | New casual users | 100 | |
| | | Resurrected users | 150 | |
Phases
1. Classify our users in ElasticSearch with a time stamp.
2. Provide an admin api query that returns users classified by their timestamp
3. Provide a dashboard for viewing the metrics
4. Allow creation of email campaigns by admins
5. Send out tracking emails based on the configured campaigns as a batched background task
6. Update dashboards to include the finalized metrics
7. Once everything is ironed out, look into awarding tokens to increase user engagement
Each phase allowing for subsequent refinement and tuning based on the viewable metrics.
Future state
Assign specific campaigns that aren’t scheduled, but are driven from user to user.
EG: Your friends might be interested in something your #hashtag
EG: Get your #hashtag community involved, invite them to the minds platform
epic