Agency ad accounts for media buying: balance and fees
How teams work through agency ad accounts for Meta and TikTok: top-ups, fee rates by date, matching the agency balance to spend, bans and replacements.
CRMGuidesFinance9 min read

How to manage offer caps per GEO and per buyer: what to count (installs, registrations, FTD, budget), which period, and what to do when a cap fills.

A cap is the most an advertiser will pay for on an offer: so many installs, registrations, FTD or so much budget, for one GEO and one period. To manage caps, count the event the advertiser pays for, in the advertiser’s period and time zone, split the GEO cap between buyers on purpose, and decide before launch what happens at the limit: pause, redirect or move the buyer to another GEO. Traffic over a cap is often not paid, so the work is to see a cap filling before it is full.
Advertisers set a cap on whichever event they pay for. The common ones:
Count the same event the advertiser counts. If the cap is 100 FTD and you track registrations, your number is a forecast, not the cap. A registration-to-FTD rate turns one into the other, but the rate moves with the traffic source and the day, so treat that as an estimate and check against the advertiser’s own statistics.
Be careful with the delay. A deposit can arrive hours or days after the click, so FTD counted today may belong to yesterday’s traffic. Your cap counter will always lag behind what you have already sent, and that gap is exactly where overshoot happens.
Two more things are worth writing down per offer: whether the cap is per GEO or for the whole offer, and whether it counts all your sub-accounts together. Advertisers differ, and a wrong guess here costs a week of unpaid traffic.
There are two levels, and mixing them up is the usual mistake.
| Level | Set by | Question it answers | Who acts |
|---|---|---|---|
| GEO cap | The advertiser | How much can the team send in this GEO | Team lead |
| Buyer cap | The team | How much of it may one buyer take | The buyer, within their share |
| Live counter | The CRM or the tracker | How much is used right now | Everyone, through alerts |
The advertiser’s cap is the ceiling. The buyer cap is your own allocation inside it. Without a buyer level, the first buyer to launch takes the whole GEO and the others find it full.
Example, with invented figures: an advertiser gives the team a cap of 120 FTD a day in one GEO, and three buyers run it. A first split is 45, 35 and 30, with 10 kept in reserve. After a week you move the shares to follow the FTD each buyer actually produced, and the reserve goes to whoever has a good day. The sum of buyer caps may even go slightly over the GEO cap if you know some buyers will not fill theirs, but then you need the live counter to catch it.
Other ways to split a cap, each with a cost:
Write the split where everyone can see it. A cap kept in a chat is a cap nobody respects.
A cap has a period: day, week, month, or the whole life of the offer. The period decides when the counter resets, and the time zone decides at what minute. Affise’s help center shows how one platform does it: a day resets at midnight in the cap’s time zone, a week resets on Sunday at 00:00, a month resets on the first day, and a lifetime cap never resets. Hour caps exist on some plans. Other advertisers and networks may differ, so read their terms, not only ours.
Practical rules:
Decide this in advance, per offer, because the fastest decision is the one already made. The options:
A good alert chain has three steps: a warning when a cap is almost full, a task when it is reached, and a log of what was done. The warning matters most, because by the time a cap is full the money is already spent.
Checklist at the moment of a full cap:
In DarkCore CRM a cap sits on the offer card, next to the GEOs, landings and payouts. It can count installs, registrations, FTD, any event the offer tracks, or budget, daily, weekly, monthly or without a period, and the card shows how much of each cap is used. A buyer can get a cap or payout of their own from a set date, and a GEO can be open to all buyers or a few.
The CRM checks caps every 15 minutes. Before a cap is full the offer shows “Cap almost full”, and once it is reached the buyers of that GEO get a task. The CRM does not stop the GEO by itself and does not change campaigns in Keitaro: the stop is a decision the buyer takes from the task. Offers with a cap almost full, a GEO with no buyer or zero traffic also appear in an attention view. A new payout starts from its own date, so past days keep the rate that was in force. Trackers are Keitaro and DarkCore PWA, and Keitaro deposits count as FTD for caps and reports. Pricing is not on the site, and a demo is booked through Telegram.
A cap is a limit on what an advertiser will accept and pay for on an offer: a number of installs, registrations, FTD or a budget, for a GEO and a period such as a day or a month. Conversions above it are usually not paid, so teams track it closely.
In most cases the buyer caps should add up to the GEO cap, or to a little under it with a reserve. If you let buyer caps add up to more, you need a live counter and a clear rule on who stops first when the GEO fills.
Often enough that you can still act. With a cap that fills within a day, an hourly check is the minimum, and a warning before the limit matters more than the exact figure. For a monthly cap, a daily pace check is enough. Whatever the rhythm, compare with the advertiser’s own numbers at least once a day.
How teams work through agency ad accounts for Meta and TikTok: top-ups, fee rates by date, matching the agency balance to spend, bans and replacements.
CRMGuidesFinance9 min read

What a CRM for media buying and affiliate teams must do, how spreadsheets, Notion, in-house builds and specialised tools compare, and how to choose.
CRMGuidesComparisons8 min read

Why Meta's own rules on spend and CPI pause the wrong campaigns, and how to run stop-loss, scaling and duplication on tracker profit and ROI, tested first.
CRMGuidesMeta9 min read
