For most of AdWhispr's life, "we never touch live campaigns" was practically our tagline. We wrote it into our comparison posts. We said it in sales calls. We believed it. Campaign execution, we argued, was a commodity — a race between API wrappers where whoever ships the most tools across the most platforms wins, and where the margin goes to zero. Research was the moat. Knowing what your competitors are actually running, backed by signals you can verify, was the thing nobody else could bolt on.
This month we shipped campaign execution: Google Search and Performance Max are generally available, TikTok is generally available with a full video-ad builder, and Meta launch is in beta. This post is the honest account of why we reversed ourselves.
What we believed, and why
The original thesis went like this. There are two kinds of AI ads tools:
- Execution tools — MCP servers like Adspirer that operate the ad accounts you already have. Useful, but structurally interchangeable: they wrap platform APIs, and the platforms own the APIs.
- Research tools — spy tools that show you competitor ads. Mostly bad, because most of them fabricate metrics the ad libraries don't expose.
We wanted to be the one honest research tool: full competitor ad libraries, days-running as the performance proxy instead of invented ROAS scores, AI classification of every hook, format, tone, and offer. Read-only. Clean hands. Let the execution tools fight over the commodity layer, and we'd own the layer that tells you what to run.
That thesis was half right. The moat part held up — at the time of writing we track 380+ brands and roughly 194,000 ads, and no execution-only server has any concept of a competitor ad. The part that was wrong was subtler.
The pattern we couldn't unsee
Here's what our users actually did, over and over, with slight variations:
- Ask AdWhispr for a competitor's longest-running ads — the proven winners.
- Use
clone_adto rebuild the best one for their own brand. - Then leave. Open Ads Manager in another tab. Recreate the campaign structure by hand. Re-upload the creative. Set the budget. Click through the same hostile UI our whole product exists to route around.
Step three was the tell. We'd compressed research from days to minutes, compressed creative from a design cycle to a prompt — and then handed the user a finished asset and a hearty "good luck in there."
The handoff was the product gap. Not a missing feature on a roadmap — the actual place where the value we created leaked out. Every user who cloned an ad and then hand-rebuilt it in a native ads manager was telling us, in behavior rather than feedback tickets, that the loop wasn't closed. We're describing the pattern generically here because it wasn't one customer or one anecdote. It was the shape of usage.
Once you see it that way, the "execution is a commodity" argument collapses — not because it's false, but because it's answering the wrong question. Execution as a standalone business may well be a wrapper race. Execution as the last mile of a research pipeline is something else entirely: it's the difference between a tool that produces homework and a tool that produces live campaigns.
What we built (and what we deliberately didn't)
So we built launch. The execution tools sit in the same MCP server as everything else:
connect_ad_account— OAuth into your ad accountlaunch_search_campaignandlaunch_pmax_campaign— Google Search and Performance Max, generally availablelaunch_tiktok_campaign— TikTok, generally available, full video-ad builderlaunch_cloned_ad— take a clone straight to a live campaign- Meta launch — in beta, gated for now
- Plus the management basics:
list_campaigns,get_account_performance,pause_campaign,resume_campaign,update_budget
Which means the whole loop now fits in one prompt:
"Find the longest-running ad from @competitor, clone it for my brand,
and launch it on TikTok with a $50/day budget"
Just as important is what we didn't build. We are not trying to become an ads-manager replacement. We don't execute on LinkedIn or Amazon. We don't have scheduled monitoring agents. If your job is operating 200 accounts across six platforms, tools like Adspirer cover more execution surface than we do, and we say so plainly in our updated comparison.
Our position is narrower and, we think, more honest: execution serves the research. We built exactly enough launch capability that an insight — "this competitor ad has run 400 days, here's why, here's your version" — becomes a live campaign without leaving the chat. Not more.
What we kept
One thing didn't change, and won't. The research side still refuses to fabricate metrics. Ad libraries don't expose CTR, CPC, or ROAS, so we don't print them — here's the full argument. Days-running, creative-iteration rate, verified classification. That stance matters more now, not less: when the next step after "here's the winner" is "launch it with real budget," the evidence underneath the recommendation has to hold weight.
That's also the real answer to "isn't execution a commodity?" Maybe the launch API call is. The judgment about what to launch isn't — and now they live in the same sentence.
The lesson, if there is one
We drew our product boundary based on an industry map — research over here, execution over there — instead of watching where our users' work actually broke. The map was tidy. The work wasn't. Users don't want research or execution; they want the winning ad, live, for their brand, with the least ceremony possible.
If you want to run the loop yourself, setup takes about two minutes: adwhispr.com/integrations has the MCP instructions for Claude, ChatGPT, Claude Code, and Cursor — or start free at adwhispr.com. Google and TikTok launch are live today. Meta is in beta. And yes — we'll keep updating our old posts as the facts change.