Cost reconciliation

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 27, 2026

Which teams own channel cost reconciliation?

  • Performance & paid
  • Growth marketers

Which LinkTrail features does channel cost reconciliation need?

  • 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 import each network's cost export so spend lines up against the same campaign identifiers — LinkTrail reads the CSV rather than connecting to the ad accounts. Cost data from Meta, Google, TikTok and X is a Growth-plan capability, and the integrations page covers what each network supports.

{
  "deepLinkPath": "/",
  "customData": {"ch": "tiktok", "cmp": "q3-launch", "cr": "video-15s-b"}
}

Why do the numbers disagree in the first place?

SourceWhat it countsWhy it inflates
The networkInstalls it can associate with any ad impression or clickAttributes on impressions, uses long windows, counts organic installs that saw an ad
Your attributionInstalls matched to a click on a tagged linkDoesn't — but it undercounts where deterministic signals are missing
Your store consoleEvery installDoesn'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.

Tagged#Paid acquisition#Reporting#CPI

Cost reconciliation — common questions

Why do ad networks report more installs than you actually got?

Each network counts installs it can associate with any impression or click in its own window, including organic installs that saw an ad. Your attribution counts installs matched to a click on a tagged link, and your store console counts every install without attributing any.

How do you compare CPI fairly across channels?

Use one source — the attributed install — as the denominator for every channel, next to the spend imported from each network's cost export. The absolute number is conservative, but the comparison between channels is fair.

Which installs should count for a spend decision?

Deterministic ones. The match audit log records each install as deterministic, probabilistic or none; probabilistic matching is off by default, and if it's on, report it separately rather than blending it in.

Questions about your setup?

Email support@linktrail.io or see the plans, starting with a free tier.