We use cookies to make your exploring a better experience. Please see our  cookies' policy.
How We Increased User Engagement in Our App by 150%

How We Increased User Engagement in Our App by 150%

oleksandr-kot-data-scientist By

It’s finally here: the moment when your product is finished, and you need to move on to the next stage of Customer Development. Part of it is learning how to decrease churn using automated methods. You must realize that if your product is B2C, you can’t do it with your bare hands, but there’s no other way to do it, if you want to get the tight Product/Market Fit.

 

It’s always sad to see when users get on board, but don’t stick around for long. It’s like pouring water into a bucket with no bottom. You spend a lot of money on user acquisition, and then they simply leave.

 

In this article, we’ll talk in detail about what to do to prevent customers from leaving based on our B2C product, StoryTold. A little spoiler: by harnessing user engagement and improving it regularly, we increased stickiness and minutes spent on the app by 150% in 3 months!

 

What Our Product Is About

 

StoryTold is a digital storytelling service that preserves and strengthens the parent-child bond. Created by parents for parents, it’s a modern tool that helps to maintain a healthy relationship between parents and their children, no matter the circumstances.

 

Science has long since proven that stories are easier to remember than strict morals, and have been the best and most reliable means of passing on values, beliefs and family traditions since the beginning of time. We help parents write short, meaningful stories and they can send to their kids, so the young ones always have awesomely designed reading material that will help them stay in touch with their parent.

 

StoryTold uses personal information (age, goals, interests, etc.) to give parents writing prompts. After stories are written, the app analyzes them and makes suggestions for improvement. Afterwards, the writer-parent can either send the story to the child right away, or schedule the delivery for a future date. At the other end of the app, kids receive the stories on their phones and can comment on them or react using emojis – as you can see, it’s not one-way communication.

 

storytold_article_gif

Task: Engage Users and Bring Them Value

We created this app with a concrete mission. Here at StoryTold, we firmly believe that storytelling can bring parents and children closer together and deepen their mutual connection. We know from our own experience how hard parenting can be, which is why even after selling the subscription we don’t leave our users alone with their problems. Instead, we try to be as helpful as we can.

To do so, we had to snoop around a bit. Having analyzed our product, we’ve come to the conclusion that we need to…

  1. Know who the user is – his/her age, and what problems and goals he or she has. This way, we can…
  2. Send him/her the right message at the right time.
  3. Analyze how our methodology has helped the parents and children and correct the interaction if necessary.

 

Then, we multiplied this by two, because children and parents need to be analyzed and engaged differently. This meant we had to work up a little sweat and create the Segment – Amplitude – Outbound – Webhook pack.

 

Solution: Implement the Segment-Amplitude-Outbound-Webhook Approach

 

StoryTold Contributing article Img 2

 

The truth is, even if it’s just three steps, each of them is a kingdom of its own. Below, we will go into detail on how we discover who our users are and what they’re trying to achieve, how to know when and which messages to send them, and how we analyze the effect our messages have.

 

1. Collecting Data With Segment

 

Before we start, it’s worth noting that data is already being categorized at this point. Segment gets it from users who bought the subscription.

 

Of course, on the marketing side, all prospects are analyzed using different tools. This means when a user lands on our website, we analyze them with Google Analytics, Heap, and Hotjar.

 

But as soon as they go to app.storytold.io to try the app, they register and submit their data. This is when we use Segment and Amplitude to analyze them. However, this analysis also depends on the business models of the following SaaS-tools:

 

– Segment bills by the number of monthly tracked users (MTU)

– Amplitude bills by the number of events per month

– Outbound bills by the number of messaged users

 

This way, you can start your analysis for free. Later on, of course, the costs will grow, according to the growth of your user base. Sadly, it won’t work for a B2C Freemium model, but StoryTold uses the Free Trial model, so it works well for us.

 

In order to work with Segment, you need to integrate it into your software. To make this possible, Segment offers sources for the front-end, Python back-end (java, php, python, go, node.js, etc.) and mobile applications (Android, iOS, Xamarin, AMP).

 

In our case, it’s front-end, back-end web, and mobile apps (Android, iOS). Through Segment, we then collect data from the front-end (JavaScript for web and React Native for iOS and Android applications) and from the Python-based back-end.

 

StoryTold Contributing article img 19

 

The identification of the user at the front-end is carried out with the help of the identify call. At first, Segment gives each user a certain ID. Then, all the necessary information about the logged-in user received from the back-end is transferred from the front-end to the `identify` call. We pass on the user properties necessary to send push notifications and emails to `identify`. Usually, these properties include user ID, user name, email, gender, familial relation to the child (father, mother, stepfather, stepmother) etc.

 

User actions are usually tracked through the page (and its mobile version screen) and the track call:

 

  • `Page` allows you to record website page views, as well as additional information about the viewed page.

 

  • `Track` allows you to record highly customized user actions on the website, right up to hovering the cursor over a website element (or, for mobile apps, touching the touchscreen).

 

We also use the service to `track` events that are generated at the back-end and are being sent directly to API Outbound. This way, we transfer user properties that may vary, but are still important for some of the personalized messages.

 

For StoryTold, for example, such properties can include the title list of story drafts, or weekly report data such as the number of written stories or written words, or the amount of time the child spent reading the parent’s stories. Some variables we send to Segment via `identify`, and some via `track`.

 

To each event, we assign the necessary custom properties – this data is easy to debug live.

 

StoryTold Contributing article img 16

 

In total, we analyze about 40 variables and events for every user. This allows us to customize the user experience for each and every one of them as much as we can.

 

1. 1 Categorizing users with Amplitude

 

For us, it’s important to find a very personal approach to each and every one of our users, since no parent and no child is the same. What helps us are user categories in Amplitude. Luckily, Amplitude can be easily integrated with Segment, and we can use its filters to analyze the users.

 

StoryTold Contributing article img 20

 

We remove all the events and set dashboards and graphics to suit our needs. Luckily, Amplitude has a whole lot of tools for that.

 

Below are some examples of the dashboards that help us analyze StoryTold. We’ve set analytics for a fast product-state evaluation for 5 minutes per day, as well as deeper analytics that allow us get profound and solid insights.

 

We’ve developed our own system of categories crucial for our app. It’s called the GRAF System. It analyzes users by:

  • Gender
  • Relationship
  • Age
  • Frequency of communication

 

This way, a hard-working mother of a 12-year-old daughter gets an entirely different experience from a divorced father of an 8-year-old boy. By helping them personalize the app, we help parents write stories that their children are eager to read and comment on.

 

StoryTold Contributing article img 15

 

Some other analytical criteria are geography and the number of children and parents.
The graphics show trends and categorization:

 

StoryTold Contributing article img 14

 

StoryTold Contributing article img 13

 

Many parameters on the screenshots are marked as `none`. This means that the parents haven’t finished filling out their profiles. (We still have a lot of work to do. ;))

 

Another great insight: session durations show an interesting dynamic:

 

StoryTold Contributing article Img 1

 

Also, it’s possible to filter data by previous visits and views, story categories, and timing. Moreover, there’s a lot of interesting stuff out there, like Behavioral Cohorts, but we haven’t got there yet.

 

What we do next is transfer all this data and categories into Outbound with a gentle whisk of the API-key :

 

StoryTold Contributing article img 11

 

2. Sending Messages Through Outbound

 

After we’ve figured out what categories our users belong to, we can start sending them customized messages. To do this, we use Outbound – it has a very convenient message constructor. We can create a highly customized trigger message for each user by taking into account the following parameters:

 

  • Trigger (For StoryTold, it’s writing stories and comments in different categories)
  • User Categories (mothers, fathers, children of different ages, different frequency of communication, etc.)
  • Time (How long ago was a story placed in a certain category, how much time passes between finishing the draft and publishing a story, etc.)

 

StoryTold Contributing article Img 10

 

On top of this, there’s a way to A/B test different message variations, with a given coverage for every variation. However, our audience isn’t big enough for us to get solid and reliable numbers in such tests.

 

StoryTold Contributing article Img 9

 

All this data can be used to create a whole lot of campaigns.

 

StoryTold Contributing article Img 8

 

This way, we can motivate users individually to write stories and get comments – as you can imagine, this is very important for StoryTold. At the other end, parents understand the importance of such communication and receive every push notification with gratitude. In a crazy world like ours, it’s too easy to slip from important conversations to mass-liking kitten videos on Instagram.

 

StoryTold Contributing article Img 7

 

Since Outbound is so cool, it allows us to work both with the developer and with the production mode of your product at the same time. When creating newsletters, you can test them using the developer mode of the product first. If the campaign works as expected, you can launch the campaign in production mode with a single click.

 

Further on, you can debug all the processes connected to the dispatch and see the logs of all the events that are part of it – from the event that caused the dispatch, up until the dispatch itself!

 

StoryTold Contributing article Img 6

 

StoryTold Contributing article Img 5

 

If sending emails through Outbound turned out to be a piece of cake, push notifications just wouldn’t go out directly through the Firebase Cloud Messaging token. We had to make a back-end webhook for push notifications and send them through our app’s existing dispatch system.

 

3. Analyzing Amplitude and Outbound

 

This is the part where we check whether our motivational efforts were successful and how users in different categories behave. It’s important to not just make a complicated integration, but also to understand to what extent our messages engage users and help parents and kids become closer. Retention shows whether the StoryTold features are being used and how:

 

StoryTold Contributing article Img 4

 

In this image, you can see the popularity of the different categories of stories that parents write for their children. You can also see a dynamic comparison of Prompts usage versus writing that is based on the parent’s own ideas.

 

StoryTold Contributing article Img 3

 

Outbound also offers a great feature – it tracks how efficient a campaign was. Thus, you can see if the user acted upon the received email or notification.

 

StoryTold Contributing article img 18

 

Thanks to this feature, we collected the best CTAs in the push notifications and optimized the dispatch time so that every user gets their motivational messages at the right time.

 

While we were working on our app, we realized that, like anything else, the connections between people can’t be improved if you can’t measure them and show them the results. Which is why we measure our users’ activity in the app and send them weekly reports. This way, they can see their progress during the week, make conclusions and plan their next steps. Thanks to Outbound, we can do it all without even involving our developers.

 

Our weekly reports include a lot of variables that come from the back-end:

 

StoryTold Contributing article img 17

 

What does the business get from using all these integrations?

 

By using and constantly improving engagement, we increased stickiness and minutes spent in the app by 150%. It’s a great start, but still we’re at the beginning of the road, and many hypotheses aren’t proven yet, since we need more statistical significance. Which only means one thing: we have to learn from our success and turn it into a bigger one.

 

Here at StoryTold, we believe in individualized communication. We believe that we can build an app, lend a helping hand that will deepen the connection between generations, and between all the estranged parents and kids in our mad digital world.

 

This whole “motivation machine” can be done with your own back-end, too. But it won’t be as fast and simple as using the pack that we described. We at StoryTold got what we wanted. And we decided to get back to the question of moving this whole functionality to our own back-end only after we reach 200,000 active users.

 

In conclusion, we’d like to encourage you to dive into the issue of user engagement and experiment with it a bit. If you’re at the same stage we are, it’s essential to keep your app and business floating and developing. And we hope that our experience will help you retain your users and achieve success with little expense. But most importantly, remember that if you believe in yourself and your product, you’ll go very far.

Read more by Data Scientist @ DataRoot Labs oleksandr-kot-data-scientist

Navigation

Tutorials on Product Development and Growth Directly to Your Inbox.
Get knowledge and inspiration from the experts