Revenue Attribution Overview

  • Advertisers
  • Developers

revenue_attribution.png

Revenue and Beyond

Revenue is one of the most significant metrics that you can collect using AppsFlyer. Revenue can help you mark successful campaigns or otherwise.

AppsFlyer lets you see revenue data per event and media source. It also automatically calculates KPIs such as ROI and ARPU so that you don't have to.

Another strong usage of revenue data is defining audiences for retargeting and lookalike based campaigns

This article discusses revenue in high-level perspective. It outlines possible revenue sources, how revenue analysis can boost your marketing, and other important technical aspects of revenue attribution.

Revenue Streams

There are three main sources for generating revenue.

Purchases Subscriptions Ads

Purchases

Your app can offer in-app purchases. In-app purchases are not limited to actual products that you sell. They can also include selling tickets or booking flights and hotels.

Basically, any action that involves purchasing products or services is an in-app purchase. For more information on tracking in-app purchases, we recommend reviewing our guide on tracking Rich In-App Events.

Revenue Attribution

Revenue attribution establishes the connection between revenue and other factors in your marketing operation. Such factors can be:

  • The ad networks through which you run campaigns
  • The campaigns that you run
  • Ad sets in campaigns
  • User attributes such as GEO location and type of device
  • Retargeting campaigns

Let's look at some examples. 

Ad Networks    

 Example

You run campaigns with the help of ad networks and some networks generate installs. As time goes by, some users purchase products and services using your app. When they do so, and you track the revenue from these purchases, AppsFlyer knows which user comes from which network and attributes revenue accordingly.

When you view your app's dashboard or when you generate raw data reports for in-app events, it's easy for you to see how much revenue is attributed to each network.

Campaigns    

Following the same logic, AppsFlyer also knows which campaigns generate installs. When users purchase products or services using your app, AppsFlyer knows what campaigns to attribute revenue to. You can then see which campaigns are successful and which are not.

Visualizing Revenue Data

 Important!

Data is displayed according to date range filter.

There are several pages in the dashboard that offer revenue data visualization. 

Overview

The overview page shows the following:

Total revenue for organic and non-organic in-app events


total_revenue_overview.png

Lifetime revenue per media source


overview_ltv_revenue.png

Aggregated Performance Report


Revenue Per Event

aggr_performance_in_app_event.png

ARPU - Average Revenue Per User

aggr_performance_arpu.png

Cost - ROI

aggr_per_cost_roi.png


For more information on see our guide on the Dashboard Overview Page

Activity Page

The activity page contains an Activity Summary table where you can see Activity Revenue and ARPDAU (active revenue per daily active user) per media source.


activity_arpdau.png

For more information on see our guide on the Activity Report Page

Events Page

The events page shows the Events Drill Down table. You can see the accumulated revenue for each event per media source. You can also group by Event.

event_drill_down.png

For more information on see our guide on the Events Report Page

Monetizing Parameters

af_revenue is the only parameter that accumulates your users' revenue. Always use it with in-app events that represent actual revenue generation in your business logic.

af_revenue can also bear negative revenue values if you need to track events such as cancelled transactions or refunds.

 Note

AppsFlyer displays the exact revenue as sent from the SDK. It does not include any calculations for VAT or app store commissions etc, unless these were included by the developer on the SDK side prior to it being sent to AppsFlyer.

af_currency represents the currency that is stated in af_revenue (or af_price). If af_currency is missing from the event's parameters AppsFlyer sends it with the default value "USD".

You can use af_price as a monetary parameter that is not counted as revenue (such as in an “Add to Cart” event). This parameter refers to the individual item price.  The total amount of all purchases appears under the af_revenue parameter.

Technical Aspects

Revenue tracking and attribution in AppsFlyer bears some technical aspects.

Tracking Revenue Data with AppsFlyer

Whenever you send an in-app events such as purchase or flight booking, you send it with its associated revenue. The sole parameter that carries revenue in in-app events is af_revenue

Tracking Negative Revenue

You can also track negative revenue in case a user cancels a purchase or if you issue a refund. To track negative revenue, all you have to do is append the minus sign (-) to the revenue value that you pass to af_revenue

 Important!

Do NOT format the revenue value in any way. It should not contain comma separators, currency, special characters, or text. A revenue value should be similar to 1234.56, for example. AppsFlyer provides revenue value with precision of up to five decimal places.

Sharing Revenue Data with Ad Networks

You can share revenue data with Ad networks. To do so, you need to share revenue from in-app events with the ad network. You can also grant the ad network permission to configure revenue sharing by themselves.

Note

Make sure to enable revenue sharing only for events that have af_revenue defined in their event value. Otherwise, ad networks get events with empty revenue value.

To enable revenue sharing follow these steps:

  1. Choose the Integrated Partner
  2. In the Integration Tab, scroll to In-App Events Postbacks
  3. After you map in-app events, select Send Revenue next to the relevant events
  4. Check or uncheck Send Revenue to enable or disable revenue sharing

    media_source_in_app_event_send_revenu.png

It is recommended to share revenue if you want ad networks to optimize your campaigns and improve campaign results. However, sharing revenue is not mandatory.

Revenue Currency

It's important to understand how AppsFlyer handles currency settings and currency conversion.

AppsFlyer handles the difference between app settings currency and in-app events currency using currency conversion.

The diagram above demonstrates the following process:

  1. In-app events are sent - different currency for each event
  2. AppsFlyer normalizes all currencies to USD
  3. AppsFlyer processes revenue data
  4. Revenue data in the dashboard is displayed in app settings currency
  5. AppsFlyer populates revenue data in raw data reports in both event and app settings currency

AppsFlyer uses Open Exchange Rates for currency conversion. The exchange rate is updated on an hourly basis. Whenever AppsFlyer performs currency conversion, it uses the exchange rate of the last hourly update.

Currency Conversion

 Example

In your app settings, you set currency to GBP. A user from France purchases a product using your app. The price is quoted in EUR (€). The in-app event that you send to AppsFlyer looks like this:

Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE,200);
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE,"category_a");
eventValue.put(AFInAppEventParameterName.CONTENT_ID,"1234567");
eventValue.put(AFInAppEventParameterName.CURRENCY,"EUR");
AppsFlyerLib.getInstance().trackEvent(getApplicationContext() , AFInAppEventType.PURCHASE , eventValue);

In this case, AppsFlyer converts revenue from EUR to USD and then to GBP. Let's assume the exchange rate is €1 = $1.13. So €200 becomes $226.85. Next, AppsFlyer converts from USD to GBP. Let's assume the exchange rate is $1 = £0.78. So $226.85 becomes £176.92.

Currency Display

Currency is set in the app settings. The currency that you set in app settings, is the currency that appears in the dashboard. No matter what currency you send in in-app events, the revenue in the dashboard always appears in the currency that you set in app settings.

 Example

Let's say that you send in-app events with different currencies than the one in app settings, or with no currency at all. In this example, currency in app settings is set to GBP.

You send three in-app events to AppsFlyer.

  1. Event A has revenue of 234 and GBP as currency
  2. Event B has revenue of 171 and EUR as currency
  3. Event C has revenue of 171 but no currency specified

Revenue Data in the Dashboard

The revenue that appears in the dashboard is the converted value from the in-app event currency to USD and then to the app settings currency.

If no currency is specified in the event, AppsFlyer defaults to USD. The dashboard displays the event and revenue as follows:

In-Apps Events Unique Users Number of Actions Revenue
A 1 1  £234
1 1  £149.4 - converted from EUR to USD and then to GBP
C 1 1  £132.9 - defaults to USD as no currency is specified. Converted from USD to GBP directly.

Revenue Data in Raw Data Reports

If you set the currency to GBP in app settings but send in-app events with different currencies, the raw data report shows revenue in both app settings currency and in-app event currency.

If you set the currency to GBP in app settings but send in-app events without currency, the raw data report shows revenue in both app settings currency and in USD. 

The in-app events raw data report displays the event and revenue as follows:

Event Event Revenue Event Revenue Currency Event Revenue GBP
A 234 GBP 234
B 171 EUR 149.4 - converted from EUR to USD and then to GBP
C 171 USD 132.9 defaults to USD as no currency is specified. Converted from USD to GBP directly.
Was this article helpful?
0 out of 0 found this helpful