At a glance: Get aggregate marketing cost data (including cost-related LTV performance metrics) using Cost API at the app or media source account level.
Overview
ROI360 provides cost measurement at both the app and account levels, allowing stakeholders to analyze spend granularity per individual application or across an entire media source account.
Cost integrations are managed in two different locations, depending on the media source:
- Account-level integrations are managed in Cost Settings. These integrations are configured at the ad account level. Refer to the list of supported ad networks.
- App-level integrations are managed in the Cost tab. These integrations are configured separately for each app. If a media source isn’t available in Cost Settings, configure its cost integration in the Cost tab at the app level.
Note
Access to Cost Settings is controlled by role permissions. If you can’t access Cost Settings, ask your administrator to update your role permissions on the User Management page. The relevant capability is Cost Connections.
Enabling Cost API
There are two ways to enable cost integration: at the app or account levels.
Enable the cost integration on the app level (cost tab)
To set up a dedicated cost connection with a media source for an individual app, follow these steps:
- In AppsFlyer, from the side menu, select Collaborate > Active Integrations, and select the partner.
- Click Manage integration.
- Open the integrated partner Cost tab.
- Turn on Get Cost Data. The requirements for connecting to the partner are displayed.
- Configure and authenticate the cost integration to the partner. The authentication method depends on the media source. See Cost integration methods below.
- If the partner’s cost configuration has Site ID mapping, select the required site ID configuration from the dropdown. See Site ID mapping below.
- Click Save Cost.
- Cost data will start showing on your dashboards within 5-6 hours.
- AppsFlyer collects data from the partner 6 times a day, on average, once every four hours.
- The media source account in the Cost settings section is updated according to what you did at the app level via the Cost tab.
Enable the cost integration on the account level (cost settings)
You need to connect each media source account once to enable cost for multiple or all apps in your AppsFlyer account.
To enable the cost integration on the account level, follow these steps:
- In AppsFlyer, from the side menu, open Settings > ROI360 > Cost Settings.
- Select the media source to retrieve cost data, then click Next.
- Configure and authenticate the cost integration to the media source. The authentication method depends on the media source. See Cost integration methods below.
- Enter (or customize) the cost integration name.
- Select the apps to include in this cost integration.
- Click Save integration.
- Cost data will start showing on your dashboards within 5-6 hours.
- AppsFlyer collects data from the media source 6 times a day, on average, once every four hours.
- Updates made at the account level in Cost Settings are automatically applied to the Active Integration’s Cost tab for relevant apps and media sources.
Note
If an advertiser uses an agency to run their campaigns, the agency, and not the advertiser, should integrate with the relevant partners. Otherwise, cost data is duplicated if both the advertiser and agency integrate with a media source using the same credentials for the same app.
Cost integration methods
The method for enabling cost integration depends on the media source’s integration mode with AppsFlyer. It can be one of the following:
- Login: Click Log in to <Media Source> to open the media source login window. Then follow the media source’s login prompts.
- Credentials: Enter media source-specific parameter values, for example, API Key.
- None: No connection configuration is required other than turning on Get Cost Data as instructed above.
To learn what method a particular media source uses, you can see the Integration method column in the media source cost integration table.
Site ID mapping
Some media source integrations allow you to select how the site ID field populates when reporting cost data. This ensures that the AppsFlyer attribution link site-id macros match the value the media source expects.
- By default, site ID mapping is aligned with the AppsFlyer macros in the attribution link.
- If your attribution link has macros different from the site ID mapping options, site ID data will not populate correctly.
To set Site ID mapping on the app level, follow these steps:
- In the integrated partner Cost tab, go to Site ID mapping, and select a configuration from the dropdown menu.
- Click Save Cost. The change takes effect from the next day UTC.
Deleting cost integrations
You can delete cost integrations at either the app or the account level. Once deleted, AppsFlyer can no longer pull cost data from the account. Deleting an integration does not impact historical data.
Delete the cost integration on the app level (Cost tab)
You can delete the integration at any time. Once deleted, AppsFlyer can no longer retrieve cost data from the associated account. This action will not affect any historical cost data already collected.
To delete the cost integration on the app level, follow these steps:
- In AppsFlyer, from the side menu, go to Collaborate > Active integrations.
- Select the integrated partner (for example, Meta Ads).
- Click Manage integration.
- Open the Cost tab. The list of connected accounts is displayed.
- In the Actions column, hover over the account and click Delete connection.
- In response to the confirmation prompt, click Yes, Delete.
The cost integration previously configured at the app level has been removed from both the app and account levels. As a result, cost data collection will be stopped immediately. This change does not affect any historical cost data already collected.
Delete the cost integration on the account level (Cost settings)
To delete the cost integration on the account level, follow these steps:
- In AppsFlyer, from the side menu, select Settings > ROI360 > Cost settings and select the media source from which you want to delete the integration.
- In the integrations list per media source, click
on the integration record.
- In response to the confirmation prompt, click Yes, Delete.
The cost integration previously configured on the account level has been removed from both the app and account levels. As a result, cost data collection will be stopped immediately. This change does not affect any historical cost data already collected.
Disabling Cost API
Disabling the Cost API is available only at the app level.
To turn off Cost API, follow these steps:
- Go to Active integrations and select the media source.
- Go to the Cost tab.
- Turn off Get Cost Data.
- Click Save Cost.
Note
If an advertiser stops working with an agency and turns off the agency permissions at the app level, cost data is still pulled if the agency has cost configured for the app. The advertiser must ask the agency to turn off their cost integration to stop this data from being pulled.
Cost API status
The operational status of cost integrations is available as follows:
- Cost (and ad revenue) integration status dashboard: Centralized list of media sources for which cost integration is enabled for one or more apps housed in your account.
- Integrated partners: Status available in the context of an individual app.
- Cost settings: The Cost Settings page allows you to view the cost API status at both the account and app levels. For more information, see View the aggregate partner cost integration status below.
View the media source cost integration status (Cost tab)
The Cost tab in the media source Active integration page (relevant for media sources that support getting cost data via API) displays:
- The status of your cost integration of the selected app.
- Last time, AppsFlyer successfully pulled matching cost data for the app.
To view the individual media source cost integration status for a selected app, follow these steps:
- In AppsFlyer, from the side menu, go to Collaborate > Active integrations.
- Select the media source.
- In the media source Active integration page, from the App list above the tab bar, select the app whose cost status you want to view.
- Click the Cost tab. The status and last sync time are displayed.
View the media source aggregate cost integration status (Cost settings)
To view the media source aggregate cost integration status, follow these steps:
- In AppsFlyer, from the side menu, select Settings > ROI360 > Cost settings.
- Select the relevant media source.
- On the media source page, you can see the media source account status in the Status column. If all apps associated with the account have the same status, that status is displayed. If app statuses differ, the status shows as Mixed status.
- To see a specific app's status associated with a media source account, click the media source account row to display the Cost integration page.
- View the app status in the list of the media source-associated apps.
Status table
| Status | Remarks/action required |
|---|---|
| Active | Integration is enabled and successfully connected to the media source. |
| API is not returning matching cost data | This may happen because: • The campaign ID has not been provided, so the cost can't be matched to campaigns. • You integrated a different partner ad account when logging into the partner via AppsFlyer (for example, a different Meta ads account). Check you connected the right partner ad account. • One of the credential fields in the partner cost integration is incorrect. For example, the bundle ID. Review and correct the integration credentials. • Your campaigns are paused, and there is no data. |
| Partner API is not responding | • The integrated partner's server is not responding to AppsFlyer. • Wait 6 hours. If the status message persists, contact AppsFlyer support. |
| Invalid credentials | • AppsFlyer can't get data via the API because the credentials are not valid. • Reconnect using the correct credentials. |
| Reach out to your ad network account manager to get access to their reporting API | Work with the partner account manager to enable the cost integration in the partner's system. |
| Partner API is not returning data. Review integration. | This happens because: • Your campaigns are paused, and there is no data. |
| Your account is not enabled on the partner system to get cost | Contact the partner. |
| Mixed status | Status is shown in Cost Settings > Media source page only if associated apps have different statuses. From the Media source page, open the Integration page to view the status of the individual app. This status isn’t displayed on the status dashboard |
Account-level cost configuration supporting media sources
ROI360 customers can create and edit cost integrations at the account level in Cost Settings and in the Cost tab. The following media sources support account-level cost configuration:
Supporting media sources
| Display name | Integration ID |
|---|---|
| AdAction3 | adaction5_int |
| Adbloom | adbloom_int |
| AdColony | adcolony_int |
| AdGate Media | adgatemedia_int |
| adjoe GmbH | adjoe_int |
| Adikteev Retargeting | trademob_int |
| Apple Search Ads | iossearchads_int |
| AppLift | applift_int |
| Blind Ferret Agency | blindferret_int |
| Bluestacks | bluestacks_int |
| ByteDance | bytedance_int |
| Dataseat | dataseat_int |
| Digital Turbine Legacy | appia_int |
| Digital Turbine On Device | digitalturbine_int |
| Domob | domobc_int |
| DV360 | dv360_int |
| GlobalWide Media | globalwide_int |
| Google Ads | googleadwords_int |
| InMobi | inmobi_int |
| InMobi DSP | inmobidsp_int |
| Liftoff Influence | jetfuelit_int |
| Mediaforce | mediaforce_int |
| Meta Ads | facebook |
| Mintegral | mintegral_int |
| Mobupps | mobupps_int |
| Moloco | moloco_int |
| MoPub Acquire | crossinstall_int |
| Opera Mobile | operaevent_int |
| Persona.ly RTB | personalyrtb_int |
pinterest_int |
|
| Pinsight | pinsight_int |
| Point2Web | point2web_int |
reddit_int |
|
| Smadex | smadex_int |
| Snapchat | snapchat_int |
| Tapjoy | tapjoy_int |
| Taptica | taptica_int |
| TUNE | hasoffers_int |
| Unity Ads | unityads_int |
| X (Twitter) | twitter |
Note
Additional media sources are available through InCost ad networks. To get the full list of supported InCost ad networks, contact your CSM.
Traits and Limitations
| Trait | Remarks |
|---|---|
| Agencies | Agencies can't use Cost Settings to perform cost integrations for multiple apps at the same time. |
| Future apps automatically inherit the cost settings feature in Account-level Cost settings | Currently not supported |
| Cost data behavior when the advertiser and agency connect to the same ad network |
If both an advertiser and an agency connect to cost integration for the same ad network account (for example, Google Ads), cost data is pulled from the account that receives attribution.
Example scenario
Result
|