Channel cost reconciliation: one CPI across networks that each count their own way
Meta says 900, TikTok says 1,100, the dashboard says 1,400 — and nobody can explain the gap.
Updated Sep 3, 2026
Who runs this
- Performance & paid
- Growth marketers
What it uses
- Ad-network cost data (Meta, Google, TikTok, X)
- Per-link channel tagging
- Post-install events
- Match audit log (deterministic vs probabilistic)
Every ad network reports its own installs, using its own attribution window and its own definition of a click. Add them up and you get more installs than you had. Divide spend by each network's own number and every channel looks better than it is. The reconciliation spreadsheet that fixes this is usually a week old by the time anyone reads it.
What problem does this solve?
You want cost per install and cost per activated user, by channel, from one attribution source, next to the spend that produced them. Not four dashboards that disagree and a manual join.
How do you set the links up?
Tag every paid link with the channel and the campaign, consistently, so the attribution side knows where a click came from independently of what the network claims. Then connect the ad accounts so spend comes in against the same campaign identifiers. Cost data from Meta, Google, TikTok and X is a Growth-plan capability.
{
"deepLinkPath": "/",
"customData": {"ch": "tiktok", "cmp": "q3-launch", "cr": "video-15s-b"}
}Why do the numbers disagree in the first place?
| Source | What it counts | Why it inflates |
|---|---|---|
| The network | Installs it can associate with any ad impression or click | Attributes on impressions, uses long windows, counts organic installs that saw an ad |
| Your attribution | Installs matched to a click on a tagged link | Doesn't — but it undercounts where deterministic signals are missing |
| Your store console | Every install | Doesn't attribute at all; it's the ceiling |
None of these is lying. They answer different questions. The reconciled view uses one of them — the attributed install — as the denominator for every channel, so the comparison is fair even if the absolute number is conservative.
Which installs should count?
The match audit log records each install as deterministic, probabilistic or none. For a spend decision, deterministic installs are the ones to trust. Probabilistic matching is off by default, and if you switch it on the audit log lets you report the two separately rather than blending them into one number that is partly guesswork.
Which metric should you watch?
Cost per activated user by channel, where activation is the post-install event that matters to you, not the install. Two channels with the same CPI routinely have activation costs that differ by a factor of three, and that is the number the budget should follow.
Related use cases
iOS measurement
iOS after ATT: campaign-level truth when user-level attribution isn't on offer
Deterministic iOS attribution largely went away with App Tracking Transparency. SKAdNetwork and AdAttributionKit are what's left, and they need handling.
Affiliate payouts
Affiliate payouts: paying partners per install without paying for manufactured ones
Partners paid per install have a direct incentive to manufacture installs. The evidence for a deduction has to be specific.
Every one of these depends on the same two things: link context surviving an install, and an honest answer to which click produced it. The scoring model is published in full on our methodology page, and you can check any domain's association files with our free link validator.