This article is about ad revenue attribution, also known as user-level ad revenue or ad revenue ROI. To learn about ad monetization analytics, see the Ad Monetization Analytics FAQ.
Ad revenue attribution links ad revenue to the campaign through which the user was converted. This gives you a complete view of your advertising ROI, with the campaign cost, in-app revenue, and ad revenue all in one row.
Ad revenue attribution is usually based on user-level or impression-level ad revenue data reported by your mediation platform. Singular supports a variety of solutions for getting ad revenue attribution data.
Tip: What's the difference between ad revenue attribution and ad mon analytics?
||Ad Revenue Attribution
||Ad Monetization Analytics (See FAQ)
|Use Case||Adding ad revenue to your network and MMP reports to measure your complete marketing ROI||Analyzing the result of your ad monetization efforts, with metrics such as filled ad requests, bid requests/responses, and aggregated ad revenue|
|Where to Find It||
|Setup||See How do I set up ad revenue attribution? below||See How do I set up ad monetization analytics?|
Check this checkbox to see the discrepancy (if any) between your total attributed ad revenue and the aggregate ad revenue in your Ad Monetization Analytics reporting.
If the aggregate ad revenue (for your selected dimension breakdown) is larger than the attributed ad revenue, Singular adds a row for the difference in revenue, giving the source as "Unattributed Ad Revenue."
- Unattributed Ad Revenue is calculated every time you run the report.
- The available breakdowns for this calculation are App, OS, Platform, and Country. If you choose any other dimensions, such as Publisher, Unattributed Ad Revenue will be N/A.
- To see this row, you have to run a report that includes Ad Revenue with cohort period = actual. Aggregated ad revenue has no cohorts, so we can't compare cohort data to it.
There are several possible explanations for discrepancies between attributed ad revenue and aggregated ad revenue:
Data is not yet available: Ad revenue data is only available for two days ago (you can't see data for yesterday).
Issues with the Singular SDK integration: The SDK is Singular's source for user-level data, so problems with the SDK will cause issues in attributing ad revenue.
To check if this is the case, see if the DAU metric (Daily Active Users) is also lower than expected. If so, retest your SDK integration. For assistance, contact the Singular team at firstname.lastname@example.org.
An app was only recently migrated from a different MMP to Singular: When you migrate an app, it takes time before Singular has data on all active users. Without user-level data, we cannot attribute revenue to those users.
To check if this is the case, look at when you added the Singular SDK to your app. You can also look at the DAU (daily active users) metric - is it also low? Is it increasing at the same daily rate as the ad revenue? If so, you just need to wait for a few days while Singular gets the necessary data.
Issues with ad monetization analytics sources: If any of your ad monetization data connectors are not pulling data properly, it could cause discrepancies with your ad revenue attribution. Go to the Data Connectors page and double-check that all your ad monetization data connectors are functioning properly (no error messages).
Ad revenue attribution, also known as user-level ad revenue, ties ad revenue (usually on the user level or impression level) to the ad campaign through which the user was converted.
Ad revenue attribution reveals your complete advertising ROI - with the campaign cost, in-app revenue, and ad revenue all in one row.
Singular supports several ways to get your ad revenue attribution data:
From Mediation Platforms (IronSource, AppLovin MAX, MoPub, AdMob):
Singular is integrated with IronSource, AppLovin, MoPub, and AdMob for ad revenue attribution.
SDK integration: You can get ad revenue attribution data from your mediation platform by adding a code snippet to your Singular SDK implementation. This method also allows you to get ad revenue data for SKAdNetwork campaigns. See:
API integration: You can integrate with two of the mediation platforms (AppLovin MAX and IronSource) through their APIs, without updating your Singular SDK integration. This method is not compatible with SKAdNetwork. See:
Singular has a unique integration supported for Soomla, which is an ad revenue attribution platform. If you're working with Soomla and would like this setup, or are interested in hearing more, contact your Customer Success Manager.
Through your own SDK events:
Singular can help you calculate the average revenue per event for the user events you set up when you integrated the Singular SDK. If you don’t have any monetization events set up, you can use “session” to calculate what is the value of each user based on their sessions. To set it up:
- First, make sure the user-level revenue feature is open to you. You can contact us to enable the feature.
- Decide which event you would like to use to calculate the ad revenue per user.
- In the Data Connectors page, add all the relevant monetization connectors (see Setting Up Ad Monetization Reporting for more information).
- After Singular pulls all the data successfully, view the data in your reports by selecting the metrics Ad Revenue and Ad ROI.
To get ad revenue attribution information in SKAdNetwork reports:
- Add ad revenue attribution support to your Singular SDK integration, as described above.
- Configure a SKAN conversion model for your app that is an admon revenue model or combined revenue model (the combined revenue model tracks both ad revenue and in-app purchase revenue).
- Once users update the app to the new version, you will start seeing ad revenue information in your SKAdNetwork reports in Estimated Ad Revenue and Estimated Combined Revenue.
If you've set up ad revenue attribution, you can see the attributed ad revenue in your regular Singular reports:
- In the web app, go to Analytics > Reports or Analytics > Pivot. Run a report with the Ad Revenue metric selected (it's a cohort metric, so you also need to select a cohort period).
- If you're using the Singular API, query the Create Async Report endpoint and include the ad_revenue metric.
Attributed ad revenue does not appear in the ad monetization analytics report (Analytics > Ad Monetization in the web app or Ad Monetization endpoint in the API). That report only shows aggregated ad revenue data.
Note: If you've also set up an admon revenue or combined revenue conversion model for SKAdNetwork, you'll see ad revenue in SKAdNetwork reports under the metrics Estimated Ad Revenue and Estimated Combined Revenue.
If you've set up more than one method of getting ad revenue attribution data, you may want to know where different pieces of information were pulled from.
To find out, hover over the specific cell in the Ad Revenue column in the report. A tag will appear summing up the source:
- "Rev Source": The ad revenue data in this row was pulled from an integration. Click on the tag to see the source.
"Mixed": Ad revenue was pulled from multiple sources for this row. Click on the tag to see the revenue breakdown by source.
- "Calculation": The data is interpolated based on your SDK events (see details).
To verify your setup, regardless of the platform or method you are using:
- Start by going to Settings > Data Connectors to check the status of the data connector.
- Download a raw data file. The raw data file includes the exact data (the device IDs) pulled from the data connector for yesterday. See the Data Connectors FAQ for more information.
You can compare the ad revenue attribution data with the aggregated data in the ad monetization analytics report. However, keep in mind that there could be several reasons for discrepancies. You can see discrepancies right in the Reports page if you check the Unattributed Ad Revenue checkbox.
To compare ad revenue data:
- Start by running a campaign performance report in the Reports page. Select the metric Ad Revenue with Cohort Period = Actual.
- Then run a report in the Ad Monetization page, making sure to select the same time frame and same filters.