AI Loop

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.

Step 01 · The results

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

SpendSEK 17,600
Conversions72
Cost per conv.SEK 244
Fetching · 7-dayDone

Meta · retargeting

SpendSEK 4,200
Conversions31
Frequency4.1
Fetching · 7-dayDone

Google · search

SpendSEK 17,700
Conversions79
Lost IS · budget34%
Fetching · 30-dayDone

Google · Performance Max

SpendSEK 6,800
Conversions12
Of which brand7
Fetching · 30-dayDone
Step 02 · The competition

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

Competitor #1same Meta ad for 94 days
Competitor #2bidding on our brand since Tuesday
Competitor #3outranks us 61% on search
Competitor #4new "free trial" angle, both platforms
Competitor #5stopped Reels, left the auction
Reading advertiser 1 of 5 Analysis done
Step 03 · Signal watch

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

Watching continuously
Step 04 · The goal check

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

CampaignCost / conv.vs goalCall
Meta · prospecting244–19%scale
Meta · retargeting135–55%fix
Google · brand82–73%keep
Google · non-brand356+19%fix
Google · Performance Max567+89%fix
Google · competitor800+167%pause
Meta 7-day · Google 30-day · read apartfix = data says why
Step 05 · Analysis of the week

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

The results
The competition
The signals
The goal
Conclusion
  • 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
Step 06 · Search terms and audiences

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

GoogBlock "pos system free" · 41 clicks, 0 conv.neg
GoogBlock "cashier jobs" · hiring intentneg
GoogAdd "order system café ipad" · 4 conv.exact
GoogTighten "order system" phrase → exactdrift
MetaExclude buyers 30 d from prospectingexcl
MetaRetargeting frequency 4.1 → cap at 3cap
Reading the reports
Step 07 · Budget and bids

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

Meta · prospecting
SEK 2,500 → 3,000 (+20%) · next move in 5 days
Meta · retargeting
Hold SEK 600 · refresh first, then judge
Google · non-brand
SEK 500 → 600 (+20%) · capped, 34% lost to budget
Google · competitor
Paused · SEK 350 moved to non-brand
Bidding
Target CPA off until 30 conv. · manual until then
Step 08 · Fatigue check

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

Meta · ad #12frequency 4.1 · CTR –38%
Meta · ad #9winner · 3.4× · leave it
Google · RSA H7"Cheapest" · rated Low
Google · RSA D3rated Low · never shown
Google · RSA H1"Set Up In A Day" · Best
Reading ad 1 of 5 3 tired · 2 winners
Step 09 · Refresh the 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

Meta · ad #12 · new hook
Meta hook Meta text H7 replaced D3 replaced Sitelink Page headline
Step 10 · Approval

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.

Showing 1–3 of 9 drafts
HBudget moves
per day · both accounts · draft
NowMeta prospecting 2,500 · Google non-brand 500 · Google competitor 350
ProposedMeta prospecting 3,000 · Google non-brand 600 · Google competitor paused
+20% each, no moreNext move in 5 daysRollback: saved
HMeta · ad #12 refreshed
same image, new hook · draft
Now · frequency 4.1Everything your café needs, in one screen.
ProposedThe queue moves faster when the till does. Set up in a day.
Old ad paused, not deletedJudge: CTR back over 1.2%
HGoogle · search ad refreshed
H7 and D3 replaced · draft
NNordnord.se › cafes
Sponsored
Order System For Cafés | Set Up In A Day
Orders, payments and stock in one screen. Switch in an afternoon, history imported. Built for counters with a queue.
H7 "Cheapest" out · "Switch In An Afternoon" in13 assets kept
HNegative keywords
from last week's search terms · draft
Block"pos system free" — 41 clicks, SEK 1,100, no conversion
Block"cashier jobs" — hiring intent, 28 clicks
Block"what is a pos system" — research, 19 clicks
Block"nord" in non-brand — routes brand to the brand campaign
RuleOnly terms with 3+ clicks and zero conversions. Nothing guessed.
HNew keywords
search terms that converted · draft
Add"order system café ipad" — 4 conversions, not a keyword yet
Add"pos with table ordering" — 3 conversions, exact match
Add"switch from competitor" — 2 conversions, exact match
Tighten"order system" phrase → exact — drifting into warehouse terms
HMeta · audiences
exclusions and caps · draft
ExcludeBuyers last 30 days — out of prospecting, into retargeting only
ExcludePage visitors 3 days — already in retargeting
CapRetargeting frequency 4.1 → 3 per 7 days
KeepProspecting broad — creative is the targeting
HPause list
with the reason · draft
PauseGoogle competitor campaign — SEK 800 per conversion for six weeks
PauseMeta ad #12 — replaced by the refreshed version
PauseSearch Partners — 0 conversions, SEK 640 a week
Not yetPMax — 12 conversions, inside learning. Brand excluded, judged in 2 weeks
HLanding page
headline mirrors the ad · draft
Now · homepageEverything your business needs, in one place
Proposed · /cafesOrder system for cafés. Set up in a day, no card for the first month.
One page, one buttonQuality score 5 → 7 expected
H Hubso · memo
To the owners · Monday · draft
Week 38: SEK 268 per conversion, goal is under 300
Two scaled, one paused, three refreshed · 3 minutes to read
Meta prospecting hit SEK 244 and gets 20% more. Google non-brand sits at 356 but lost a third of the auction to budget — it gets 20% more too, and four negatives. Competitor terms gave 3 conversions for SEK 2,400 and are paused. Retargeting is worn out at frequency 4.1: new hook, same image, cap at 3. Goal for next Monday: blended under SEK 250. No other changes for five days.
Read the week
Step 11 · When the money should run

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

MonTueWedThuFri
08 10 13 15 19
Tuesday 10:00 · search–31% cost
Wednesday 13:00 · search–22% cost
Evenings after 19 · Reels–16% cost
Step 12 · Account pre-check

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

Meta ad accountNord AB · SEK · ads_management
Google Ads accountNord AB · SEK · via MCC
Conversion trackingpixel + tag, both live
Learning phasePMax in learning · left alone
Rollback9 changes, 9 rollbacks saved
Checking 1 of 5 Ready to apply
Step 13 · The changes in the accounts

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

01Google · 4 negatives, 3 keywordsDONE
02Meta · exclusions + frequency capDONE
03Google · H7 and D3 replacedDONE
04Meta · ad #12 refreshed, old pausedDONE
05Both · budgets +20%, competitor pausedDONE
06Log · 9 changes, 9 rollbackssaved
Applying in both accounts
Step 14 · And then it starts again

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
Week 39 And again 14 steps · every week