When campaign hours get logged as they happen, the invoice stops being a monthly reconstruction project. The account lead can show, line by line, what a retainer covered.
A media agency's best work often happens inside someone else's platform. Ad account optimisation, audience testing, mid-flight creative swaps — most of it inside Meta or Google, not inside any tool the agency owns.
That's also where the hours go missing. Two hours spent rebalancing a campaign at 9pm because performance dipped rarely gets logged anywhere, even though it's exactly the kind of work a retainer is supposed to cover.
There's a pattern to this. The platforms hold the work, while the agency's own tools hold the time tracking — the two were never built to talk to each other.
Why the Gap Opens
Most project tracking software assumes work happens inside it — a task gets opened, worked on, and closed in the same place. Campaign management doesn't fit that shape. The actual labour sits inside ad platforms, dashboards, and client calls that never touch the task board at all.
Add in task management habits built around launches and reports. The daily optimisation work in between — the part that actually consumes the hours — has nowhere obvious to land.
The Handoff That Breaks
The handoff breaks at invoicing, when someone tries to reconstruct a month of campaign management from memory and a few platform screenshots. Reporting hours get estimated. Optimisation hours get rounded down because nobody wrote them anywhere.
A client eventually asks:
"What's this 'campaign management' line item actually for?"
Without logged hours tied to specific tasks, the honest answer is a guess dressed up as a number. Project time tracking has to capture the work that happens off-platform — strategy calls, reporting, optimisation reviews — or the invoice will always be reconstructed instead of accurate.
What Changes When It Closes
When campaign hours get logged as they happen, the invoice stops being a monthly reconstruction project. The account lead can show, line by line, what a retainer covered — which lines up with what's covered in where media agency hours disappear and why margin follows.
It also resolves the conversation in the invoice tracker piece on never chasing the same media client twice. Once optimisation and reporting hours are logged against the retainer, the invoice explains itself.
The Workflow That Closes It
The fix is treating every off-platform touch as its own loggable task — the optimisation session, the reporting hour, the strategy call — tied to the client and retainer period.
An invoice tracker built apart from that task data can confirm what's overdue. It can't confirm whether a retainer invoice reflects what the team actually did inside the ad accounts that month. A billing management system layered on top just creates a second place to reconcile, by hand, every billing cycle.
Agency OS keeps tasks, projects, and invoices linked in one place — so a retainer invoice traces back to the campaign work it billed for. Watch the walkthrough to see tracked hours turn into a finished invoice end to end.
For the cash flow side of retainer billing, how media agencies manage cash flow when ad spend hits before client payment is the natural next read.
Where to Start
Start with one retainer client. Log every off-platform touch as its own task for one billing cycle, then build that invoice straight from the logged tasks instead of from memory and screenshots.


