Overview
Cost data can be enabled through a direct integration between Branch and the ad partner. This integration is established via an API connection that is uniquely authenticated for each partner. Once connected, Branch pulls cost data from the partner automatically on a schedule, no file preparation or manual imports required.
This guide covers connecting a supported ad partner, the list of partners with direct API integrations, data scheduling timelines, and troubleshooting. For an overview of all three import methods and their prerequisites, visit our guide on importing ad partner cost data.
Note: this guide is for new Branch
In the legacy Branch experience, cost data ingestion through API connection, file upload, or email ingestion was called ROI Hub. In the new Branch experience, ROI Hub has been replaced by the Cost Import tab. Please note that this guide is about cost data in new Branch. For information on ROI Hub in legacy Branch, visit our legacy guide.
Connect an ad partner
Once you connect a supported ad partner (via OAuth or account credentials, as described in the Ad Partner Integration Guide) Branch begins to ingest cost data from that partner.
You can confirm cost data is flowing via API on the partner's Status tab, where each connected ad account row shows a Cost data entry along with the time of the last pull and last successful pull.
Supported ad partners
Branch currently supports the following ad partners for sharing cost data via API connection:
| Ad partner | 3p name |
|---|---|
| Roku | a_ott_roku_san |
a_pinterest | |
| Apple Ads | a_apple |
| Snap | a_snap |
a_reddit | |
| TikTok | a_tiktok |
| Criteo | a_criteo |
a_twitter | |
| Moloco | a_moloco |
| RTBHouse | a_rtb_house_sa |
| Unity Ads | a_unity |
| Meta | a_facebook |
| Google Ads | a_google_adwords |
| Jampp | a_jampp |
| Remerge | a_remerge |
| InMobi DSP | a_inmobi_dsp |
| Liftoff | a_liftoff |
| Impact | a_impact_radius |
| Aura | a_aura |
| Dataseat | a_dataseat |
| AppLovin | a_applovin |
| Amazon Ads | a_amazon_san |
Data scheduling
By default, Branch APIs will use the below general timelines for how often data is requested:
| Days passed | Hours passed | Number of requests for a single day of data |
|---|---|---|
| 0, 1 | 0-48 | 4 times per day |
| 2, 3, 4, 5 | 48-144 | 1 time per day |
| 6-20 | 144-504 | 1 time every 5 days |
| 21-29 | 504-720 | 0 |
| 30 | 720 | 1 time |
These schedules may vary by ad partner.
Timezone for cost
- If the partner timezone can be edited, then you can change it on their side. However, this might mean that Branch cost numbers don't exactly match your invoices or partner dashboard.
- If the partner timezone can't be edited, then you can change your Branch timezone. However, this can cause inconsistencies in Meta numbers, so this is not recommended.
Troubleshoot connection failures
If the partner's Status tab indicates that cost data isn't being received, it's likely caused by one or more of the following:
- Your partner's authentication token expired. In this case, you must re-authenticate the ad partner. To do this, select Partner settings on that ad partner's page.
- You have just authenticated or re-authenticated the ad partner. In this case, you must wait 24 hours for data to start flowing.
- You have authenticated ad accounts that aren't running any valid campaigns with cost.
