Monetization reports

Reports in this section cover key monetization metrics.

All reports here require Payment event integration. Learn more about Payment event.

Monetization reports:

Monetization Dashboard

This dashboard contains an overview of key monetization metrics. All data is shown for a selected period of time (you can change it in the top right corner), default period is the last 7days.

The top two widgets show the dynamics of Gross & ARPU and Paying share & ARPPU metrics.

Three pie charts below show Gross, Paying users and ARPPU for top 5 countries and the “other” group (includes all countries that didn’t get in the top by certain metric).

The following widgets show more detailed info about repeated payments:

  • Repeated payments share in the total revenue

  • Users grouped by the number of transactions

  • User conversion funnel based on the number of purchases made

  • Users grouped by a period within which the first purchase is made

Click a 🔎 to open a more detailed report.

Subscriptions

These reports focus only on subscription analysis and don’t cover any other app monetization models. The reports contain information on the essential app metrics, which are built on the subscription data received from devtodev SDK and app stores. Integration with stores allows you to receive information about subscription purchases even if the user doesn’t open the app (auto-renewable subscriptions).

Overview

The report includes several widgets with information on different aspects of the essential metrics of the app’s subscription monetization model.

List of metrics found in this report:

  • Subscription gross - revenue received from subscriptions over a selected time period.

  • Recurring gross - revenue from all active subscriptions adjusted for a specific time period. Different widgets use different groupings, therefore the metric would get adjusted to different periods (daily, weekly, monthly - Monthly Recurring Revenue). For example, one user has a $30 active monthly subscription, plus two other users have $60 annual subscriptions, then the monthly adjusted Recurring gross (MRR) = $30/1 + 2*($60/12) = $40.

  • New trial users - users who activated the trial version for the first time during the selected period.

  • New subscribers - users who made their first subscription payment within a given period.

  • Activated subscribers - users who made a payment within a given period.

  • Churned subscribers - users with Expired/Refunded subscription status over a selected period (these users had paid subscription, but did not renew their subscription during the Grace period).

  • New user to trial conversion - the percentage of new users that have converted to trial over the selected time period.

  • Trial to subscriber conversion - the percentage of users that have converted to a paid account from a trial period.

  • New user to subscriber conversion - the percentage of users registered within a given time period who made at least one subscription payment afterward. The percentage is taken of all users registered over the given time period.

  • Active subscriptions - the number of active subscriptions by the end of the aggregation period.

  • Active trials - the number of active trials by the end of the aggregation period.

All data is displayed for a selected period (you can change it in the top right corner), the default period is the last 7 days. You can also specify the country, install dates, or user sources in the filter next to the selection of the reporting period.

The first widget named ‘Overview for selected period’ contains general information about metrics that you can use to track several key subscription indicators at once.

The following two graphs show your daily income flow and recurring gross, as well as the dynamics of active subscriptions and active trials of your app. You can use them to track any changes in your app and respond to them quickly.

Next, you see a group of pie charts with information about Subscription gross, New subscribers, and the number of active subscriptions at the end of the selected period, broken down by the top-5 subscription bundles by gross.

The following widgets show daily dynamics of the number of new users, new trial users, subscribers, and their conversions.

Below them you can see a funnel with aggregated information for the selected period - the data on new users and their conversion to subscribers (light blue funnel and data signatures), as well as data on conversion of new users to trial, and then to subscription (blue funnel and signatures). It also contains information about the median time required to move through each stage of the funnels.

Structure

Use this report to run an in-depth analysis of the structure of subscriptions purchased by your users and the income earned from them.

Depending on the options selected in the ‘Group by’, the report will show you all the components of the metric of your choice:

  • Subscriptions bundle - with a breakdown by top subscriptions.

  • Subscription state - with a breakdown by subscription status. For example, the selected ‘Subscription gross’ metric is composed of:

+ New - the amount of income from users who bought the subscription for the first time.

+ Renewed - the amount of income from users who renewed their subscriptions for the next period.

+ Reactivated - the amount of income from users who bought the subscription after they were previously marked as Expired or Refunded (Churned).

+ Upgraded - the amount of additional income (the difference between the more expensive new subscription and the previous one) from users who bought a more expensive subscription.

− Downgraded - the amount of lost revenue (the difference between the cheaper new subscription and the previous one) from users who bought a cheaper subscription.

− Refunded - the amount of money spent on refunds.

Churn - the income lost because users didn’t renew their subscriptions that expired during this period. Churn is a purely informational metric that is not involved in the calculation of metrics - it can let you know how much income could be earned from 100% of renewed subscriptions.

In this report, you can also analyze other metrics. In the ‘Metrics’ selector choose:

  • Number of subscriptions

  • Subscriptions gross

  • Subscriptions recurring gross

  • Subscriptions refunded gross

  • Refunded subscriptions

Here you can also analyze specific subscriptions, for example, monthly subscriptions only. To do this, click the ‘Subscriptions’ option and open a drop-down menu with all available subscriptions grouped by their duration.

The ‘Aggregation period’ option allows you to aggregate data to see the daily, weekly, and monthly dynamics.

By clicking on any of the chart columns, you will get information about this period. If you need to analyze all periods at the same time, click the button at the top right corner of the report to download a .csv file with the table containing a description of all periods presented below the chart.

Retention

This report shows the influence of subscriptions on user retention, on how often they renew their subscriptions (Subscription retention).

The first column in the table shows the time period and the number of users who purchased the subscription for the first time during this period. The report’s time frame (at the top right corner) limits the time of the first subscription purchase (the time of entering the cohort).

Each line contains information about a specific user cohort (the users who bought their first subscription during the corresponding time period). The columns contain the sequential numbers of renewed subscription purchases.

Let's look at an example of how users renew their subscriptions. Select the ‘Number of subscriptions’ metric:

Here we see that in the first week of August 2023 1486 users purchased the first subscription, then 400 of them renewed it (with a conversion rate from the first to the second subscription of about 27%), then 70 of them renewed the subscription again (4.7% of the initial cohort).

The following metrics are available for analysis in the ‘Metric’ selector:

  • Number of subscriptions - the number of purchased subscriptions and the number of subsequent renewals.

  • Subscription conversion - the conversion into purchasing the Nth subscription. It is 100% for the first period, and for each renewal period, it equals the ratio of users who activated the Nth subscription to the number of users who bought the first subscription.

  • Subscriptions gross - the amount of income earned from the first and renewed subscriptions.

  • Cumulative subscription gross - is calculated by cohort as the sum of income for all periods including the current period.

By using the ‘Aggregation period’ selector you can group users by the dates of their first payments - by days, weeks, months.

By using the ‘Periods since first subscription’ selector you can limit the time for collecting data on subscription renewals and including them in the report. For example, if you set the time frame as January 2023 and 11 subsequent months in this selector, then you will analyze data on all subscriptions purchased by these users during 2023.

In this report, just as in the ‘Subscriptions structure’ report, you have access to the ‘Subscriptions’ selector which allows you to analyze the specific subscriptions of your choice. We recommend analyzing subscriptions with the same duration in this report. In this case, the sequential numbers of subscription renewals can be interpreted as subscription lifetime - the number of periods that users resubscribe to certain subscriptions and continue using the app.

Filters and User Cards Updates

Each event performed by the user will be marked with additional parameters depending on the user's subscriber status at the time of these events. In most reports, these parameters will be available as filters:

Subscription state - the current state of the user's subscription, which can have the following values:

  • None - the user does not have and never had a subscription

  • Unsubscribed

    • Expired - the user's active subscription has expired, and they didn’t renew it during the Grace period.

    • Refunded - the user has refunded their subscription.

  • Trial - the user is using a trial period of any subscription

  • Subscribed

    • New - the user purchased a subscription for the first time.

    • Renewed - the user renewed their subscription (using the auto-renew option or manually during the Grace period)

    • Reactivated - the user purchased a subscription after being previously marked as Expired or Refunded.

    • Upgraded - the user purchased a more expensive subscription.

    • Downgraded - the user purchased a cheaper subscription.

Subscription prev state - the user's previous subscription status. You can use it to find those users who converted to the paid account from the trial period or to find those who activated other subscriptions after refunding.

Subscription bundle - the name of the subscription active at the time of the event (you can compare the behavior of users who purchased a subscription to one part of the functionality with those who purchased a subscription to another part).

Subscription sum - the income from all subscriptions purchased by the user (use it to range users by the amount of payments).

Subscription count - the number of subscriptions purchased by the user (use it to find out more about actions taken by users who purchased a subscription one time only)

The same parameters will be available in user cards - use them to analyze the user's current subscription status. Information about all payments and refunds related to subscriptions will be added to the ‘Payments’ tab.

If multiple subscriptions are available in the app (the situation where a single user has several active subscriptions from different groups at the same time), then in the ‘Subscription state’ you will see data on the aggregated state of the user's subscriptions. Aggregation occurs once the next subscription event is received. If the user already has an active subscription, the highest priority status of any active subscription is taken as the state (the list of statuses in the ‘Subscription state’ is sorted by priority in ascending order, none is the lowest priority state, downgraded - the highest priority).

Considerations

2-day delay: Markets may send us events with a 2-day delay. If you don't see the latest data, please wait a while.

Subscription prices: The app stores do not make individual transaction prices directly available to developers, so devtodev tracks prices at the time of purchase and assumes any subscriptions will renew at this purchase price. Therefore, if you ever raise the price of a product, devtodev reports will be accurate if you choose to grandfather existing subscriptions at the current price.

Partial refunds: If a user wants a refund, stores still will not give us information about the total amount of money they paid. Therefore, we calculate the refund based on how many days are left on the subscription.

Non-existent user: In case we see a transaction from the store but we don’t have any information about the user who made it, we will wait for the information about the user for two days. If the user opens the product within two days, we can correlate them with the transaction, otherwise, we leave it anonymous. Read more about subscriptionHistoryWithTransactions here.

Ad monetization

The report helps you evaluate how users interact with ads in your application.

General Report

The report contains the most common ad performance metrics that we get from Ad networks: ad revenue, ECPM, impressions, average impressions per user, average impressions per session, ad clicks per user.

All data is shown for a selected period (you can change it in the top right corner), the default period is the last 30 days. You can also specify the country or ad network in the filter next to the selection of the report period:

  • by adding a country filter, you can measure the effectiveness of ad monetization adjusted for geographic location;

  • by adding an ad source filter, you can analyze the effectiveness of a specific ad network.

The report consists of several widgets:

The first widget named Total info for selected period contains general information about metrics that you can use to track several key indicators at once. Metrics are summarized by the ad networks integrated to the project:

  • The Ad impressions metric shows how many times ads have been displayed over the selected period.

  • Average impressions per user - the average number of ad impressions per user.

  • Average impressions per session - the average number of ad impressions per session.

  • Ad CTR - the number of clicks on ads divided by the number of their impressions in the application.

  • Ad clicks - the number of clicks on ads for the selected period.

  • Ad revenue - advertising revenue.

  • ARPU by Ad - the average ad revenue per active user for the specified reporting interval. The indicator is calculated by summing the total revenue of the application and dividing it by the number of active users for the specified reporting interval.

You can use this widget to quickly assess the advertising revenue status and other metrics.

The Ad Revenue by network chart depicts ad revenue by ad networks. It shows the percentage of revenue from each ad network:

Ad Revenue by country chart shows ad revenue by country. You can see the percentage of ad revenue in country breakdown:

The Ad metrics per user graph depicts ad revenue, impressions, and clicks per user by days.

The Ad metrics graph displays the following metrics: Ad impressions, Ad revenue, Active users. Thus, you can see the relationship between the number of active users and the advertising income and promptly respond to changes in the number of ad impressions in your application.

Below the charts you can find a table with information about the following metrics:

  • Ad revenue.

  • Ad click - the total number of times users click or tap on ads shown on your application.

  • Ad impressions.

  • Ad CTR - the number of times users click on ads shown divided by the number of times ads are shown.

  • Ad ECPM - effective cost per thousand impressions. eCPM is an estimate of the revenue you receive for every thousand ad impressions. The higher the eCPM rate is, the better, because it means that the ads shown in the application are doing their job and converting users. You can use this metric to compare ad revenue across ad networks and countries. Therefore, you can select the desired grouping above the table.

Using the Detailed stats chart, you can analyze the following metrics: Ad revenue, Ad clicks, Ad CTR, Ad ECPM, Ad impressions, and ARPU by Ad by weeks. You can also group them by ad network or country.

Advanced report

This section is available only for the accounts linked to the ironSource ad mediation platform. The platform allows you to run an in-depth analysis of your ads and user feedback on it.

To the data in the table, you can apply different groupings as well as double grouping by any of the following parameters: Country, Ad source, Ad unit, Ad Placement, Ad network, etc.

The metrics applicable here are the ones available for the ‘General report’ and others:

  • Users saw ad - The total number of unique users who saw an ad over a given time period.

  • % of users saw ad - The percentage of users who saw an ad out of all active users. The indicator is calculated by dividing the number of unique users who saw the ad by the number of active users.

  • Impressions per user saw ad - The average number of ad impressions per user who saw an ad over the time period. The indicator is calculated by dividing the total number of ad impressions by the number of users who saw the ad.

  • Ad revenue per user saw ad - The average ad revenue per user who saw an ad. The indicator is calculated as total ad revenue divided by the number of users who saw the ad.

  • Ad impressions per user - The average number of ad impressions per active user over the time period.

If a part of your users fell into the Unknown category, it means that their ad ID was changed and we failed to match them with devtodev users. If you want to convey the trend of a metric over time, you can turn it into a graph that appears below the table.

In Funnels, Custom events, SQL, User flow, New user path, Last user activity (Users), Retention by event reports you can find an auto-created Ad_impression event with the following parameters: Ad network, Ad placement, Ad unit, Ad revenue, Ad Source/ In the user card in ‘Users’ and in the report filters, you can use the following two fields:

  • Ad revenue - the ad view revenue generated by a specific user

  • Ad impressions - the number of times ads were served to a specific user

Gross Structure

This report presents a set of charts with total stats and day-by-day dynamics for a selected period of time.

Default report period is the last 30 days, you can change it in the top right corner. You can configure a filter in the report or use already created filter template or custom segment to get more detailed data. To apply changes press “Refresh” button.

You can group data in the report with several options:

  • Top 5 countries defined by a certain metric, and “other” group (data for all other countries)

  • Paying capacity (non-paying / minnows / dolphins / grand dolphins / whales / grand whales)

  • Days from app install

  • Number of payments

Click a 🔎 to open a more detailed report in Basic Metrics.

Conversion to Payments

This report shows info about users' repeated purchases and time they spent in the application before 1st, 2nd, etc purchase.

The top part of the report shows the conversion funnel based on the number of purchases made and detailed info about each step of the funnel in the table: number of users, revenue, median number of payments, median period of time from the first launch until the payment is made.

The last chart shows the number of paying users grouped by two options:

  • Days from install until the payment

  • Users’ in-game level of experience

It is also possible to check the stats for users with certain number of purchases using a “Payment number” option on the widget. The right part of the last chart contains shares of paying users distributed by predefined groups. When you change widget settings, these numbers also change.

Default report period is the last 30 days, you can change it in the top right corner. You can configure a filter in the report, use already created filter template or custom segment to get more detailed data. Changes are applied automatically.

Top converting goods

This widget contains the information about the top 5 items that users bought as the first purchase. Also, you can expand this report by using the button in the top right corner to see which items were purchased as the second purchase for each of these items.

The report contains the following metrics:

  • % of all purchases - a share of purchases for this item among all of the first purchases

  • Conversion to 2nd payment after the purchase of the specific item

  • Average number of payments by user

  • ARPPU - an average revenue that paying users generate for items they purchased, including items that they purchased after they bought specific items as 1st and 2nd purchase

With this widget, you can define the most popular items that your users prefer to buy firstly after they start using your app. Also, you can see the most frequent sequence of purchases and find out which of them more likely lead to repeated payments and more profitable purchases.

For example, you could find out that after users buy item A they are more likely to buy item С and based on this information you could plan your offers strategy and show item С for such users.

Cumulative ARPU

Cumulative N days ARPU is one of the most important metrics of any product. It shows how much money does one average user bring to the project within his/her first N days in the project.

By default devtodev calculates this report for first 30 days of user's lifetime in the project, but you can change the number of days above the chart.

Note that metric “Users, %” shows the calculation user base: how many users (in percentage of the total number of users from the report) were used to calculate the value. For example, if you set the "last 30 days" as install dates interval, and build report for 30 days, there is only one daily cohort which will be used to calculate the ARPU of day 30.

There are two different views in this report:

  • Cumulative ARPU. In Cumulative ARPU view you can see the number of installs for each cohort, the total gross each cohort brings within the report time frame.

    The main part of the table shows the cumulative ARPU values for specific days and specific cohorts (cohort is the set of users who installed the project on some specific day(s); every string in the table represents some user cohort). 'Aggregated CARPU' above the table is calculated as weighted average cumulative ARPU (where the weights are the cohort sizes in "Install" column).

  • Cumulative ARPU. In Cumulative ARPU view you can see the number of installs for each cohort, the total gross each cohort brings within the report time frame.

    The main part of the table shows the cumulative ARPU values for specific days and specific cohorts (cohort is the set of users who installed the project on some specific day(s); every string in the table represents some user cohort). 'Aggregated CARPU' above the table is calculated as weighted average cumulative ARPU (where the weights are the cohort sizes in "Install" column).

  • Daily ARPU. In Daily ARPU view you can see how much money does average user from the cohort bring to the project on some specific day. There are two aggregated values above the table:

    • 'Aggregated CARPU' above the table is calculated as weighted average cumulative ARPU (where the weights are the cohort sizes in "Install" column).

    • 'Avg. daily ARPU' above the table is calculated as weighted average daily ARPU (where the weights are the cohort sizes in "Install" column).

By analyzing this report vertically you can track the changes of project quality: you compare the same metrics for different time cohorts. By analyzing this report horizontally you can track the payment behavior of each cohort.

You can filter users anyhow by selecting the filter under "Add filter" button.

Aggregated Cumulative ARPU

Cumulative ARPU is one of the key product metrics as it becomes Lifetime Value overtime when it stops changing significantly. Using our new Aggregated CARPU metric in the Cumulative ARPU report, you can track how different cohorts of users spend money, compare those cohorts, and evaluate how different activities influence the metric.

Sometimes, when experiments happen rarely or influence finance metrics only slightly, there is no need to track CARPU every day and compare daily cohorts - that is why we recently added an option to group CARPU by days, weeks or months.

For example, when you select weekly aggregation, the cohorts will be grouped by calendar weeks and CARPU will also be calculated by weeks from the install date. The grouping will be applied to rows and columns of the table. It will allow you to see the dynamics of a bigger cohort of users that might be hardly noticed with daily aggregation.

Please note that the Aggregated cumulative ARPU graph is not cumulative over the entire period and the Cumulative ARPU values on certain days can be lower than the previous day. This is due to the fact that the Aggregated cumulative ARPU is calculated as a weighted mean of all the selected cohort values every day since the installation. The number of cohorts that are part of the calculation will slowly decline because they don’t meet the criteria of having enough days after the installation. Let’s look at an example:

Day 17 CARPU is calculated for all selected cohorts because they were built at least 17 days ago. Day 18 CARPU is calculated only for eight cohorts because the seventh (built on December 29th) hasn’t “lived” for 18 days.

The CARPU of the users from the seventh cohort is higher than that of the users from other cohorts. When we eliminate this cohort from the calculation, the weighted mean decreases because its high CARPU increased it.

RFM Analysis

This report shows the distribution of users into certain groups depending on the recency, frequency and total amount of their payments. The analysis of this type is aimed at studying user payment behavior in order to be able to create a relevant offer for each group.

How to apply it?

Use this report to influence the paying users who made their last payment a long time ago: send them a push notification with a discount or a promo code. Create segments of ‘lavish spenders’ and ‘lapsed payers’ and compare their behavior using different reports - User path, Cohort analysis, User flow, Basic metrics, etc. to identify their behavioral patterns.

What does RFM stand for?

RFM stands for Recency, Frequency, Monetary. Recency – time since the last purchase, i.e. the number of days that have passed since the last purchased. Frequency – frequency of user purchases, the number of payments over the entire period of user's engagement with the project; data is retrieved from the user card. Monetary – total amount of money a user spends in the project, a total amount of payments; data is retrieved from the user card

When building a report, each paying user is given three scores from one to five, where 1 - is the lowest value and 5 is the highest. For example, if the last transaction occurred a long time ago, then the user is given 1 point for Recency. If the user makes regular payments, he will get 5 points for Frequency. If his total amount of payments is higher than the average, he will get 4 points for Monetary, etc.

After all scores are assigned, users are divided into ten segments: Can’t Lose them, Hibernating, At Risk, Loyal Customers, Champions, Need Attention, Potential Loyalists, About To Sleep, Promising, New Payers.

The report can display data in two modes:

  1. RFM diagram. Each user has three RFM scores. To make the interpretation of results more straightforward, we united Frequency and Monetary criteria so that you can see segments on a graph with two axes , where Y axis represents scores for (Frequency+Monetary)/2 and X axis represents scores for Recency. Therefore, user segments are presented by criteria: in the top right corner you can see frequent lavish spenders who made a purchase recently and in the top left corner frequent lavish spenders who made their last purchase a long time ago. The size and position of the blocks is fixed and does not depend on the number of users in the cohorts.

2. RFM audience share. The diagram depicts the same user segments distributed by the share of an RFM segment in the total number of users that were in the analysis. On the screenshot below you can see that the current project is dominated by the ‘Hibernating’ segment (last purchase was made long ago, low spenders, infrequent buyers) and its share is 33.88%.

For more information, click one of the segments: what audience it contains, the number of users, recommendations on interaction with the segment:

Each designated segment can be:

  • exported to a CSV file,

  • used to create a new segment for further use in other reports,

  • used for sending push notifications to the entire audience,

  • exported cohort to Ad network.

User segments

Segment nameRFMDescriptionHow to apply it

1. Can’t Lose Them

1-2

5

These customers made the biggest purchases, and made them often. But they haven’t returned for a long time.

Try to win them back by offering them renewals or newer offers, features. There is a chance to lose them to competition, try talking to them.

2. Loyal Customers

3-4

4-5

Customers who spend often good amounts of money. They are responsive to promo activities.

Try to upsell higher value products. Ask for reviews and think how you can engage them.

3. Сhampions

5

4-5

Customers who bought recently, buy often and spend the most money.

Try to reward them. These customers can be early adopters for new offers and features. They will promote your app.

4. At Risk

1-2

3-4

These customers spent big sums of money and made purchases often but a long time ago. You need to bring them back!

Try to reconnect with customers by sending them personalized push notifications, offering renewals, and providing helpful resources.

5. Need Attention

3

3

Customers in this segment have above average recency, frequency and monetary values. They may not have made purchases very recently though.

Try making time limited offers, recommend based on past purchases, and reactivate them.

6. Potential Loyalists

4-5

2-3

These are recent customers who spent a good amount and made purchases more than once.

Try offering membership or loyalty programs, and recommend other products.

7. Hibernating

1-2

1-2

Last purchase by these customers was a long time ago. They are low spenders and have a low number of orders.

Try offering them other relevant products and special discounts. You can also promote new features and modes.

8. About To Sleep

3

1-2

Customers have below average recency, frequency and monetary values. You will lose them if they remain not reactivated.

Try sharing valuable resources, recommend popular products, renewals at discount, and reconnect with them.

9. Promising

4

1

These customers are recent payers but they haven’t spent much.

Try making time limited offers and persuade them to use the app more frequently.

10. New Payers

5

1

These users have just converted to payers.

Try engaging them to use the app more frequently and give them bigger discounts.

Range thresholds for RFM

The following values are set by default: if the user made his last purchase more than a month ago, then his Recency =1, if he made from 4 to 7 purchases, then his Frequency = 3, and if his total payment volume is more than $500, then his Monetary = 5. To change the point allocation criteria, click ‘Configure RFM scores’ in the drop-down menu in the top right corner. Click ‘apply’ to save the changes.

Payment amounts

This report shows the distribution of users by the number of payments they made and the total amount of money they paid. For example, in this report you can see how many users registered during a specified time period and made 5 payments with the overall sum of $0 - $5.

Default report period is the last 30 days, you can change it in the top right corner. You can configure a filter in the report, use already created filter template or custom segment to get more detailed data. Changes are applied automatically.

Transactions

This report shows the detailed list of transactions that are made in the app on a particular date. The current date is specified by default.

The following filters are available:

  • Source of transaction

  • Type of transaction (normal, test, invalid, cheat transactions)

If the list of transactions exceeds 1000, you will be suggested to export a full list as a .csv file. Moreover, you can initiate export manually by clicking the “Export” icon.

Last updated