How cost aggregation works
Installs and revenue live in your MMP; spend lives in each ad network. Cost aggregation brings them together:
- Collect spend from each network, usually through an API connection.
- Normalize currencies, time zones and naming.
- Match spend to the same campaign, ad set, creative or keyword IDs the MMP uses for attribution.
- Calculate CPI, cost per event and ROAS on one consistent basis.
A worked example: in one week Meta reports $12,000 of spend and Google reports $8,000. Your MMP attributes 6,000 installs to Meta and 2,500 to Google, with $9,600 and $10,000 of D7 revenue. CPI is $2.00 on Meta and $3.20 on Google, but D7 ROAS is 0.8x on Meta and 1.25x on Google. Without spend and revenue in the same view, the cheaper channel looks better.
Why it matters
Each ad network reports its own conversions using its own attribution rules, so their numbers overlap and rarely add up to your real total. An MMP deduplicates installs and assigns each one to a single source. Cost aggregation puts spend against those deduplicated numbers, which is the only way to compare channels fairly.
It also removes spreadsheet work. Without it, someone downloads spend from every network each week, matches campaign names by hand, and recalculates ROAS. Naming drift and late spend corrections make that error-prone.
Granularity
The deeper the spend goes, the more decisions it supports:
- Network and campaign: budget allocation between channels.
- Ad set: audience and targeting decisions.
- Creative: which assets to scale or retire.
- Keyword: search bidding on Apple Ads and Google.
Cost aggregation in Linkrunner
Linkrunner syncs spend automatically from Meta (every 30 minutes, across multiple ad accounts), Google Ads and Apple Ads, with LinkedIn spend available as well. ROAS and cost per event are reported down to ad set, creative and keyword, and you can add custom formula columns described in plain English. The Reporting API returns spend next to installs and revenue. See ROAS measurement.