Set up ROI360 cost API to measure cost data

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:

  1. In AppsFlyer, from the side menu, select Collaborate Active Integrations, and select the partner.
  2. Click Manage integration.
  3. Open the integrated partner Cost tab.
  4. Turn on Get Cost Data. The requirements for connecting to the partner are displayed.
  5. Configure and authenticate the cost integration to the partner. The authentication method depends on the media source. See Cost integration methods below.
  6. If the partner’s cost configuration has Site ID mapping, select the required site ID configuration from the dropdown. See Site ID mapping below.
  7. 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:

  1. In AppsFlyer, from the side menu, open Settings > ROI360 > Cost Settings.
  2. Select the media source to retrieve cost data, then click Next.
  3. Configure and authenticate the cost integration to the media source. The authentication method depends on the media source. See Cost integration methods below.
  4. Enter (or customize) the cost integration name.
  5. Select the apps to include in this cost integration.
  6. 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:

  1. In the integrated partner Cost tab, go to Site ID mapping, and select a configuration from the dropdown menu.
  2. 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:

  1. In AppsFlyer, from the side menu, go to Collaborate > Active integrations.
  2. Select the integrated partner (for example, Meta Ads).
  3. Click Manage integration.
  4. Open the Cost tab. The list of connected accounts is displayed.
  5. In the Actions column, hover over the account and click Delete connection.
  6. 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:

  1. In AppsFlyer, from the side menu, select SettingsROI360 > Cost settings and select the media source from which you want to delete the integration.
  2. In the integrations list per media source, click delete.jpeg on the integration record.
  3. 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:

  1. Go to Active integrations and select the media source.
  2. Go to the Cost tab.
  3. Turn off Get Cost Data.
  4. 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:

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:

  1. In AppsFlyer, from the side menu, go to Collaborate > Active integrations.
  2. Select the media source.
  3. 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.
  4. 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:

  1. In AppsFlyer, from the side menu, select SettingsROI360 > Cost settings.
  2. Select the relevant media source.
  3. 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.
  4. 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.
  5. 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 pinterest_int
Pinsight pinsight_int
Point2Web point2web_int
Reddit 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
  • The advertiser connects to cost integration using the advertiser credentials
  • The agency connects cost integration using agency credentials
  • Attribution Assigned to the agency account

Result

  • ROI360 pulls cost data from the agency connection.
  • The advertiser connection shows as NO-DATA.