How Affiliate Teams Track Ad Spend Across Campaigns: 10, 50 or 100+

To track ad spend across campaigns you need three things to agree: what the ad platform says you spent, what was actually charged to your cards and what the tracker says you earned. With ten campaigns a buyer can hold this in their head. With fifty it lives in a spreadsheet, and with a hundred or more it needs a fixed process and someone who owns it.

This article describes that process: which sources to use, how to build a register of cards and accounts, what changes at 10, 50 and 100+ campaigns, how to reconcile every week and how to count the full cost of a campaign including payment fees. The examples use our real rates.

Contents

Three Sources and the Question Each Answers

  • Ad platform reports answer “how much did the campaign spend and on what”. This is the spend by day, campaign and ad.
  • Card transaction history answers “how much money actually left”. In the Spending Market dashboard you see the history of transactions for every card.
  • The tracker answers “how much did the campaign earn”. Conversions, payouts and revenue by offer and source.

None of them is complete on its own. Platform reports do not show declined charges or fees. Card history does not show which campaign inside an account caused a charge. The tracker knows nothing about payments. Tracking works when a register links all three.

The Register: One Table That Links Everything

The register is a table with one row per card. It is the key that lets you match a card charge to an ad account, an ad account to a campaign or offer and a campaign to a buyer. Minimum columns:

ColumnExampleWhy it is needed
Card, last 4 digits4417Find the card in transaction history
Platform and ad account IDMeta, act_…Match charges to platform reports
Offer or clientOffer A, DEGroup spend for profit
BuyerBuyer 2Personal budgets and results
Opened / closed03.10 / —Know which cards still cost maintenance
StatusActive, restricted, closedClose cards of dead accounts

The register only works if one card pays for one ad account. When a card is shared between accounts, a charge can no longer be assigned without guesswork. The structure itself is described in One Card per Campaign: How to Structure Payments for Ad Accounts.

How to Track Ad Spend Across Campaigns at 10, 50 and 100+

Around 10 Campaigns

One shared sheet is enough. Each buyer adds a row when they open an account and issue a card. Once a week compare platform spend with card charges for each account. A buyer can do this in half an hour.

Around 50 Campaigns

Introduce a naming rule: the same code in the ad account name, the campaign name and the register, for example offer–GEO–buyer. Reconcile twice a week. Give each buyer a monthly budget in the register and compare it with the card charges for their accounts. Close cards of retired accounts the same day: closing takes one click.

100+ Campaigns

Tracking becomes a role. One person, often the team lead or a finance manager, owns the register, the weekly reconciliation and the decision to close cards. At this scale manual card work becomes the bottleneck. VIP clients get an API for bulk issuance, balance and status checks and card management, which lets you update the register from code: VIP cards with API access. How many cards such a team needs is covered in How Many Virtual Cards Does Your Agency Need? A Counting Method.

Weekly Reconciliation in Five Steps

  1. Export spend by ad account from each platform for the week.
  2. Take the card transaction history for the same dates from the dashboard.
  3. Match them through the register: account ID → card digits.
  4. Explain each gap. Common reasons: the platform charges at a payment threshold, so the charge comes days after the spend; the account currency differs from the EUR card; a charge was declined and retried.
  5. Close cards of accounts that no longer spend and update statuses.

A gap that you cannot explain is a reason to look closer at the account, not to adjust the numbers. Every transaction on our side is monitored, but your register is what tells you whether a charge was expected.

The Full Cost of a Campaign, Not Just Platform Spend

Platform reports show spend before payment costs. The real cost includes the top-up commission and card maintenance. Our rates: 3.5% on Base, 2.5% on Mid and 1.7% on VIP for top-ups; €1.5 a month per active card on Base and Mid and €1.0 on VIP. Transactions cost 0%.

Example on Mid. One account ran Offer A and spent €6,000 in a month; the tracker shows €7,000 revenue.

  • profit by platform spend: €7,000 − €6,000 = €1,000, ROI 16.7%;
  • commission share: 2.5% × €6,000 = €150;
  • card maintenance: €1.5;
  • full cost: €6,151.5, profit €848.5, ROI 13.8%.

On Base the same campaign carries €210 of commission and its ROI drops to 12.7%. For offers with thin margins this difference decides whether to scale or stop.

Common Tracking Mistakes

  • Several accounts on one card, so charges cannot be split.
  • No naming rule, so platform reports and the tracker cannot be joined.
  • ROI counted on platform spend without payment costs.
  • Cards of dead accounts left open and paid for.
  • Reconciliation done once a month, when gaps are too old to explain.

Budget control between reconciliations is a separate topic: see How to Set Spending Limits on Virtual Cards and Protect Your Ad Budget. For a team running several platforms from one dashboard, read How to Manage Multiple Ad Accounts Across Platforms with One Payment System.

Summary

Affiliate teams track ad spend across campaigns by linking platform reports, card transaction history and tracker revenue through one register, with one card per ad account. At 10 campaigns this is a weekly check, at 50 a naming rule and two checks a week, at 100+ a dedicated role and API access. Count payment costs into ROI, and close cards the day an account stops spending.

Get Started