Collection limits
Affiliate networks put a ceiling on how hard anyone may hit them. When we go over it the network stops answering, and collection for every account on that network degrades at once β reports come back empty, or the integration can't even sign in.
Collection limits are how you cap the pace we collect at, per network and per program, without waiting for a release. Use them the moment a network starts refusing us.
They are not an error state. A run that waits its turn is the limit doing its job; nothing about it is flagged as a problem.
Where the limits live
Two screens, three groups of limits. All three use the same four fields.
"Program" here means an affiliate program β the thing a network runs and that holds one or more brands. Limits are set per program, not per brand.
Network-wide and per-program both apply. They aren't alternatives and there is no switch between them: a run has to satisfy the network's shared budget and whatever applies to its own program. Setting one does not turn the other off.
The four fields
Max runs at once β how many runs may be executing simultaneously in this scope. Leave it empty for no limit.
Rate limit β a run count and a window, e.g. 3 runs per 1 hour. This is a pair: a count with no window, or a window with no count, does nothing at all, so the screen won't let you save half of one.
Retry delay β how long a run that got held back waits before trying again. Leave it empty for the system default of 30 seconds. (A run held back by the rate limit ignores this and waits for the window to refill.)
Empty means unlimited, and so does a typed 0 β the screen clears a 0 back to
empty so the two don't look like different settings. Negative numbers aren't
accepted; a -1 would read as a real limit and isn't one.
Setting limits on a network
- Open the network, go to Integration, and edit its integration settings.
- Open the Limits tab.
- Under Network-wide, set the shared budget β for a network that has started refusing us, 3 runs per 1 hour is a reasonable first cap.
- Save.
Every program on that network now collects within that budget. Their own screens show the numbers they inherit.
Tightening one busy program
Set Default per program on the network when you want the same ceiling on each program. Override a single program only when that one needs a tighter cap than the rest.
- Open the program, go to Integration β Limits.
- Fill in only the fields you want to change. Anything you leave empty keeps showing the number it inherits, and keeps inheriting it.
- Save.
A program can only tighten, never loosen
A program's share is carved out of the network's shared budget, never added to it. If you enter a number looser than the network-wide cap, the screen tells you it will have no effect β it saves, it just won't raise anything. To give a program more room, raise the network-wide limit.
Inherited vs set
An empty field on a program shows the inherited number greyed out, with a note saying where it came from. That's deliberate: an empty box would otherwise read as "unlimited" when it actually means "whatever the network says".
If the program's network has no integration settings row at all, the screen says no network default instead β there is nothing to inherit, which is a different statement from "unlimited".
Common tasks
A network started refusing us and collection is failing. Set a network-wide rate limit. Start conservative β a few runs per hour β confirm collection recovers, then relax it in steps.
One program is eating the whole network budget. Set Default per program on the network so no single program can take it all, or set an override on the busy program.
I set a rate limit and nothing changed. Check both halves are filled in. A run count with no window does nothing, which is why the screen blocks saving one.
I set a long window and accounts stopped collecting. A window longer than the collection cadence starves accounts between runs. The screen warns above 24 hours; shorten it.
I want to remove a program's override. Clear every field in its Limits tab and save. The program goes back to inheriting the network's per-program default.
When to escalate to engineering
- Collection still fails with limits set conservatively β the network may be blocking us for a reason other than pace.
- A limit you saved isn't reflected in what the program's screen shows after a reload.
- You need a limit on something these two screens don't cover.