Cut wasted ad spend across Google, Meta, Microsoft and TikTok
One conversation that finds spend that does not pay off on all four platforms and moves it to what does.
This guide is one conversation across four ad platforms. It follows Harbor Coffee Roasters, a roaster that sells beans online on Google Ads, Meta Ads, Microsoft Ads and TikTok Ads, all connected through Adplane. Each platform's step deals with one kind of waste through a change you can undo, and links to that platform's own guide.
Step 1: one table for four platforms
Harbor Coffee Roasters has an account on all four platforms, and all four bill in USD, so the spend adds up: 10,400 dollars from September 10 to October 9. I ended the window there because TikTok's figures for yesterday can still be filling in.
| Platform | Campaign | Spend | Purchases | Per purchase |
|---|---|---|---|---|
| Shopping | 2,310 | 88 | 26.25 | |
| Generic beans | 1,640 | 31 | 52.90 | |
| Brand search | 910 | 43 | 21.16 | |
| Microsoft | Generic beans | 940 | 31 | 30.32 |
| Meta | Prospecting | 1,950 | 41 | 47.56 |
| Meta | Retargeting | 1,170 | 47 | 24.89 |
| TikTok | Smart+ subscription | 1,480 | 19 | 77.89 |
By platform: Google 4,860, Meta 3,120, TikTok 1,480 and Microsoft 940. Three campaigns miss your 40 target: Smart+ subscription by almost double, then Generic beans on Google and Prospecting on Meta.
I have not added the purchases together. Each platform counts its own: Meta and TikTok also credit people who saw an ad without clicking it, and the attribution windows differ, so one order can be claimed by more than one platform. Compare each platform with its own past and with your store's orders, not with each other.
You should see every platform in one table, in each account's currency. Give your target up front so every step measures against it. If your accounts bill in different currencies, ask for each in its own rather than a total at a guessed rate.
Step 2: search terms on Google and Microsoft Ads
15 search terms, all in Generic beans, cost more than 20 dollars without a purchase, 480 dollars in all:
| Theme | Example term | Terms | Spend |
|---|---|---|---|
| Cafes nearby | coffee shop near me | 6 | 214 |
| Machines | espresso machine deals | 4 | 131 |
| Jobs | barista jobs | 3 | 88 |
| Other | single origin decaf | 2 | 47 |
Cafes nearby, Machines and Jobs do not fit a roaster that sells beans online. The two in Other are close to what you sell, so I would leave them.
Added 5 phrase match negatives to Generic beans: near me, coffee shop, machine, machines and jobs. Google does not treat a plural as the same word for negatives, so machine and machines are both there. Read back from Google: all 5 are stored on the campaign.
Your Microsoft campaign was imported from Google, so it has the same gaps. 5 search terms cost more than 20 dollars without a purchase, 119 dollars in all, from September 10 to October 9:
| Theme | Example term | Terms | Spend |
|---|---|---|---|
| Cafes nearby | coffee shops near me | 3 | 71 |
| Machines | espresso machine reviews | 2 | 48 |
No jobs searches showed up here. Want the same negatives on Generic beans, apart from jobs? They would go in as phrase match, as on Google.
Added 4 phrase match negatives to Generic beans on Microsoft Advertising: near me, coffee shop, machine and machines. Read back from Microsoft: all 4 are stored, and none was refused.
Negatives cannot spend, so they are the safe first cut, and the campaigns keep running on the searches that work. A campaign imported from Google repeats its leaks, so check Microsoft whenever you clean up Google. You should see each negative read back, and any that Microsoft refuses listed with its reason. The Google Ads audit guide and the Microsoft Ads search terms guide go further.
Step 3: Meta Ads, tired creative
Prospecting by ad, September 10 to October 9:
| Ad | Spend | Purchases | Per purchase | Frequency | CTR |
|---|---|---|---|---|---|
| Pour-over video | 820 | 24 | 34.17 | 2.1 | 1.4% |
| Bag lineup image | 690 | 9 | 76.67 | 4.8 | 0.6% |
| Subscription carousel | 440 | 8 | 55.00 | 2.4 | 1.1% |
Bag lineup image looks tired: people have seen it almost five times on average, and in the weekly rows its click-through rate fell every week, from 1.3% to 0.4%. Pour-over video beats your target. Subscription carousel misses it but has held steady, so I would give it time.
Paused. Read back from Meta: Bag lineup image is paused, and the ad set keeps delivering through its other two ads.
Rising frequency with falling click-through is the usual sign of creative fatigue. Pause the narrowest thing that fixes it, here one ad, not the ad set. You should see the status read back from Meta. The Meta Ads audit guide covers the rest: budgets split too thin, placements, and a new ad in place of a tired one.
Step 4: TikTok Ads, ads that spend without results
Smart+ subscription by ad, September 10 to October 9. TikTok counts conversions on the ad group's optimization event, purchases here:
| Ad | Spend | Conversions | Per conversion |
|---|---|---|---|
| Barista morning routine | 610 | 14 | 43.57 |
| Bean to cup unboxing | 540 | 3 | 180.00 |
| Subscription promo slideshow | 330 | 2 | 165.00 |
Bean to cup unboxing and Subscription promo slideshow have each spent more than eight times your target for two or three conversions, which is enough to judge them. Barista morning routine is close to your target.
Paused both, one at a time. Read back from TikTok: Bean to cup unboxing and Subscription promo slideshow are both disabled, TikTok's word for paused. Barista morning routine is now the one ad running in the campaign.
Check volume before you cut: ten clicks and no results is not evidence. A rough rule is about three times your target in spend. You should see each status read back from TikTok. For new videos in their place, the TikTok Smart+ guide shows how to build an ad from a video and preview it.
Step 5: pacing, and moving the money
Your daily budgets add up to 352 dollars, about 10,900 over October. From October 1 to 9 you spent 3,130, 29% of that, with 29% of the month gone, so you are on pace.
Shopping on Google is the clearest place for more: 26.25 per purchase on Google's count, and it lost 22% of its impression share because its 80 dollar daily budget runs out. Smart+ subscription now runs on one ad and will not use 50 a day well. I propose three changes:
- TikTok Ads, Smart+ subscription: its ad group's daily budget from 50 to 30.
- Google Ads, Shopping: daily budget from 80 to 100, a 25% step.
- Microsoft Ads, Generic beans: daily budget from 32 to 40. It beats your target at 30.32, and the negatives just cut some of its waste.
Changes 1 and 2 move 20 a day from TikTok to Google, so the total stays at 352. Change 3 adds 8 a day. Which of these should I make?
Done, one change at a time:
- Read back from TikTok: Smart+ subscription's ad group has a daily budget of 30, down from 50.
- Read back from Google: Shopping has a daily budget of 100, up from 80.
Your daily budgets still add up to 352, and Microsoft stays at 32. Give both a week: a budget change can move delivery around for a few days.
These changes move money, so the assistant proposes each with its numbers and makes it only after you say yes to it. When your own words ask for an exact change, such as "raise Shopping to 100 a day", it is made directly. Raise budgets in steps of 20 to 30 percent: a budget that doubles overnight usually costs more per result before it settles. You should see each new budget read back from its own platform, and the new daily total.
Step 6: the write-up
Found. 480 dollars of Google search terms and 119 of Microsoft ones that do not fit a roaster selling online, one tired Meta ad at 76.67 per purchase, two TikTok ads at 165 and 180 per conversion, and Shopping on Google capped by its budget.
Changed. 5 negatives on Google and 4 on Microsoft, the Meta ad and the two TikTok ads paused, and 20 a day moved from Smart+ subscription to Shopping. The total daily budget is unchanged at 352.
Check on October 25. New search terms on Google and Microsoft, Shopping's impression share lost to budget, TikTok's cost per conversion on its one ad, and whether Microsoft has earned the extra 8 a day.
Adplane does not watch your accounts between conversations, so the two-week check is yours to start: bring the summary back and ask what changed since.
Why this is safe to run
The reports change nothing. Negatives narrow where ads show and cannot spend, and a pause can be undone with one message. On each platform a single update tool is the one path to starting or raising spend. Every change is read back from the platform before it is reported as done. The full safety model is in the docs.
Run it on your account
Connect Adplane to Claude from the connector directory, or to ChatGPT from the plugin directory, then connect each ad platform you use on your accounts page. The free trial is 14 days and does not require a card. Connect your accounts and run step 1.
Try it in your own chat
Sign in with Google, connect your ad accounts, and ask your first question.