Acquire More Users

Increase app store ratings with NPS surveys


In this Project, you'll learn how to create an in-app “NPS” or Net Promoter Score survey. Use an NPS survey to screen for positive reviewers, driving them to the app store to give you a positive rating, while siphoning off neutral users or detractors into their own workflow. Learn how to create Segments and apply them to Funnels to understand user behavior. Understand how to create Audiences for promoters and detractors and send personalized app engagement campaigns.

Why it matters

NPS surveys are a no-brainer. Utilize this function to push your happiest users to the app store to review your app. In the context of mobile apps, NPS surveys enable app publishers to achieve several goals:

  • Gain more positive app store rankings to drive improved user acquisition
  • Gather qualitative and quantitative user feedback for product and marketing improvements
  • Disrupt the uncreative, annoying “Rate my app” notification process that often results in negative ratings

How-to guide

The following steps will walk you through creating an in-app NPS campaign and increasing your App Store/Google Play Store rating.

Step 1 (iOS only): Instrument code in your app to trigger the App Store Review API

For users on iOS 10.3+ you can utilize Apple's SKStoreReviewController to request ratings and reviews without ever leaving the app (see Apple docs here). This is extremely useful as there is minimal interruption to the user's workflow within your app. As mentioned in Step 4, it is required that you collect the NPS rating value as a custom dimension. You will then utilize our analytics callbacks to ask what the custom dimension value is for that user when they reach a specific part of your app where you would like to prompt a rating request. You will have to instrument logic in your app to call the API if the dimension value is greater than or equal to 8 (or whatever value you would like to ask for ratings). Below are Objective-C and Swift snippets you can utilize to make this call. As previously mentioned, the location of where this code is executed is up to you, but we recommend having it surface when the user is most likely to engage with this example, browsing products.

Objective-C Swift

// user goes through some workflow, like browsing products

NSString *npsString = [Localytics valueForCustomDimension:CUSTOM_DIMENSION_NPS];

if (npsString != nil) {
    if ([npsString integerValue] > 8) {
        [SKStoreReviewController requestReview];
// user goes through some workflow, like browsing products

if let npsString = Localytics.value(forCustomDimension: CUSTOM_DIMENSION_NPS) {
    if let npsInt = Int(npsString), npsInt > 8 {

Step 2: Navigate to the Messaging Screen

This screen provides a summary of your messaging campaigns and their statuses. To enter the campaign builder, click the green plus icon and select ‘Create New In-App Campaign.’

Step 3: Select an Audience

Next, define who should receive this campaign by selecting or creating a target Audience. There are three options for selecting an Audience: all users, a previously saved Audience, or create a new Audience. These options can be seen in the image below:

To focus the survey on a particular workflow or feature in the app, create a new Audience (or use a saved one) by combining Event, Session, and Profile data to target users who fit your criteria. We recommend creating an Audience of users who have opened the app at least five (or your preferred number) times to target users who have experience with your app and to maintain a positive experience for new users.

Note that you can set Event triggers to determine when a user sees this message for further refinement. Only users that are in the Audience and perform the triggering Event will see the message. For example, you might create an Audience of users who have completed the 'Checkout' Event on a specific app version to better undertand user sentiment post-purchase after an app update. Modify your creative from “How was your app experience?” to “How was your checkout experience?”.

Step 4: Design the creative

To design the creative, select the 'File Uploader' option. The File Uploader is recommended over the Message Builder for the survey experience. The Message Builder is better for a single creative with a call to action.

Use this NPS template to get started. This template provides tracking once the user submits their score. Most importantly, it sets a Custom Dimension for the value the user rated your app. This will be instrumental when calling the Apple Store Review API, but we'll revisit this later . This creative also tags an "In-App Rating Result" Event with attributes being the score the user provided.

*If you plan on using the NPS survey to drive App Store Reviews, it is required to at least set a custom dimension as the rating value.

Along with the custom dimensions, and event being tracked, this template is instrumented with logic to assign Profile attributes of Promoter, Detractor, and Passive based on the score given. With these Profile attributes set, you can further hone your targeting with relevant messaging based on their sentiment. Add your own customizations and branding to make it your own. Here are a few examples:

For users who rate your app an 8, 9 or 10, Promoters, thank them for their feedback and direct them to rate your app in the Google Play Store. For iOS you will be using this value to conditionally trigger the Store Review API as seen in Step 1.

For users who rate your app, a 1-7, Passives & Detractors, chances are there’s something about the app experience (or their mood that day) that’s just not quite right. Ask these users for feedback instead of directing them to the app store. This feedback can take many forms: a free-form text box, a deep link to an existing feedback section in the app, a dropdown list to stack rank new feature requests, or a support ticket for a follow-up discussion via email.

Asking detractor and passive users directly for their feedback establishes an outlet for users to be heard and helps prevent the dreaded social media vent. Their feedback also provides your product team valuable insight into how to improve the app experience.

Establishing these alternate workflows for promoters and detractors ensures you direct only promoters to the app store, leading to more positive reviews than the spray and pray tactics of typical rating requests.

Step 5: Schedule & activate the campaign

As noted above, you can either allow all members of the Audience to see the message by displaying it on Session start, or you can use an Event to trigger the display of the in-app message. If you use an Event to trigger the in-app, only users performing the Event will see it.

For this NPS campaign, consider scheduling the message to display after a successful Event is concluded, such as Checkout Complete. Once you have set the schedule for the campaign, you will then be asked to confirm and activate it.

Step 6: Review results

After the campaign is live, you can view the campaign's performance. The campaign summary screen contains high-level metrics on response rates to the NPS survey. Here you can view the number of displays, clicks, and conversions. You can assign any Event you track in Localytics as the Conversion Event for your campaign - and you can further refine this based on attribute-level detail.

Step 7: Measure & optimize

Viewing campaign performance is valuable, but Localytics allows you to go even deeper. The example NPS Survey is pre-configured to include Event tags which capture the scores that have been entered by end-users. The HTML code of the in-app message is set up to trigger an Event called NPS Rating which captures both the score that was entered and whether the user is a promoter, passive, or detractor. You will be able to report on this information in the Localytics dashboard using the Events report. With this data you can apply filters/splits and understand your overall NPS score. Here’s an example of what this will look like:

Now that you know who your most satisfied users are, start digging into how their experience differs from the detractors. Create a Segment of promoters and one of detractors. Use these Segments to filter the Usage and Engagement reports and uncover new insights.

Apply this Segment as a filter on a Funnel to compare funnel completion between promoters and detractors. Start drawing conclusions about what promoters are doing that detractors aren't and vice versa.

Step 8: Take action

All right, you've dug into your NPS results and you've created Segments to analyze trends between promoters and detractors. Now it's time to take action and create Audiences based on NPS score for personalized push, in-app, email, and remarketing campaigns.

Knowing your advocates means you can call on those users to share your content, become early adopters of new features, and spend more time or money in your app. You can avoid further alienating those who scored low on your NPS survey. Then, you can continue to monitor user behavior and nurture a positive experience for them.

Over time, by pointing out updates to pain-point features and offering app marketing incentives, you can change opinions for these detractors. Later, you can release a new NPS survey and note how sentiment has improved!

Key Takeaways

  • By crafting an NPS survey via an in-app message, you can satisfy two very important goals: improving your app store rating and increasing user happiness.
  • Creating separate workflows for promoters and detractors enables you to direct only your happiest users to the app store leading to higher ratings and avoiding the trap of outdated “rate my app” notifications.
  • Use NPS scores to create Segments to understand trends in engagement and funnel completion. Also create targeted Audiences for targeted push, in-app, remarketing, and email campaigns.

Analyze and optimize user acquisition efforts


In this project, you’ll learn how to analyze ad spend to determine which sources and campaigns lead to the acquisition of valuable users.

Why it matters

Every user acquisition campaign is created with the intention of driving valuable new users to install your app. As a best practice, these campaigns should continuously be optimized to efficiently drive the acquisition of highly valuable users. It’s not enough to just track clicks and installs. Use campaign source filters to track the downstream actions of your users. You need to know which channels are bringing in quality users that convert and stay engaged with your app, not just which channels produce the most clicks or installs.

How-to guide

The following steps will walk you through analyzing ad spend to identify sources that drive the acquisition of highly valuable users.

Step 1: Navigate to the Attribution Screen select the ‘Filters’ icon

This is the home screen for Attribution, which enables you to easily get a quick overview of your acquisition efforts.

Step 2: Choose filter criteria

Next, filter by Dimensions. If you’ve instrumented Custom Dimensions, select the Custom Dimension that represents your most valuable users and the associated value.

In this example, ‘Purchase Frequency’ is the Custom Dimension and ‘multiple purchases’ is the value.

Step 3: Sort and organize the attribution table

Here is where you will find all of your acquisition sources, campaigns and associated data in a tabular format. When the table is shown with ‘By Source’ toggled to 'on' then you will see all of your sources, number of new users, number of Sessions per user, lifetime value per acquired user, and total revenue of users by acquisition source.

Toggle the attribution table to ‘By Campaign’ and sort ‘Total Revenue’ in descending order to see which campaigns are bringing in the most revenue. Learn more about user behavior from these channels in Funnels and Event reporting.

Step 4: Optimize your ad spend based on insights from your attribution reporting

After reviewing your data, take these insights and modify your ad spend accordingly. Invest heavily in channels bringing you users who are high value--those who are likely to convert and keep coming back to your app again and again. Divest from channels driving few users or users who do not bring value to your business.

In the example above, the Buy One Get One Free campaign run on Facebook was by far the most valuable campaign in terms of total revenue, a key insight that should influence future user acquisition efforts.

Key Takeaways

  • Analyze the effectiveness of your acquisition campaigns in terms of new users, engagement, and revenue as the first step in optimizing the return on your user acquisition efforts.
  • Remember the old saying “Quality over quantity” as you allocate your acquisition dollars. Be sure to track conversions and revenue to understand which channels bring the greatest ROI to your business. Don’t just track installs.
  • Use custom dimensions to track actions you consider most valuable (e.g. articles read, subscribed to, purchase frequency, games played, etc.) and apply these to your attribution reporting to understand valuable user actions by source.