Why your ad platforms disagree
If you add up the purchases each platform reports, you can get more than you actually sold. That's not a bug. Each platform counts conversions it can connect to its own ads, inside its own attribution window, and a customer who saw your video on TikTok and clicked a Meta ad can be counted by both.
The other problem is structure. Platforms report per ad. When the same creator video runs in five ads across three ad sets and two platforms, its results are scattered across all of them, and nobody adds them back together.
So the question "which video sold?" needs its own measurement, sitting above the platforms.
(opens the full-size image in a new tab)Track the video, not just the ad
The method is simple to describe, and the discipline is in doing it every time.
- Give each video a unique code when it's approved, before it goes into any ad.
- Put the code where the click carries it, in the ad's URL parameters or the ad name, so every click names the video.
- Capture it first-party on your site, so the code survives to checkout instead of living only in the ad platform.
- Match conversions back to the code with one rule and one lookback window across every platform.
- Roll results up by video, not just by ad, so reuse across campaigns adds up instead of splitting.
Attribution models in plain terms
An attribution model is just the rule for who gets credit when a buyer touched more than one ad.
| Model | Who gets the credit | Good for |
|---|---|---|
| Last click | The last ad clicked before the purchase | Deciding what to scale; the easiest to act on |
| First click | The first ad clicked in the journey | Seeing which videos start journeys |
| Linear | Every clicked ad, equally | A balanced view of a long journey |
| Time decay | More credit to clicks closer to the sale | Long consideration cycles |
| Position based | Most credit to the first and last click | Valuing both the opener and the closer |
Google's own definition of last click is that it gives all credit for the conversion to the last-clicked ad (Google Ads: About attribution models). The same page explains that Google's default for most conversion actions is a data-driven model instead, which is one reason Google's numbers won't match a last-click report.
Metrics that explain why a video wins
Sales tell you which video won. These tell you why, and they work even before you have many purchases.
| Metric | How it's calculated | What it tells you |
|---|---|---|
| Hook rate | 3-second plays / impressions on Meta; 2-second views / impressions on TikTok | Did the opening stop the scroll? |
| Hold rate | ThruPlays / 3-second plays on Meta; 6-second / 2-second views on TikTok | Did it keep people once they stopped? |
| ROAS | Attributed revenue / ad spend | Did the attention turn into money? |
These ratios are common conventions rather than platform-defined metrics, and they are how Ad Army calculates them. The inputs come from each platform: TikTok defines a 2-second video view as a play that runs at least two seconds in an impression session, and a 6-second view similarly, with short videos counting when played in full (TikTok: Video play metrics). Because the platforms measure differently, compare hook rates within a platform rather than across them.
A high hook rate with a weak hold rate usually means the opening works and the middle loses people. A weak hook rate means the best part of the video is never seen. That's where a new hook variation pays off.
The limits of last click
Last click is a decision tool, not the whole truth.
- It undercounts videos that start journeys and don't finish them. Compare against first click before you cut a video that opens a lot of journeys.
- It only sees clicks. People who watched and later typed your URL show as unattributed.
- It doesn't prove the ad caused the sale. For that you need holdout or incrementality tests.
Use it to rank videos against each other under the same rule, which is the question you're actually asking.
(opens the full-size image in a new tab)How Ad Army tracks it
Every video you approve at Ad Army arrives with its own tracking code. First-party tracking on your site credits each sale, sign-up or install to the exact video and its creator across Meta, TikTok, YouTube and Google Ads, LinkedIn and AppLovin, with app installs matched through AppsFlyer. The default is last-click attribution with a 28 day lookback you can change, and you can switch to first click, linear, time decay or position based in Reports without re-tracking anything. It runs alongside your Meta Pixel, and with the Conversions API on, both send one shared event id so Meta can deduplicate the two. Each video shows its hook rate, hold rate and ROAS next to its sales.