Firebase in-app messaging

Firebase in-app messaging

Firebase in-app messages are powerful features that allow you to engage and communicate with your app users directly within your app's interface. In this article, we will explore the scope and prerequisites for using Firebase in-app and provide step-by-step implementation instructions, empowering you to leverage this feature in your app effectively.

Related JMango360 support articles: 
  1. Getting started with Firebase
  2. Firebase cloud (push) messaging 
  3. Firebase Analytics and Google Analytics 4

1. About in-app messaging

In-app messages are received by the app user whilst using the app. One of the key advantages of this message type is that you reach your full active user base as it’s not required to opt-in in comparison to push messaging (referred to by Firebase as Cloud Messaging) .


Studies show that by sending targeted in-app and push messaging you can boost user engagement, app retention, and conversion due to tailored information to the right audience. 

Why use in-app messaging? 
There are many studies showing the great impact of in-app messaging. We can define three key impact areas: conversion, retention, and user experience. We’ve listed out some key statistics. Based on your brand and app objectives you can create your own set of messages focusing on all or just 1 or 2 of the following areas. See also section “4. Top 5 must-have in-app messages and best practices” for our recommendations. 

1. Conversion:
  1. Targeted in-app messages can increase conversion rates by up to 4.5 times compared to non-targeted messages.
  2. A research study published in the Journal of Marketing found that personalized messages delivered through in-app messaging can increase purchase intention by up to 27%
2. Retention:
  1. Personalized in-app messages can increase retention rates by up to three times compared to generic messages.
  2. According to a study by Gartner, companies that prioritize customer experience through channels like in-app messaging can increase customer retention rates by up to 25%
3. User Experience:
  1. 52% of app users say that in-app messaging is important to their overall app experience. 78% of app users say that personalized in-app messages improve their perception of the brand or company.
  2. A study published in the Journal of Marketing Research found that businesses using personalized in-app messages experience a 20% improvement in customer satisfaction scores compared to those without such messaging capabilities.
Key use cases for in-app messaging: 
  1. Onboarding: Optimize your onboarding process with in-app messages that provide helpful information users need, for example, to create an account, enable push notifications, and highlight key app features. This will ensure new users have the best experience from the get-go.
  2. Promotions: Share personalized benefits and incentives with your users by segment and user behavior. For example, abandoned carts, wishlist reminders, or unique in-app promotions.
  3. Announcements: Keep existing users up to date with your app’s latest features and updates. 
  4. Customer service: Confirm a purchase or provide essential updates about a user’s transaction.
Overview of key features of Firebase in-app messaging
  1. Trigger and automate in-app messages
  2. Segment messages based on Firebase collected events and data points. For example; First open, completed purchase, country, app version, and last app engagement.  
  3. Automated translations via Google Translate 
  4. A/B Testing
  5. Design possibilities; add an image, change message format and colors. 
Unsupported features:
  1. Import segments
  2. Deep linking messages with an app using Firebase Dynamic Links

2. Send an in- app message 

To access and configure in-app messages within your Firebase project, follow these steps:

Step 1: Access Firebase Console & Firebase In-App Messaging

  1. Log in to your Firebase console account and select the desired project. 
  2. In the left-hand navigation menu, click In-App Messaging in the ‘Analytics’ category.
  3. If it's your first time setting up in-app messaging, you may need to enable it by clicking Create your first campaign. Or otherwise, click the New Campaign button to create a new in-app messaging campaign.
  4. Firebase Messaging Onboarding pop-up will appear and provide two message types, continue to choose In-App Messaging

Step 2: Create an In-App Message

Now that you can access the Compose Campaign page, you can write and edit content for your in-app messages.

Tip: If you already have (successful) campaigns, you can easily duplicate these messages! Select your message in the Campaigns list, click on the 3 dots at the end of the row, and click Duplicate. 

1. Select Style and Content: 

Select message layout, message content, image, and button(s): Select Card, Modal, Image, or Top banner. 
  1. Card and Modal have similar features, only the layout is different. Title, message, image, and action button(s).
  2. Image: As the title suggests, this is an image only without a title, text, or action buttons. 
  3. Top Banner: A smaller banner at the top with a title, message, and an image. 
Select the message content, image, and button(s): Functionality depends on the selected layout 
  1. Content: Select your background color, text color, add a title, and the body text. 
  2. Images:
  1. In the (free) Spark plan you can only upload images via URL, in the (paid) Blaze plan, you can upload images as this requires the Storage functionality. Recommendation: You can utilize Imgur as one of the best free image hosting platforms in the world for your image hosting needs when setting up Firebase in-app messaging.
  2. Select “Use same image as portrait”. Note: The JMango360 mobile app does not support landscape mode and therefore, in-app messages will only be available in portrait mode.
  1. Button(s): 
    1. Fill in the text of the button(s) and select the  text color
    2. Select “Use dismiss as the action”. Note: The JMango360 mobile app does not support Dynamic Links (at this stage), and therefore it’s not possible to link to products, categories or other sections in the app. 



2. Define the Target: Define the targeting criteria for your message with the following:
  1. Campaign name: This name is used for campaign reporting and is not part of the visible message.
  2. (Optional) Campaign description: This description is used for campaign reporting and is not part of the visible message.
  3. Eligible users: See also the section “4. Best practices for the primary use cases and required targets”. 
    1. You first need to select the app iOS or Android. If you want to send the message to both Apps you need to duplicate the message. You can easily do this from the campaign's overview once the message is created. 
    2. If you want to segment your message, click ‘And’ and add your segments.You can select the following targets: 
      1. Version: Use this target to send messages to app users on old(er) versions to update the app. 
      2. Language: This is related to the selected language on the users' phone (not the selected app store). Use this target to send messages in various languages. 
      3. Country / Region. This is related to the selected country on the users' phones (not the selected app store).  Use this target to send messages to users in different countries.
      4. User Audience. As a default, you can select All users or only Purchasers (users who have completed a purchase via the app). Use this target to offer special offers to the app users without a purchase or with a purchase. Tip: you can create additional audiences, see also this Firebase support article
      5. User Property. We recommend using Audiences (see above) 
      6. First open. You can select a time range. Use this target to share information with new users for example about key features of the app, creating an account, or information about the benefits of enabling push notifications. 
      7. Last App Engagement. You can select a time range. Use this target to re-activate users after a period of inactivity. Note that in-app notifications are only shown once the app is opened. For re-activation, we recommend using Cloud messages (Push messages)
    3. Firebase will show the total number of app users eligible to receive this message. If this number is (too) low we recommend altering your targets. 
    4. Localize your message. If you want to send the message in various messages, You can add different languages or use Google Translate. 

3. Define the Schedule: Based on the settings you can send messages instantly with or without an end date or schedule with or without an end date. Use messages without an end date for ongoing messages for example your Welcome message or Account promotion. Use messages with an end date for promotion or a launch of a new brand. 
  1. Edit the start and end dates for your campaign
  2. Add a trigger: Choose the appropriate display triggers for your in-app message, such as when the user opens the app, reaches a specific screen, or completes a particular action. 
  3. Click Event + to add a trigger event. There are 35 default events and 5 custom events (see below) collected in our default configuration to trigger in-app messages.
  1. App_launch: Available by default when sending the in-app message (not collected)
  2. view_item_list: When the product list is displayed to a user
  3. View_item: When product detail is displayed to a user
  4. Add_to_cart: When a product is successfully added to the cart
  5. View_cart: When a user views their cart
  1. Specify per-device frequency limit: Control how spaced out multiple impressions of this campaign should be. By default, a campaign is not shown after it has been impressed (or viewed) by the user once. You can set the frequency of messages in days by clicking on the Once per device for this campaign button. 

Step 3: Reviewing and Publishing the In-App Message

  1. The functionality “Send test message” is only available for the JMango360 test devices.  
  2. Click on the Review to review the summary of your in-app message and ensure all settings are correct.
  3. If satisfied, click Publish to make your in-app message live.
  4. Not ready to publish? You can also save your message as a draft!

3. In-app message analytics

In the Firebase console, you can monitor the performance of your in-app messages. 
You can view analytics per message or combined. 

1. Message analytics: Click on the message and view the impressions and clicks. 



2. Messaging reports: 
  1. Click on the Reports tab
  2. Select Filters (if applicable). Tip: Because not all data is available for iOS (see below) we recommend only selecting the Android app to compare conversions like for like. 
  3. Definitions 
  1. Send: Number of notification/data messages sent to users
  2. Received: Number of notification/data messages received by users (only available for Android and partially for Apple)
  3. Impressions: Number of notification messages seen by users (only available for Android)
  4. Open count: Number of notification messages opened by users



4. Top 5 must-have in-app messages and best practices

To get you started we have created a top 5 of must-have in-app messages. For detailed instructions on how to set these up, follow the steps in Chapter ‘3. Send an In-app Message’.

1. Welcome message
  1. Objective:  Improve app/brand experience and loyalty 
  2. Configuration:
    1. Select Card or Modal and design your message
    2. Button action: Dismiss (See section 3 about creating in-app messages and Deeplinks) 
    3. Target: Select iOS or Android 
    4. Schedule: Start Now without an end date, and select the event “App Launch”, with the setting Once per device.  
  3. Message example: Welcome to our app! Use code WELCOME10 at checkout for 10% off your first purchase”
  4. Tip: Add an image for the best engagement
2. Promote to log in or create an account
  1. Objective:  Improve app/brand experience and loyalty 
  2. Configuration:
    1. Select Card or Modal and design your message
    2. Button action: Dismiss (See section 3 about creating in-app messages and Deeplinks) 
    3. Target: Select iOS or Android and select First Open More 1 day ago 
    4. Schedule: Start Now without an end date, and select the event “App Launch”, with the setting Once per device. 
  3. Message example: Do not miss out! Log in or create an account to join our loyalty program and earn points for every purchase. Redeem them for discounts and rewards!
  4. Tip: “What’s in it for your customers''? Highlight the benefits for your app users to get the best results from your messages. 
3. Promote enabling push notifications
  1. Objective: Improve app conversion & engagement 
  2. Configuration:
    1. Select Card or Modal and design your message
    2. Button action: Dismiss (See section 3 about creating in-app messages and Deeplinks) 
    3. Target: Select iOS or Android and select First Open More 2 day ago  
    4. Schedule: Start Now without end date, and select the event “App Launch”, with the setting Once per device.  
  3. Message example: Did you know we offer app-exclusive promotions and products? Enable push notifications to be the first to know.
  4. Tip: “What’s in it for your customers''? Highlight the benefits for your app users to get the best results from your messages. 
4. Promotion and/or App exclusive offer
  1. Objective: Improve app conversion & engagement 
  2. Configuration:
    1. Select any type or format and design your message
    2. Button action: Dismiss (See section 3 about creating in-app messages and Deeplinks) 
    3. Target: Select iOS or Android 
    4. (optional) Target specific users by adding targets for Last App Engagement or User Audience (users with or without a previous purchase) 
    5. Schedule: Start Now or scheduled with end date, and select the event “App Launch”, with the setting Once per device.  
  3. Message example: Early access alert! The sale starts 24 hours early via the app only. Be there. 
  4. Tip: Leverage A/B testing to experiment with different message variants and optimize performance.
5. App update 
  1. Objective: Improve app conversion & engagement 
  2. Configuration:
    1. Select any type or format and design your message
    2. Button action: Dismiss (See section 3 about creating in-app messages and Deeplinks) 
    3. Target: Select iOS or Android + Select the old app versions (by excluding the new app version).  
    4. Schedule: Start Now or scheduled with end date, with the setting of 2x or 3x per device. The frequency depends on your preferences. 
  3. Message example: New app version available! Go to the app store to download the update. In this version we < fill in >. 
  4. Tip: “What’s in it for your customers''? Highlight the benefits for your app users to get the best results from your messages. 
Bonus Messages 

6. Re-engagement message
  1. Objective: Re-commit customers to your brand
  2. Configuration:
    1. Select any type or format and design your message
    2. Button action: Dismiss (See section 3 about creating in-app messages and Deeplinks) 
    3. Target: Select iOS or Android + Select the old app versions (by excluding the new app version).  
    4. Target specific users by adding targets for Last App Engagement
  3. Schedule: Start Now without end date, and select the event “App Launch”, with the setting Once (or more) per device.  
  4. Message example: Welcome back! We haven’t seen you in a while and we’ve missed you. To show our appreciation, here’s a coupon with an x% discount just for you: WELCOMEBACK10”. 
  5. Tip: You might also consider using this promo code for categories that sell very well, to boost user engagement even more. Also, make sure you communicate these flash sales on your other channels from time to time, just so your customers know another added benefit of downloading the app. 
7.  Flash Sale 
  1. Objective: Improve app conversion & customer experience
  2. Configuration:
    1. Select any type or format and design your message
    2. Button action: Dismiss (See section 3 about creating in-app messages and Deeplinks) 
    3. Target: Select iOS or Android + Select the old app versions (by excluding the new app version).  
    4. Schedule: Start Now or scheduled with end date, with the setting of 1x per device.
  3. Message example: APP FLASH SALE! One time offer, use the code SUPRISE10’ at checkout for 10% off your order. Aren’t you even more glad you have our app? ;)
  4. You can announce the upcoming sale beforehand (carrot), or after the fact (stick). Both will increase the perceived value of both the app and your brand’s experience.

5. Personalizing your in-app messaging

Firebase In-app Messaging allows you to deliver personalized, contextual messages directly within your app to engage users and drive specific actions. Personalization has proved to not only increase conversion and customer loyalty, but it also allows your marketers to get more in-depth segmented information about customer groups and has proven to build trust.

Here are the key features and their strengths:

1. Personalization and Contextual Targeting: Deliver Relevant Messages to Users
Firebase In-app Messaging enables you to create personalized messages and target them to specific user segments based on demographics, user behavior, or app usage patterns. This contextual targeting ensures that messages are relevant, increasing their effectiveness.

For the best configuration, you should:
  1. Define clear goals for your in-app messaging campaigns.
  2. Segment your user base based on relevant criteria, such as user properties or custom events.
  3. Tailor message content, design, and timing to maximize relevance and impact.
  4. Leverage A/B testing to experiment with different message variants and optimize performance.
E.g: if you have a travel app, you can designate a customized in-app message to users who have expressed interest in particular locations and offer them a discount on flight reservations.

2. Delivery Triggers: Engage Users at the Right Moment
Firebase In-app Messaging allows you to trigger messages based on specific user actions, app events, or timing. Delivering messages at the right moment enhances user experience and increases the likelihood of user engagement.

For the best configuration, you should:
  1. Identify relevant trigger events based on user actions or app events.
  2. Set up message delivery timing to align with user behavior patterns and preferences.
  3. Consider factors like time zones, user activity, and specific actions to deliver messages when they are most likely to be noticed.
E.g: If you own a food delivery app, you can trigger an in-app message offering a discount code when a user adds items to their cart but has not yet checked out.

3. Performance Monitoring and Iteration: Measure and Optimize Message Effectiveness
Monitoring the performance of your in-app messages allows you to analyze metrics such as impressions, click-through rates, and conversions. This data helps you iterate and optimize your messaging strategy for maximum impact.

For the best configuration, you should:
  1. Regularly monitor message performance using Firebase Analytics and the Firebase console.
  2. Analyze key metrics to identify trends, patterns, and areas for improvement.
  3. Iterate on messaging content, design, and targeting based on performance insights.
You can track the click-through and conversion rates of in-app messages promoting specific products to identify which messages drive the most user engagement and conversions.

    • Related Articles

    • Firebase cloud (push) messaging

      Firebase messages are powerful features that allow you to engage and communicate with your app users directly within your app's interface. In this article, we will explore the scope and prerequisites for using Firebase cloud messages and provide ...
    • Firebase Analytics with Google Analytics 4

      Having an app is step one, step two is to promote and measure. App analytics are the key to getting the necessary insights to learn about your app performance, your app users, and their behavior in order to make changes and grow. Firebase Analytics ...
    • Getting started with Firebase

      Firebase is Google’s analytics and messaging platform for mobile apps, allowing you to track real-time metrics and boost user engagement via push- and in-app messaging. Related JMango360 support articles: Firebase Analytics with Google Analytics 4 ...
    • Getting started with Alphonso

      Welcome to Alphonso - the advanced app builder designed to empower you to create exceptional mobile apps. This article will take you on a guided tour of Alphonso and the core pages. By the end, you'll have a general understanding of leveraging ...
    • Configure smart app banners

      1. Introduction to smart app banners A smart app banner is a banner at the top or bottom of the screen on a mobile website to inform and encourage users to download or open the related app. Key characteristics of smart app banners: Creates a direct ...