Configuring Reporting

Appboy automatically generates a weekly email report to help you understand the performance of your apps and messaging campaigns.

Example Weekly Report

REPORT SCREENSHOT

You can subscribe to this report on your Account Settings page by clicking the “Subscribe to Analytics Report” checkbox. Additionally, if you’re utilizing Custom Events, you can select up to 5 key events to be included in your weekly report. The events can be updated at any time on the Custom Events Management page.

User Data Collection

Before completing your Appboy implementation, ensure that you have a conversation between your marketing team and your development team regarding your marketing goals. When deciding what you want to track, and how you want to track it with Appboy, it’s useful to consider these goals and work backwards from there. Please reference our case of a Taxi/Ride-Sharing App at the end of this guide for an example of this process.

This best practice guide will help you to understand exactly what Appboy considers to be a “Custom Event” vs. a “Custom Attribute”.

Automatically Collected Data

The following events and attributes are captured and updated automatically by the Appboy SDK as part of the Session Start and Session End data points, or by the Appboy backend. You don’t need to record them separately as Custom Events or Custom Attributes.

Usage Information

  • First Used App (Date)
  • Last Used App (Date)
  • Total Session Count (Integer)
  • Number of Feedback Items (Integer)
  • Number of Sessions in the Last Y Days (Integer and Date)
  • Email Available (Boolean)
  • News Feed View Count (Integer)

Campaign Retargeting

  • Last Received Any Campaign (Date)
  • Last Received Email Campaign (Date)
  • Last Received Push Campaign (Date)
  • Last Viewed News Feed (Date)
  • Clicked Card (Integer)
  • Received Campaign
    • This filter allows you to target users based on their having (not) received a previous campaign.
  • Received Campaign with Tag
    • This filter allows you to target users based on their having (not) received a campaign that currently has a tag.
  • Retarget Campaign
    • This filter allows you to target users based on whether or not they have opened, or clicked on a specific email, push, or slideup in the past

Device Information

  • Location Available (Boolean)
  • Most Recent Location (if location permission is granted to your app)
  • Push Enabled (Boolean)
  • Device Locale
  • Language (taken from Device Locale)
  • Country (first taken from IP Address. If this is not available, taken from Device Locale)
  • Most Recent App Version
  • Device Model
  • Device OS Version
  • Device Resolution
  • Device Wireless Carrier
  • Device Time Zone
  • Uninstalled (Date and Boolean)

Custom Events

Custom Events are actions taken by your users; they’re best suited for tracking high-value user interactions with your application. Logging a custom event can trigger any number of follow-up campaigns with configurable delays, and enables the following segmentation filters around the recency and frequency of that event:

Segmentation Options Dropdown Filter Input Options
Check if the custom event has occurred more than X number of times MORE THAN INTEGER
Check if the custom event has occurred less than X number of times LESS THAN INTEGER
Check if the custom event has occurred exactly X number of times EXACTLY INTEGER
Check if the custom event last occurred after X date AFTER DATE
Check if the custom event last occurred before X date BEFORE DATE
Check if the custom event last occurred more than X days ago MORE THAN NUMBER OF DAYS AGO (Positive) Integer)
Check if the custom event last occurred less than X days ago LESS THAN NUMBER OF DAYS AGO (Positive) Integer)
Check if the custom event occurred more than X (Max = 50) number of times MORE THAN in the past Y Days (Y = 1,3,7,14,21,30)
Check if the custom event occurred less than X (Max = 50) number of times LESS THAN in the past Y Days (Y = 1,3,7,14,21,30)
Check if the custom event occurred exactly X (Max = 50) number of times EXACTLY in the past Y Days (Y = 1,3,7,14,21,30)

Appboy notes the number of times these events have occurred as well as the last time they were performed by each user for segmentation. On the custom events analytics page you can view in aggregate how often each custom event occurs, as well as by segment over time for more detailed analysis. This is particularly useful to view how your campaigns have affected custom event activity by looking at the gray lines Appboy overlays on the time-series to indicate the last time a campaign was sent.

custom_event_analytics_example.png

Note: Incrementing Custom Attributes can be used to keep a counter on a user action similar to a custom event. However, you will not be able to view custom attribute data in a time-series. User actions which do not need to be analyzed in time-series should be recorded via this method.

Custom Event Properties

With Custom Event Properties, Appboy allows you to set properties on custom events and purchases. These properties can than be used for further qualifying trigger conditions, increasing personalization in messaging, and generating more sophisticated analytics through raw data export. Property values can be string, numeric, boolean, or Date objects.

For example, if an eCommerce application wanted to send a message to a user when he/she abandons their cart, it could additionally improve its target audience and allow for increased campaign personalization by adding a Custom Event Property of the ‘cart value’ of users’ carts.

customEventProperties.png

Custom Event Properties can also be used for personalization within the messaging template. Any campaign using Action-Based Delivery with a trigger event can use custom event properties from that event for messaging personalization. If a gaming application wanted to send a message to users who had completed a level, it could further personalize the message with a property for the time it took users to complete that level. In this example the message is personalized for three different segments using conditional logic. The Custom Event Property called time_spent, can be included in the message by calling {{event_properties.${time_spent}}}.

Note: Triggered in-app messages with templated custom event properties (i.e. {event_properties.${time_spent}}}) will fail gracefully and not display if there is no Internet connectivity.

custom_event_properties_gaming.png

Custom Event Properties are designed to help you personalize your messaging or build granular Action-Based Delivery Campaigns. If you would like to create segments based on event property recency and frequency, please reach out to your Customer Success Manager, as this may incur additional data costs.

Custom Attributes

Custom Attributes are best for storing attributes about your users, or information about low-value actions within your application. You should keep in mind that we don’t store time-series information for Custom Attributes, so you’re not going to get any graphs based upon them like the above example for Custom Events.

Custom Attribute Data Types

Custom Attributes are extraordinarily flexible tools that allow for great targeting. The following data types may be stored as custom attributes:

Strings (Alpha-Numeric Characters)

String attributes are useful for storing user input, such as a favorite brand, a phone number, or a last search string within your application.

Segmentation Options Dropdown Filter Input Options
Check if the string attribute exactly matches an inputted string EQUALS STRING
Check if the string attribute partially matches an inputted string OR Regular Expression MATCHES REGEX STRING OR REGULAR EXPRESSION
Check if the string attribute does not partially match an inputted string OR Regular Expression DOES NOT MATCH REGEX STRING OR REGULAR EXPRESSION
Check if the string attribute does not match an inputted string DOES NOT EQUAL STRING
Check if the string attribute exists on a user’s profile EXISTS N/A
Check if the string attribute does not exist on a user’s profile DOES NOT EXIST N/A

Note: We use Perl compatible regular expressions (PCRE).

Arrays

Array attributes are good for storing related lists of information about your users. For example, storing the last 100 pieces of content a user watched within an array would allow specific interest segmentation.

Segmentation Options Dropdown Filter Input Options
Check if the array attribute includes a value which exactly matches an inputted value INCLUDES VALUE STRING
Check if the array attribute does not include a value which exactly matches an inputted value DOESN’T INCLUDE VALUE STRING
Check if the array attribute contains a value which partially matches an inputted value OR Regular Expression MATCHES REGEX STRING OR REGULAR EXPRESSION
Check if the array attribute has any value HAS A VALUE N/A
Check if the array attribute is empty IS EMPTY N/A

Note: We use Perl compatible regular expressions (PCRE).

Dates

Date attributes are useful for storing the last time a specific action was taken, so you can offer content specific re-engagement messaging to your users.

Note: The last date a custom event or purchase event occurred is automatically recorded, and should not be recorded in duplicate via a custom date attribute.

Date filters using relative dates (e.g., more than 1 day ago, less than 2 days ago) measure 1 day as 24 hours. Any campaign that you run using these filters will include all users in 24 hour increments. For example, last used app more than 1 day ago will capture all users who “last used the app more than 24 hours” from the exact time the campaign runs. The same will be true for campaigns set with longer date ranges – so five days from activation will mean the prior 120 hours.

Segmentation Options Dropdown Filter Input Options
Check if the date attribute is before a selected date BEFORE CALENDAR DATE SELECTOR
Check if the date attribute is after a selected date AFTER CALENDAR DATE SELECTOR
Check if the date attribute is more than X number of days ago MORE THAN NUMBER OF DAYS AGO
Check if the date attribute is less than X number of days ago LESS THAN NUMBER OF DAYS AGO
Check if the date attribute is in more than X number of days in the future IN MORE THAN __NUMBER OF DAYS IN FUTURE
Check if the date attribute is less than X number of days in the future IN LESS THAN __NUMBER OF DAYS IN FUTURE
Check if the date attribute exists on a user’s profile EXISTS N/A
Check if the date attribute does not exist on a user’s profile DOES NOT EXIST N/A

Integers (Standard and Incrementing) and Decimals (Floats/Doubles)

Numeric attributes have a wide variety of use-cases. Incrementing integer custom attributes are useful for storing the number of times a given action or event has occurred without counting against your data cap. Standard integers and decimals have all sorts of usages, for example : (Recording shoe size, waist size, number of times a user has viewed a certain product feature, or category. Note: Money spent in app should not be recorded by this method. Rather it should be recorded via our purchase methods.

Segmentation Options Dropdown Filter Input Options
Check if the numeric attribute is more than an integer or decimal value MORE THAN INTEGER or DECIMAL
Check if the numeric attribute is less than an integer or decimal value LESS THAN INTEGER or DECIMAL
Check if the numeric attribute is exactly an integer or decimal value EXACTLY INTEGER or DECIMAL
Check if the numeric attribute does not equal an integer or decimal value DOES NOT EQUAL INTEGER or DECIMAL
Check if the numeric attribute exists on a user’s profile EXISTS N/A
Check if the numeric attribute does not exist on a user’s profile DOES NOT EXIST N/A

Booleans (True/False)

Boolean attributes are useful for storing subscription statuses, and other simple binary data about your users. The input options that we provide allow you to find users that have explicitly had a variable set to a true/false value in addition to those that don’t have any record of that attribute recorded yet.

Segmentation Options Dropdown Filter Input Options
Check if the boolean value is IS TRUE, FALSE, TRUE OR NOT SET, or FALSE OR NOT SET
Check if the boolean value exists on a user’s profile EXISTS N/A
Check if the boolean value does not exist on a user’s profile DOES NOT EXIST N/A

Purchases / Revenue Tracking

Using our purchase methods to record in-app purchases establishes the Life-time Value(LTV) for each individual user profile. This data is viewable within our revenue page in time-series.

Segmentation Options Dropdown Filter Input Options
Check if the total number of dollars spent is greater than an integer or decimal value GREATER THAN INTEGER or DECIMAL
Check if the total number of dollars spent is less than an integer or decimal value LESS THAN INTEGER or DECIMAL
Check if total number of dollars spent is exactly an integer or decimal value EXACTLY INTEGER or DECIMAL
Check if the purchase last occurred after X date AFTER DATE
Check if the purchase last occurred before X date BEFORE DATE
Check if the purchase last occurred more than X days ago MORE THAN DATE
Check if the purchase last occurred less than X days ago LESS THAN DATE
Check if the purchase occurred more than X (Max = 50) number of times MORE THAN in the past Y Days (Y = 1,3,7,14,21,30)
Check if the purchase occurred less than X (Max = 50) number of times LESS THAN in the past Y Days (Y = 1,3,7,14,21,30)
Check if the purchase occurred exactly X (Max = 50) number of times EXACTLY in the past Y Days (Y = 1,3,7,14,21,30)

Note: If you would like to segment on the number of times a specific purchase has occurred you should also record that purchase individually as an incrementing custom attribute.

Taxi/Ride-Sharing App Use Case

For this example case, let’s consider a Taxi/Ride-Sharing app (such as Hailo, Uber, Lyft, etc.) wants to decide what user data to collect. The questions and brainstorming process below are a great model for marketing and development teams to follow. By the end of this exercise, both teams should have a solid understanding of what custom events and attributes make sense to collect in order to help meet their goal.

Case Question #1: What is the goal?

Their goal is straightforward in that they want users to hail taxi rides via their app.

Case Question #2: What are the intermediate steps on the way to that goal from app installation?

  1. They need users to begin the registration process and fill out their personal information.
  2. They need users to complete & verify the registration process by inputting a code into the app they receive via SMS.
  3. They need to attempt to hail a taxi.
  4. In order to hail a taxi, they must be available when they search.

The above actions could then be tagged as the following Custom Events:

  • Began Registration
  • Completed Registration
  • Successful Taxi Hails
  • Unsuccessful Taxi Hails

After implementing the events, you can now run the following campaigns:

  1. Message users who Began Registration, but didn’t Completed Registration within a certain time frame.
  2. Send congratulation messages to users who complete registration.
  3. Send apologies and promotional credit to users who had unsuccessful taxi hails, that weren’t followed by a successful taxi hail within a certain amount of time.
  4. Send promotions to power users with lots of Successful Taxi Hails to thank them for their loyalty.
  5. Many, Many More.

Case Question #3: What other information might we want to know about our users that will inform our messaging?

  • Whether or not they have any promotional credit?
  • The average rating they give to their drivers?
  • Unique Promo Codes for the user?

The above characteristics could then be tagged as the following Custom Attributes:

  • Promotional Credit Balance (Decimal Type)
  • Average Driver Rating (Integer Type)
  • Unique Promo Code (String Type)

Adding these attributes would afford you the ability to send campaigns to users like:

  1. Reminding users who haven’t used the app in 7 days who have promotional credit remaining on their account that it is there and that they should come back to the app and use it!
  2. Messaging users who give low driver ratings to get direct customer feedback to see why they didn’t enjoy their rides.
  3. Use our message templating and personalization features to drag the unique promo code attribute into messaging directed at users.

Pre-populating Custom Data

There may be times where you’d like to start setting up campaigns and segments using custom data before that custom data has been integrated by your development team. Appboy allows you to pre-populate custom events and attributes on the dashboard before these pieces of data start tracking, so that these events and attributes are available for use in dropdowns, and as part of the campaign creation process.

To pre-populate custom events and attributes, navigate to the Manage App Groups page, and then click on the Custom Attributes or Custom Events tab. Then click on “Add Custom Attributes” or “Add Custom Events” in the upper right corner.

Navigate to Custom Attributes or Custom Events

Then, type in your custom attribute or event. For custom attributes, you’ll need to select what data type this attribute will be (for instance, boolean or string). An attribute’s data type will determine what types of segmentation filters are available for that attribute - you can learn more about the different segmentation filter options available here.

Add new attribute or event

Keep in mind that when your development team integrates these custom events/ attributes later, they will need to name them exactly as you have named them here - including the use of uppercase or lowercase letters - or else Appboy will generate a different custom event/ attribute.

General Best Practices

Don’t Over-Segment Your Tracking

  • Being more generic will help you target more users and draw more useful divisions between user segments
  • For example, rather than capturing a separate event for watching each of 50 different movies, it would be more effective to capture simply watching a movie as an event
  • If you over segment your user data, your findings will lose statistical significance and won’t guide the development of your app and marketing initiatives as effectively
    • You will “miss the forest for the trees” when evaluating user-trend data
    • Events should be tied directly to your marketing and conversion goals

Note: Multiple user actions within an app can be labeled with the same custom event or attribute designation. This is useful when you want to track something generically such as “played a song” rather than recording each individual song within a music app as a separate and distinct event.

Exporting Dashboard Data

Appboy provides CSV exports of Dashboard data, allowing you to analyze them with a variety of tools. Below are the different types of data you can export from the Dashboard, as well as tips for opening the data in Excel and performing exports with our API.

Things to Keep in Mind

  • Whenever there is a graph on the Dashboard, you can export its data in a CSV or download the graph by clicking the symbol in the upper right corner:

Export icon

  • Before performing your export, make sure you have selected the right time frame that you wish to view data from. This can be done using the “Display Data For” dropdown:

Export timeframe

Segment Data

Exporting to CSV

To request a CSV export of user data from a segment, click on the “User Data” button on the top-right side while editing a segment:

csvexport

You can also request a CSV export from the main Segments page by clicking the gear icon on the right side to access this dropdown menu:

csvexport2

The CSV output contains the data from each user profile captured in the segment at the time of export. You can export any segment by clicking the gear icon and CSV export. Appboy will generate the report in the background and email it to the user who is currently logged in.

If you have linked your Amazon S3 credentials to Appboy, then the CSV will also be uploaded in your S3 bucket under the key segment-export/SEGMENT_ID/YYYY-MM-dd/users-RANDOMSTRING.zip. Otherwise, the link emailed to you will expire in a few hours.

Data included in the exports:

  • All User Data
    • User ID
    • First Name
    • Last Name
    • Timezone
    • City
    • Gender
    • Email Address
    • Phone Number
    • Number of Push Tokens
    • Twitter Username
    • Session Count
    • First Session
    • Last Session
    • Last App Version Used
    • In-App Purchase Total
    • Email Subscription Status
    • Device Info
    • Number of IDFAs
    • Number of IDFVs
    • Custom Events
    • Custom Attributes
  • Email Addresses
    • User ID
    • First Name
    • Last Name
    • Email Address
    • Email Unsubscribe Date
    • Email Opt-in Date

Exporting to Facebook Audiences

Appboy provides Facebook marketing integration, allowing you to export segments as Facebook marketing audiences and target those users for ad campaigns. Here are instructions on setting up this feature.

Configuring Facebook App Settings

In order to export custom audiences from the dashboard, your Facebook app must be configured to allow Appboy to make requests to Facebook on behalf of the members of your team.

  • You need to have a Facebook app that Appboy can use to access the Facebook Marketing API on your behalf. If you already have a Facebook app that you’re using for Facebook sign-in in your app, you can use that or you can create a new one by following the instructions in the Facebook marketing API documentation. You will need to add each of your team members who should be able to export Facebook audiences as developers on whichever app you want to use.
  • Head to the Facebook app dashboard, and make sure to select the app you want Appboy to use for marketing API access.

Facebook Settings 1

  • Before proceeding, make sure to note the app ID and the app secret, as you will need to enter these in the Appboy dashboard.
  • Make sure you have proper permissions to export Facebook audiences. Click “Roles.”
    • Within the roles tab, you should have either administrator or developer permissions. If not, please ask your administrator to give you the proper permissions.

Facebook Settings 2

  • Next, click “Settings.”
  • Within the settings section, click on the “Advanced” tab.

Facebook Settings 3

  • At the bottom, you should see “Valid OAuth redirect URIs” underneath “Client OAuth Settings.”
    • Add https://dashboard.appboy.com in this field.
  • Save your changes.
  • Make sure that each of the members of your team who will be exporting audiences to Facebook has accepted the Facebook custom audience terms of service.

Configuring Appboy 3rd Party Integration

  • Once your Facebook app has been correctly configured, you’ll need to add your credentials to the appropriate app group in Appboy. Within the Appboy dashboard, head to the 3rd Party Integrations section, and click on the Facebook tab. Make sure you’ve selected the correct app group.
  • Enter your app ID and app secret in the “Facebook Marketing App ID” and “Facebook Marketing App Secret” fields.
    • The “Facebook App ID” field is optional. If users authenticate with Facebook in your app and you are providing Facebook data to the Appboy SDK, you will have the option to export those users to Facebook using their Facebook User ID. If you’d like to do this, save the Facebook app ID that you use to authenticate your users in the “Facebook App ID” field.

Facebook Settings 4

  • Save your changes.

Exporting Your Users

  • The Facebook audience export link will be in the settings menu of each segment in an app group that has Facebook credentials.
    • While this link will be present for all members of your app group, only users with permissions in your Facebook marketing app will be able to successfully export a segment.

Facebook Export 1

  • When you click on this link, a modal will appear to ask which type of user data to export. Unfortunately, Facebook only allows exporting by 1 data type per custom audience. If you choose more than 1 type, Appboy will create a separate custom audience for each.
    • There are 4 possible user data types we can use for the export: email, device IDFA, Facebook UID, and phone number. If you haven’t entered a Facebook app ID in your 3rd Party Integration settings, you won’t be able to select Facebook UID.

Facebook Export 2

  • Click on export. As with CSV exports, you will receive an email when the segment has finished exporting.
  • You can view the custom audience on the Facebook Ad Manager.
    • Due to Facebook privacy restrictions, you cannot see the users or the exact size of the audience. Facebook provides an estimate of your custom audience size.

Facebook Export 3

Lookalike Audiences

Once you’ve successfully exported a segment as a Facebook Audience, you can create additional groups using Facebook’s Lookalike Audiences. This feature looks at demographics, interests, and other attributes of your chosen audience and creates a new audience of people with similar attributes.

App Usage Data

The App Usage page of the Dashboard contains high level data, as well as detailed statistics of different KPIs by date. To obtain CSVs of information from this page, first set the time frame you want to view, then go to the graph at the bottom of the page and choose what data to include in your export.

You can export CSVs with the following data:

App usage graph

  • Session Count by Date
    • (Optional) Session Count for Different Segments
    • (Optional) Session Count for Different App Versions
  • DAUs by Date
    • (Optional) DAUs for Different Segments
  • Email Statistics by Date
    • Number of Emails Sent
    • Number of Emails Delivered
    • Number of Emails Opened
    • Number of Email Clicks
    • Number of Email Bounces
    • Number of Emails Reported as Spam
  • In-App Messages by Date
    • Number of In-App Messages Sent
    • In-App Message Impressions
    • Number of In-App Messages Opened
  • MAUs by Date
  • Number of New Users by Date
  • News Feed Impressions by Date
  • Push Notifications by Date
    • (Optional) Push Notifications for Different App Platforms
    • Number of Push Notifications Sent
    • Total Opens
    • Direct Opens
    • Bounces
  • Session Count by Hour
  • Session Count per MAU by Date
  • Stickiness by Date

Revenue Data

On the Revenue page of the Dashboard, you can view data on revenue or purchases over specific periods of time, or your app’s total revenue or purchases.

Detailed Statistics Graph

Revenue graph

The following data can be accessed via the Detailed Statistics graph:

  • Revenue by Date
    • (Optional) Revenue for Different Segments
    • (Optional) Revenue for Different Products
  • Purchases by Date
    • (Optional) Purchases for Different Products
  • Revenue by Hour
    • (Optional) Hourly Revenue for Different Segments
  • Revenue per User

Product Breakdown Chart

Revenue chart

The following data can be accessed via the Product Breakdown chart:

  • Purchases
    • Total number of purchases for each product
    • Percentage of total purchases for each product
  • Revenue
    • Total revenue for each product
    • Percentage of total revenue for each product

Campaign Results Data

All of the analytics from your Appboy campaigns can be exported to a CSV. From the Campaigns page of the Dashboard, select the campaign you wish to view, and scroll down to the historical performance graphs, which can be exported.

Message deliveries

Multi-Channel Campaigns

For multi-channel campaigns, the data that can be exported will depend on which messaging channels were used. Here’s a list of all the data that can be exported from a campaign that used iOS push, Android push, email and in-app messages:

  • Messages Sent by Date
    • Total Messages Sent
    • Messages Sent Across Campaign’s Channels (can include Push, Email and In-App Message)
  • Email Message Engagement by Date
    • Number of Emails Delivered
    • Number of Emails Sent
    • Number of Emails Opened
    • Number of Email Clicks
    • Number of Email Bounces
    • Number of Emails Reported as Spam
  • In-App Message Engagement by Date
    • Number of In-App Messages Sent
    • In-App Message Impressions
    • Number of In-App Message Clicks
  • iOS Push Engagement by Date
    • Number of iOS Push Notifications Sent
    • Total Opens
    • Direct Opens
    • Bounces
  • Android Push Engagement by Date
    • Number of Android Push Notifications Sent
    • Total Opens
    • Direct Opens
    • Bounces
  • Windows Phone 8 Push Engagement by Date
    • Number of Windows Phone 8 Push Notifications Sent
    • Total Opens
    • Direct Opens
    • Bounces

Multivariate Campaigns

For multivariate campaigns, which use just one messaging channel, you’ll be able to export data that shows how each variant performed on the specific messaging channel’s analytics over time. You can view this data grouped by statistic or grouped by message variant.

Multivariate data

Push campaign results contain graphs for the following analytics:

  • Messages Sent by Date for Each Variant
  • Conversions by Date for Each Variant
  • Unique Recipients by Date for Each Variant
  • Opens by Date for Each Variant
  • Direct Opens by Date for Each Variant
  • Bounces by Date for Each Variant

Email campaign results contain graphs for the following analytics:

  • Number Delivered by Date for Each Variant
  • Number Sent by Date for Each Variant
  • Opens by Date for Each Variant
  • Clicks by Date for Each Variant
  • Bounces by Date for Each Variant
  • Spam Reports by Date for Each Variant

In-app message campaign results contain graphs for the following analytics:

  • Sent by Date for Each Variant
  • Impressions by Date for Each Variant
  • Clicks by Date for Each Variant

Campaign Recipients

You can export user data for all the recipients of a campaign as a CSV file. To do so, click the User Data button on the campaign page:

User data export for campaign

The CSV output contains user profile data for every recipient of the campaign. Appboy will generate the report in the background and email it to the user who is currently logged in.

If you have linked your Amazon S3 credentials to Appboy, then the CSV will also be uploaded in your S3 bucket. Otherwise, the link emailed to you will expire in a few hours.

The exported file includes the same user data fields which are included when you export user data for a segment. In addition to those data fields, if you choose “Export All Recipient Data,” then the exported file will also contain the following data for each user:

  • Name of campaign variation received
  • API ID of campaign variation received
  • Whether user is in control group

News Feed Data

When analyzing the performance of a specific News Feed card, you can export the data that is found in the Performance Breakdown graphs:

  • Impressions by Date
    • Clickthrough Rate
    • Impressions
    • Unique Impressions
  • Clicks by Date
    • Clickthrough Rate
    • Clicks
    • Unique Clicks

Custom Event Data

The Custom Events page of the Dashboard allows you to view the occurrences of one or more custom event over time. If you view Detailed Statistics for custom events or custom events by hour, you’ll have the option of also viewing the data by specific segments.

Custom events

You can export the following CSVs:

  • Custom Events by Date
    • (Optional) Custom Events for Different Segments
  • Custom Events by Hour
    • (Optional) Custom Events for Different Segments
  • Custom Events per MAU

Device and Carrier Data

For information on your users’ phone operating systems, screen resolutions, wireless carriers and device models, go to the Devices & Carriers page, where you can export the following data:

  • Operating Systems
    • Number count for each device
    • Percentage of total for each device
  • Screen Resolutions
    • Number count for each resolution
    • Percentage of total for each resolution
  • Wireless Carriers
    • Number count for each carrier
    • Percentage of total for each carrier
  • Device Models
    • Number count for each model
    • Percentage of total for each model

Note: The carrier and device data is sampled and aggregated for the corresponding reports.

Opening CSV Exports in Excel

Setting Excel as the Default Program

While CSV files are usually automatically opened in Excel by default, that is sometimes not the case on Windows 7. Here are instructions and screenshots on how to set Excel as your default program for CSVs on Windows 7.

Converting CSV to XLSX or XLS

To convert a CSV to XLSX or XLS, or get rid of the comma in between data values, refer to this guide for importing CSVs into Excel.

Leading Zeroes Stripped From User IDs

You may sometimes find that leading zeroes are stripped from User IDs in your CSV export. This happens because Excel treats the numbers in a CSV as data, as opposed to text. Here are steps on how to remedy this by running Excel’s Text Import Wizard.

Export APIs

Appboy’s export APIs allow you to programatically export a JSON file of Dashboard data. Our documentation page on export APIs contains a list of data that you can access, as well as instructions and sample code for the export.

There are a few reasons why you would prefer this method over exporting a CSV directly from the Dashboard:

  • Your file is very large. From our Dashboard, you can export a CSV with at most 500,000 rows. If you’re exporting data on a segment with over 500,000 users, you’ll need to use our export API, which places no limit on how much you can export.
  • You wish to interact with the data programatically.

Understanding Your App Usage Data

Overview

The App Usage page on the dashboard provides key mobile metrics for you to track and understand the performance of your app and gives you an at-a-glance high level understanding of your app’s userbase. Below are the definitions of these statistics, how we calculate them, and why they should be important to you.

Dashboard Screenshot

Note: You can click “Show Breakdown” located on the right side of all of the rows of the dashboard statistics to view each statistic’s value per day for the time period specified under the “Display Data For:” section.

Expand

Lifetime Users

This is simply the total number of users that we have recorded using your app at any point in time. Below this number is the percentage of how many of your lifetime users are represented as Monthly Active Users which is useful for seeing user retention over a long period of time. A low MAU/Lifetime User ratio may indicate that you need to diversify your messaging channels or increase your efforts in reaching out to lapsing users. See our Quick Win on capturing lapsing users for more info. In general, the MAU to lifetime ratio will inevitably decrease over time due to user churn, but Appboy’s tools can help you minimize this effect by keeping users engaged longer.

Lifetime Sessions

This is the total count of sessions that Appboy has recorded since integration. Simply put, a session is each time a user uses the app. For a more precise definition on how sessions are defined by platform, please see this page.

Monthly Active Users

Monthly Active Users (or MAU) is the number of users that have recorded a session in your app in the last 30 days. MAU are calculated nightly with a rolling 30-day window. The percentage next to the MAU count will give you a comparison of today’s MAU count to the MAU count recorded 31 days ago. MAU provides you with a good understanding of an app’s health over an extended period of time as it smooths out the inconsistencies between days of varying usage intensity.

Daily Active Users

Daily Active Users (or DAU) displays the number of unique users who record at least one session in your app on a given day. DAU can be a useful statistic for examining the day-to-day variability of usage of your app and tailoring your messaging campaigns to be as effective as possible. For example, your app’s usage may see an appreciable spike on weekends - this would inform you that you could reach more users with in-app messages on these days as opposed to weekdays.

New Users

New Users tells you how many users who have previously never recorded a session have started using your app. This number is a total of new users over the given time period. This statistic can be very valuable for tracking the effectiveness of your advertising efforts.

Note: When you initially release your app with Appboy, all users will look like new users since Appboy has never recorded a session for them before.

Stickiness

Your app’s “Stickiness” value is a ratio of a given day’s DAU to MAU. In essence, stickiness measures the percentage of your MAU that come back on a daily basis. For example, a ratio of 50% indicates that on average an active user is using the app for 15 out of 30 days or that about half of your active users come back on a daily basis. Stickiness is an important metric for app success because most users don’t quit using an app because they actively hate it, but rather because it doesn’t become a part of their daily routine. Therefore, you can use stickiness as a proxy for measuring how well you’re engaging your users. Note that the MAU value is still calculated nightly and will not update until the next day.

Daily Sessions

Daily Sessions is the number of sessions recorded on a given day. Comparing this value to your DAU count can inform you of how many times your users open the app on days where they record at least one session.

Daily Sessions per MAU

Daily Sessions per MAU is the ratio of Daily Sessions to MAU on a given day. What this statistic can tell you is how many sessions per day you can expect to have logged per MAU. On aggregate, this can give you an idea of the relative frequency of when your users use your app. That is, if your Daily Sessions per MAU were on average 0.5, then you could expect each MAU to record a session about every 2 days.

Retention Statistics

Retention Heatmap

A Retention Heatmap can be found on the App Usage page underneath the time-series data chart. The retention numbers respond to the timeframe that you select at the top of the page like the other data on the App Usage page. The y-axis on this chart is populated with weekly cohorts of users, showing you when that period began as well as the number of new users contained in that cohort. The x-axis shows the number of weeks that have passed.

This heatmap creates cohorts of users based on when they first used your app and shows what percentage of users from each cohort used the app in progressive weeks. You will see some natural fall off of users as they stop coming back in later weeks. Where there are more extreme dips in usage, your team can strategically create campaigns at the right times to try to keep engagement high. These data will let you see improvements in weekly cohort retention once you start proactively responding to your baseline retention numbers through strategically-timed messaging campaigns.

Retention statistics are updated every Monday at about 5AM Eastern time. Retention is recorded on a per-day basis and rolled up into weekly retention percentages in the dashboard.

Viewing and Understanding Segment Data

Accessing Segment Data

The Segments section of your Appboy Dashboard contains a summary of all of your segments and allows you to examine detailed data for each one. To learn how to create a segment, go to our Quick Wins page.

View segment

After clicking on the name of a segment, you’ll be able to view, at the top of the page, segment statistics and filters. You can edit your segment by adding or deleting filters. Be sure to save any changes!

Segment data

Turning Analytics Tracking On and Off

When you turn analytics tracking on for a segment, Appboy will track this segment’s size over time, allowing you to view the segment’s historical membership.

Analytics tracking

On the Revenue page of the Dashboard, you’ll be able to view data on revenue and purchases over time for this segment. By adding or removing segments from the graph, you can visually compare segment data for any custom time range.

Revenue data by segment

Similarly, data on sessions over time for this particular segment can be found on the App Usage page.

Session data by segment

Appboy also provides the ability to view data on Custom Events over time for segments, via the Custom Events page.

Custom Event data by segment

If you don’t turn analytics tracking on for a segment, you will still be able to access realtime statistics for that segment and target its users with campaigns. The only difference is the access to the specific analysis tools mentioned above.

An app can have tracking turned on for at most 25 segments. Appboy recommends tracking segments that are important for you to analyze when understanding your campaigns’ effects on sessions, revenue and purchases.

Segment Statistics

You will see the following segment statistics, which update in real time as you add or delete filters:

Statistic Description
Total Users How many users your app has in total.
Selected Users How many users are in your segment and what percentage of your total user base they are.
LTV (Paying Users) The lifetime value per user (LTV) in this segment and the lifetime value per paying user in this segment. The LTV is calculated by dividing your lifetime revenue by lifetime users.
Emailable (Opted In) Emailable refers to all users who can be reached via email. These users have provided an email address and have not opted out. Opted In refers to users who have explicitly opted in to email. Due to spam regulations, it’s often a good idea to ask your users to explicitly opt in by implementing a double opt-in policy where users must click a link in an initial confirmation email. To encourage more users to opt in, you can target a message at those who have neither opted in nor out.
Push Enabled (Opted In) Push enabled refers to the number of users with at least one push token. Some users may have multiple push tokens (e.g. if they own an iPhone and iPad), so the number of push notifications you send to this segment may be greater than the number of “push enabled” users. Opted In refers to the number of users who have explicitly opted in to push notifications. On iOS and Windows, users must always explicitly opt in for you to send them pushes. Because of how permissions are granted on Android, users don’t always need to explicitly opt in to receive pushes.

Messaging Use and Historical Membership

If you scroll down the page, you will see segment data on Messaging Use and Historical Membership. Under the Messaging Use category, you can view the campaigns and News Feed items that have been targeted at this segment. Under Historical Membership, you can see how the size of this segment changed over time.

More segments data

User Preview

Lastly, you can view detailed, user-specific information about your segments by selecting the ‘User Preview’ button on your segment page.

User Specific Info

On this page, you can view a number of user-specific attributes as shown below:

User Preview

Creating a Formula

What Are Formulas?

Appboy’s analytics views now allow you to combine several data points together to provide valuable insights into your user data. Formulas will allow you to normalize your time series data based on your total number of MAU/DAU as well as to easily understand complex relationships that exist in your data. For example, you can compare how many custom events were completed by daily active users that qualify for a particular segment versus the general population (or against another segment).

Why Data Normalization Is Important

Normalizing your data is useful for data comparison. For example, you might be interested in comparing custom event data across segments. Using our formulas feature, you can compare custom events performed / DAU across different segments. In other words, you can view the number of custom events performed by a particular segment / that segment’s DAU. Here’s an example that illustrates the importance of data normalization:

Let’s say that you want to compare data on cart abandonment across segments. You decide to look at your “new users” and “big spenders” segment.

First, you use the raw statistics feature in the custom event dashboard to compare the ## of times each segment has abandoned their cart. You create the following view:

big spenders

It seems like “big spenders” abandon their carts more than “new users”. Next, you create a different view using an abandoned cart / DAU formula:

new users

On most days, the “new users” segment has more cart abandons per DAU. There are more total users in the “big spenders” category than there are in the “new users” category, so it seemed like “big spenders” were abandoning their carts more than “new users”. It turns out that “big spenders” have more total cart abandons than “new users” but almost always have less abandon cart events per DAU. Thus, the ability to view normalized data is important because it can completely change the insights that you glean from your data.

Where to Access Your Formulas

Formulas can be accessed in the “Detailed Statistics” panels on the App Usage, Revenue and Custom Events pages in the dashboard. Change the dropdown from “Raw Stats” to “Formulas” and select a formula.

select forumla

How to Create a New Formula

To create a new formula, navigate to the appropriate dashboard (App Usage, Revenue or Custom Events) and click on the “manage formula” button in the detailed statistics section.

manage formula

Enter a name for your formula and select the relevant numerators and denominators. Save your formula.

create formula

Available Numerators and Denominators

App Usage Dashboard

The available numerators are: - DAU - Sessions

The available denominators are: - MAU - DAU - Segment Size

Revenue Dashboard

The available numerators are: - Purchases (all) - Select Purchases (e.g a gift card or a product ID)

The available denominators are: - DAU - MAU

Custom Event Dashboard

The available numerators are: - Custom Event Count

The available numerators are: - MAU - DAU - Segment Size (only segments that have analytics tracking enabled can be used)

Use cases

Formulas, especially when combined with custom events, allow you to better understand user behaviors within your app. Formulas can also lend deeper insight into segment purchasing patterns, even if your company uses paid media in conjunction with Appboy, e.g. Google Ads or TV. Below are some examples of the kinds of behavior patterns that can be detected using Formulas:

  • Ride-sharing apps: If you have a custom event for when the user cancels a ride, configuring a function for Cancelled Rides / DAU can be used to find if certain user segments tend to cancel more rides than others.
  • E-commerce apps: By configuring a function for purchases of a certain product ID / MAU, you can, for example, compare the popularity of a recently promoted product between segments, even if all of the promotions couldn’t be tracked using Appboy.
  • Media apps using ads: If the users’ experience is interrupted by ads between video or audio clips, recording mid-ad exits as a custom event and calculating the ratio of mid-ad exits / DAU can help find the best segments to target with a campaign for ad-free premium subscriptions.

Uninstall Tracking

Appboy’s Uninstall Tracking provide (1) daily app-level uninstall statistics in a time series graph on the App Usage page (2) campaign-level uninstall statistics in a time series graph on the Campaign Details page of a specific campaign. This statistic specifies the number of campaign recipients that uninstall each day. Note that this second feature is currently in beta; contact your dedicated success manager or success@appboy.com for access.

Showing aggregate uninstalls over time can help you visualize trends and anomalies so that you can monitor app uninstalls with ease. Similarly, tracking campaign-level uninstalls can reveal whether a specific campaign is driving or preventing app uninstalls. Appboy automatically collects a base level of uninstall information from your regular push campaigns. However, because the frequency that different users receive push campaigns may vary, Appboy offers Uninstall Tracking to provide a more accurate snapshot of uninstall activity among your users. You must opt-in to Uninstall Tracking on the dashboard; this feature is currently available for apps on iOS, Android, and Fire OS.

Implementation

You can enable Uninstall Tracking in the App Settings section of the “Manage App Group” page. For each app you are interested in tracking, check the box in the uninstall tracking section.

Uninstall Tracking Checkbox

When uninstall tracking is enabled for an app, background push messages will be sent nightly to users who have not recorded a session or received a push in 24 hours. If you are interested in filtering Appboy background push, you can use the utility methods that were released in the iOS SDK version 2.13 and Android SDK version 1.8.2; documentation for the methods can be found here, and here, respectively. When Appboy detects an uninstall, whether from Uninstall Tracking or normal push campaign delivery, we will record the best estimated time of the uninstall on the user. This time is stored in the user profile as a standard attribute.

Uninstall Attribute

This time can be used to define a segment of users for win-back campaigns. Using the Uninstalled filter on the Segments page, you can select users who uninstalled within a time range. Since determining the exact time of an uninstall is difficult, we recommend that uninstall filters have wider time ranges to make sure everyone who uninstalls falls into the segment at some point.

Uninstall Segment

App-Level Analysis

Daily statistics on uninstalls are found on the App Usage page. The visualization can be broken down by segment, similar to other statistics Appboy provides. View statistics for usage analytics, and then select Uninstalls from the dropdown to display the graph. The graph can then be broken down by segment, and by app, using the dropdowns. Note that apps without uninstall tracking enabled will report uninstalls from only a subset of their users (those who were targeted with push notifications), so daily uninstall totals may be higher than what is shown.

Uninstall Graph Selection

Uninstall Graph

Uninstall Tracking for Campaigns

Campaign Uninstall Tracking allow you to see the number of users who received a specific campaign and subsequently uninstalled your app within the selected time frame. This tool gives marketers insight into how campaigns may be encouraging unintended negative user behaviors, and helps to measure overall campaign efficacy.

Appboy tracks uninstalls by observing when push messages sent to users’ devices return a signal from either Google Cloud Messaging (GCM) or Apple Push Notification Service (APNS) that the app is no longer installed. If Global Uninstall Tracking is enabled for a particular app, Appboy sends a daily silent push message to users to detect whether they have uninstalled (this “silent” push does not appear to users). If Appboy detects that a user has uninstalled, that platform:

  • Increments the App’s total uninstall count by 1.
  • Increments the uninstall count for every campaign that the user successfully received in the past 24 hours by 1.
  • If a user receives 3 campaigns in a 24 hour period and then uninstalls, we will increment the count of “uninstalls” for all 3 campaigns.

Uninstall Tracking are subject restrictions placed on this information by GCM and APNS. Appboy only increments the uninstall count when GCM or APNS tells us that a user has uninstalled, but these third-party systems reserve the right to notify us of uninstalls at any point in time. In some cases, GCM or APNS may not notify Appboy that a user has uninstalled a long duration (up to several months). As a result, Uninstall Tracking should be used to detect directional trends as opposed to precise statistics.

To enable Uninstall Tracking, your user base should be on at least Android SDK version 1.8.2 and iOS SDK version 2.13. Turning on uninstall tracking for apps with users below these thresholds will send blank pushes to end users.

For more on using Uninstall Tracking, see this blog post.

Uninstall statistics for campaigns are located on the Campaign Details page. For multichannel and multivariate campagins, uninstalls can be broken down by channel and variant, respectively.

Uninstall Campaign Level

Influenced Opens

Push notifications are a good way to catch users attention and increase their engagement. Often that is through direct opens, when users click on the notification and are sent to the app. However, the behavior of users who do not click the message may still be influenced by your push campaigns. Appboy provides data on Influenced Opens to provide a richer level of detail into the effect of your push campaigns. At it’s base, Influenced Opens are a measure of the number of users who open the app after receiving a notification without clicking on the notification. Because there is no direct action linking the notification to the app open, Appboy utilizes an algorithm which calculates the odds that an open following a push notification is related to the push. This calculation takes into account the average behavior of the user.

As an example, say you are sending a push to users of a messaging app, and you have a group of users who don’t click through the notification. If a user who normally opens the app 30 times a day opens the app 6 hours after receiving the push, the push would get little to no credit for influencing the open. However, if a user who normally uses the app once a month opens the app 6 hours after receiving the push, the open would have a much better chance of being counted as an influenced open. This differs from setting app opens as a conversion event for a push campaign. For conversions, all opens within the conversion window will be attributed to the campaign. Influenced Opens sets a time window and attribution credit based on an individual user’s behavior.

Influenced Opens are added to the direct opens of a campaign to give a number of total opens. This can be seen on the Details page of a push campaign. Total opens and direct opens are shown in the Message Performance and Historical Performance sections. Influenced Opens are the difference between the two measures.

Details

For more information on tracking opens, check out the conversion tracking section of our best practices for push.