I Had a Head Start. It Still Wasn't Enough.
Before I founded Synter, I spent a year at Sourcegraph where I got early access to Amp, their AI coding agent, before it launched publicly. I connected Amp to our Google Ads account and started testing it publicly in August 2025.
Over the next several months, I ran significant ad spend with AI agents across LinkedIn, Google, Reddit, X, Microsoft, and StackAdapt. I've been running ads with AI agents for nearly 9 months now. I've learned a lot. And I'm still not fully an expert. That should tell you something about the depth of this problem.
This post is the story of what I learned, and why I ended up building Synter instead of maintaining a folder of scripts.
The Idea Every Technical Marketer Has
Open Claude, Cursor, or Amp. Ask for a Google Ads API script. Maybe an OAuth flow. A lightweight reporting query. Maybe a bid adjustment worker that runs on a cron.
It feels rational because it is rational. You learn fast. You stay close to the logic. You feel in control. Early wins come quickly.
If you're technical, building your own ad tooling is almost irresistible. And for the first few days, it feels like a superpower. I know because I lived it.
The Demo Works. Then the Maintenance Begins.
The first script is not the product. The product is everything required to keep it running across real accounts, real spend, and real platform changes.
What starts as “just a script” becomes:
- Auth handling and token lifecycle management
- Job scheduling with retries and backoff
- Logging, alerting, and error triage
- Reporting normalization across platforms
- API version migrations when platforms deprecate endpoints
- Edge-case cleanup you didn't know existed
Claude can get you to working code quickly. It cannot make platform churn disappear.

Synter Campaign IDE. Describe what you want in plain English. Agents handle the platform complexity.
The Hidden Backlog No Prompt Mentions
At Sourcegraph, I had early access to the best AI coding tools available. I used them aggressively. And I still burned weeks on platform-specific quirks that no amount of prompting could anticipate.
Every ad platform has its own flavor of complexity. Here's what maintaining integrations across 8+ platforms actually looks like, from someone who has built and maintained all of them:
Google Ads
OAuth setup with manager account hierarchies. Refresh token handling where prompt=consent must be passed or you lose the refresh token silently. API version bumps (v20, v21, v22) with field deprecations. Conversion tracking that requires matching IDs across Google Ads, GTM, and GA4.
LinkedIn Ads
Rest.li 2.0 protocol, not standard REST. Versioned endpoints (202510) with idiosyncratic request formatting. Creatives require the v2 API while campaigns use /rest/. Image uploads require organization URN as owner, not ad account URN. 60-day access tokens with no refresh tokens at all.
Reddit Ads
v3 migration that changed field names, bid strategies, and payload wrappers. PKCE breaks refresh tokens silently. Posts are created under profiles, not ad accounts. Partner-level access can't PATCH entities after creation, so you have to create everything as ACTIVE from the start.
TikTok Ads
Pixel ID (numeric) vs pixel code (alphanumeric). The list API returns one format, the create API requires the other. Optimization event enums don't match Events API names. CompletePayment becomes SHOPPING. BC_AUTH_TT identity requires a Business Center ID that isn't documented clearly.
X (Twitter) Ads
OAuth 1.0a, not OAuth 2.0. Request signing with consumer key, consumer secret, token, and token secret. No scopes. Ad quality policies that silently flag promoted tweets for having more than one emoji or including a green checkmark.
The Cross-Platform Reality
Every network names the same concept differently. Google has campaigns with ad groups. LinkedIn has campaigns with campaign groups. Reddit has campaigns with ad groups but different bid strategies. Amazon DSP renamed orders to campaigns and line items to ad groups in v1.
Attribution windows don't match. Timezones don't match. Reporting schemas don't match. Creative review pipelines don't match. Currency handling differs. Rate limits differ.
The issue isn't whether you can write an integration. It's whether you want to become the person maintaining eight of them forever.
Months Running Ads with AI
Platform Integrations
Maintained Scripts
Creative Velocity Is the Next Bottleneck
Once you automate media buying, the next bottleneck is creative throughput. You need variants. You need platform-specific formats. You need to test and iterate faster than your design team can produce.
Builders who start with “I'll automate Google Ads” end up needing asset generation, copy iteration, video workflows, structured naming, and feedback loops from performance back into creative production.
You're not building a script anymore. You're building a system.

Synter's developer page. One install command for MCP. Full SDK for custom integrations.
It's Not Claude vs Synter. It's the Harness.
People ask me: “Why is Synter better than Claude Code?” That's the wrong question. Synter uses Opus 4.6 under the hood too. The model is not the differentiator. What matters is the harness you build around it. That's what I learned during my time at Amp.
The question is whether you want to maintain your own ad ops machine or use one that's already built. For a lot of people, Synter is the easier path.
The harness Synter provides:
- 100+ scripts across 8+ ad platforms with platform-specific API quirks resolved
- OAuth and token lifecycle for every platform, including refresh tokens, re-auth detection, and connection health monitoring
- Campaign execution through natural language. Create, pause, update budgets, manage creatives.
- Creative Studio for generating images (Imagen 4, Flux) and video ads (Veo 3.1, Runway, Luma, Creatify) from a prompt, with brand guidelines auto-applied
- Server-side conversion tracking that fires to Meta, Google, Reddit, LinkedIn, X, TikTok, and Microsoft in parallel
Synter also connects not just to ad platforms, but to your CRM, Google Tag Manager, conversion infrastructure, and reporting stack. That means less setup, less breakage, faster execution, and a system that compounds learnings over time.
Where Builders Should Still Build
This isn't an anti-builder argument. I am a builder. There are smart things to build yourself:
- Custom internal reporting and attribution models
- Proprietary scoring and lead qualification logic
- CRM enrichment and post-conversion workflows
- Analytics layers specific to your business
But the lowest-leverage place to spend engineering time is re-implementing OAuth, chasing API changes, and normalizing eight platforms. Build where your business is differentiated. Don't rebuild the commodity chaos.
Use Claude to build what's unique to your business. Don't use your best operators and engineers to babysit refresh tokens.
Keep Your AI Coding Tool. Add Synter as the Backend.
Here's the thing: you don't have to choose. Synter ships an MCP server that plugs directly into Claude, Cursor, Codex, Amp, and ChatGPT. You keep using your favorite AI coding tool. Synter handles the ad platform complexity behind it.
100+ tools. 8+ platforms. OAuth, credentials, and conversion tracking handled for you. One line to install.
Claude Desktop / Claude Code
# One command — no local install needed
claude mcp add synter-ads --transport http https://mcp.syntermedia.ai \
--header "X-Synter-Key: ${SYNTER_API_KEY}"Cursor
{
"mcpServers": {
"synter-ads": {
"url": "https://mcp.syntermedia.ai",
"headers": {
"X-Synter-Key": "syn_your_api_key_here"
}
}
}
}Codex (OpenAI)
# One command setup
codex mcp add synter-ads \
--url https://mcp.syntermedia.ai \
--bearer-token-env-var SYNTER_API_KEYGet your API key at syntermedia.ai/developer. New accounts get 200 credits free.
The Real Bakeoff
People ask if Synter can outperform their agency. Maybe. But I think the better test is Claude out of the box versus Synter out of the box.
Synter is not autonomous yet. The brand is still in control of their campaigns. Our focus is not on outperforming Claude or GPT-5.4 or Gemini Pro. Our focus is on removing the hassle of managing API keys, re-authentication cron jobs for your tokens, creatives, collaboration with your team, and more.
The lesson from 9 months of running ads with AI agents: the first script is free. The second platform is annoying. The third is a full-time job. By the eighth, you've built an ad ops team whether you meant to or not.
Synter exists so you don't have to build all of that yourself.
— Joel