per day · both accounts · draft
Paid ads, optimised every week.
One agent that runs your ads on Meta and Google together. Every Monday it reads what the money did in both accounts, checks every campaign against the goal you set, and decides what to pause, scale and refresh. Then it rewrites the tired ads, cleans the search terms and moves the budget, as drafts. Nothing changes until you've said yes.
We read what
the money did
Every Monday the agent pulls in everything that happened in both accounts the week before, straight from the Meta and Google APIs — per campaign, ad set, ad, keyword and search term. The two are read side by side, never added up: Meta counts seven days, Google thirty, and a total of the two is a number nobody can act on.
- What each campaign cost, and what it gave back
- Cost per conversion per platform, side by side, not summed
- How it moved since last week, and since the goal was set
- Frequency on Meta, impression share on Google
- Where the funnel leaks: impression, click, page or form
Meta · prospecting
Meta · retargeting
Google · search
Google · Performance Max
We see what
the others run
Then the agent reads the competition where it shows. On Meta everything sits in the open in the Ad Library — which ads exist and how long they've run. On Google it's the auction: who overlaps us, who outranks us, who has started bidding on our brand. One reading, both platforms.
- Which of their ads have run the longest — their winners
- Who is in the same auctions, and how often they win
- Who bids on our brand — and what it costs us
- Which angle and which offer they lead with right now
- What they stopped running since last week
Ad Library · Auction insights
We pick up
what's happening
At the same time the agent watches everything outside the accounts that can move the result. Season and demand, a click price that suddenly climbs, a competitor entering the auction, a change in what Meta or Google does by default — the things that make an ad cheap this week and expensive the next.
- Demand by week — when the category peaks and dips
- Click prices climbing on the terms and audiences that matter
- A new advertiser in the auction, or one leaving it
- Meta's and Google's own changes: defaults, policies, formats
- News and rule changes that touch the customer's buyers
Signal feed
Every campaign
against the goal
You set one goal — conversions under a cost, or a return on the spend. The agent holds every campaign up against it, but not before it has enough data: a cost spike on twelve clicks is a question, not a verdict. Sample size, learning phase and conversion lag are checked before anything gets a colour.
- One goal: conversions at a cost, or return per krona spent
- Each campaign vs the goal, on its own attribution window
- No verdict under 30 conversions or inside a learning phase
- Conversion lag counted in — last week isn't finished yet
- Four verdicts: keep, scale, fix, pause
Goal · under SEK 300 per conversion
Everything weighed
into one decision
This is where it all meets. The results, the competition, the signals and the goal check are laid side by side, and the agent draws one conclusion from them together. It comes out as three calls: what to pause, what should get more money, and what to refresh — with a number that can be judged next Monday.
- What to pause this week, and why
- What can take 20% more without the cost rising
- Which ads are worn out and get a refresh, not a replacement
- Which terms to block, which audiences to exclude
- A hypothesis with a target that can be judged next week
This week's decision
- Pause Google competitor terms: 3 conversions for SEK 2,400
- Scale Meta prospecting +20%, non-brand search +20%
- Refresh Meta retargeting: frequency 4.1, worn out
- Judge by: blended cost per conversion 268 → under 250
We clean up
where the money leaks
The weekly hygiene, on both platforms. On Google: the search terms that spent with nothing back become negatives, the ones that converted become keywords. On Meta: the people who already bought are excluded, and the ad that has been shown four times to the same person gets a cap. Nothing is guessed — every line comes from a report.
- Waste: terms with 3+ clicks and no conversion — blocked
- Winners: search terms that converted — added as keywords
- Drift: phrase matches pulling the wrong meaning — tightened
- Meta: buyers from the last 30 days excluded from prospecting
- Frequency over 3 gets a cap, not a bigger budget
This week's hygiene
We move the money
one step at a time
Then the budget. Not a new split every week — one move per campaign, never more than twenty percent, and then five days of silence so the platforms can relearn. A target cost goes on only when there is enough data to feed it; before that an aggressive target just makes Google stop bidding.
- Up 20% at a time, never 30% — that resets learning
- Five days between moves on the same campaign
- A target cost only after 30 conversions a month, near actuals
- Budget-capped and converting: raise it, the cost usually drops
- Money leaves the campaign that missed, joins the one that hit
Budget · per day
We find the ads
that are worn out
An ad doesn't fail all at once — it wears out. On Meta the same person has seen it four times and stopped clicking. On Google an asset is rated "Low" and never gets shown. The agent goes through every running ad and says which ones are tired, which ones are fine, and which ones are the winners that should be left alone.
- Meta: frequency over 3 and click rate down by a third
- Google: headlines and descriptions rated "Low"
- The winners: high performance, untouched on purpose
- An ad is refreshed, not replaced — the learning stays
- One refresh per ad set per week, so the effect can be read
Fatigue check · 14 ads
Then the tired ads
get rewritten
No new campaign, no new material. The tired ads get what they need to work again: a new hook on the Meta ad with the same image, so the learning stays. New headlines where Google said "Low", counted to thirty characters. The winners are not touched. Every line is tagged with the ad it replaces, so the effect can be read next week.
- New hook, same image — the ad keeps its history
- The "Low" headline replaced, the "Best" one left alone
- Every character counted: 30 and 90, never one over
- The landing page headline still echoes the ad
- Each line tagged with the ad it replaces, and its number
Refreshing the ads
Here everything stops
and waits for you
The week is finished. Every change sits ready as before and after — the budget moves, the pause, the negatives, the refreshed ads — nine drafts. Nothing in either account changes until someone says yes.
per day · both accounts · draft
same image, new hook · draft
H7 and D3 replaced · draft
from last week's search terms · draft
search terms that converted · draft
exclusions and caps · draft
with the reason · draft
headline mirrors the ad · draft
To the owners · Monday · draft
We find the hours
that actually buy
Before anything is changed, the agent goes through when the customer's own conversions actually happen. Not the industry's general best times, but the hours and days that gave the cheapest results in these accounts — and sets the schedule and the bid adjustments from that.
- Conversions per hour and day, from the accounts' own data
- Which hours gave the cheapest results, and which burned budget
- Feed, Reels and search don't peak at the same time
- Bid adjustments per hour, never more than ±20% at a time
- New windows tested continuously, so the schedule improves
Conversions per hour
We check the accounts
before anything changes
There is no undo worth the name in an ad account. So every change is written as four lines first — what it is now, what changes, what we expect, and how to roll it back — and the agent checks both accounts before it touches either: the right account, live tracking, write access, and that nothing is still inside a learning phase.
- The right accounts and currency — the wrong one costs most
- Current state → change → expected effect → rollback, per line
- Conversion tracking live on both, tested this week
- Nothing touched that is still inside a learning phase
- Write access on both, and quota left to make the changes
Pre-check
Then the changes
are made, in order
After your yes, the agent makes the changes for real against both APIs — in the order that keeps the accounts safe. Negatives and exclusions first, then the refreshed ads, then the budget moves, and the pause last. Every change is logged with its rollback, so any of them can be undone in one call.
- Negatives and exclusions first — before any budget goes up
- Refreshed ads in, old ads paused, never deleted
- Budget moves last, +20%, then five days of silence
- Every change logged: what, when, by which draft, rollback
- Nothing changed that you didn't see as a draft
Applying · Monday 09:10
Next Monday
it starts again
The week after, step 1 pulls the results for exactly the changes that were made, and judges each one against the number it carried. What held gets another twenty percent. What didn't is rolled back and saved with its explanation. After a few months, the accounts run on what the customer's own buyers actually did — not on anyone's best practice.
- Every change measured against the target it was set with
- What held gets another 20%; what didn't is rolled back
- Failed hypotheses are saved with the reason why
- Last week's search terms become this week's negatives
- No week starts from zero — each picks up where the last ended