DEV Community

L Y
L Y

Posted on

We Scaled to 12 TikTok Ad Accounts — Here’s What Broke (And What Fixed It)

Last month our small growth team scaled from 3 to 12 TikTok ad accounts.
We thought it’d be a straightforward lift. We were wrong. Overnight spend spikes slipped through the cracks, switching between dashboards ate 3+ hours a day, and everyone on the team was applying slightly different pause/scaling rules.
If you’ve ever tried to scale ad operations without a huge ops team, you know the feeling.
We went through three iterations before we landed on something that actually works. Below is the full breakdown — no fluff, just what we tried, what broke, and what we’d recommend.
First attempt: pure manual management (spoiler: it didn’t scale)
With 3 accounts, manual checks were fine. At 12, everything fell apart:
Inconsistent decisions: One team member pauses ads at 2x target CPA, another waits for 3x — results became impossible to compare
Delayed reactions: Overnight spend spikes went unnoticed for 8+ hours, burning through budget on underperforming creatives
Fragmented data: We spent more time aggregating numbers across accounts than actually optimizing strategy
Creative tests got messy: We couldn’t easily compare creative performance across accounts, so we kept retesting the same bad ideas
We knew we needed automation. We just didn’t know how much work it would be.
Second attempt: we built our own script on the TikTok Marketing API
As an engineering-first team, our first instinct was: how hard can it be?
We wrote a basic Node.js script that pulled stats via the TikTok Marketing API, checked against our rules, and sent Slack alerts. It worked great — for about a week.
Then we hit all the edge cases we didn’t plan for:
Rate limit hell: Different endpoints have different rate limits, and cross-account requests hit caps fast
Token refresh headaches: OAuth tokens would expire silently, and our script would just stop running with no alert
Permission isolation: We needed different access levels for different team members, and building that in-house got complicated fast
No creative analytics: The script only handled basic spend/CPA rules — we still had to jump back to the dashboard for creative performance
After two weeks of patching edge cases, we realized we were spending more time maintaining the script than we were saving on manual checks. That’s when we started looking at existing tools.
Third attempt: using a dedicated automation tool
We tested three different tools, and we ended up going with AdRate.
For us, the deciding factor was simple: it already had all the boring infrastructure work done. Rate limiting, token management, cross-account permissions, error retries — all the stuff we were tired of building and maintaining ourselves.
The biggest win wasn’t the rules themselves — it was getting all our accounts, creatives, and rules in one dashboard. We cut daily ad ops time from 3+ hours to about 20 minutes.
The big lesson: automation doesn’t fix bad fundamentals
Here’s the thing no ad tool will tell you: automation is a multiplier, not a silver bullet.
It will not save you from:
Weak creatives that don’t convert
Bad offer positioning
Broken Pixel tracking and garbage conversion data
If your fundamentals are solid, automation frees up hours of your week to focus on strategy and creative testing. If they’re not, it just makes bad results happen faster.
Wrapping up
You don’t need a fancy enterprise stack to start automating your ad ops.
If you’re running 1–2 accounts: stick with manual checks, and write down your decision rules so they’re consistent.
If you’re at 3–10 accounts: start with one simple safety rule (like a zero-conversion spend pause) and build from there.
If you’re at 10+ accounts: save yourself the engineering time and use a dedicated tool.
We wasted weeks trying to build everything in-house. In hindsight, we should have switched to a tool much earlier.
Has anyone else tried building their own ad automation scripts? What’s the biggest unexpected headache you ran into? Drop it in the comments — I’d love to hear about it.

Top comments (0)