Halden, Part 2: The First Agent
Halden's ad manager draws the rules he follows by hand, watches them run in simulation for two weeks, and finally lets them touch real bids. Part two of a four-part story.
A Fluvi story in four parts. This is part two; start with part one.
Saturday morning
Theo Ruiz has a rule about Saturdays: no laptop until after the gym. The Saturday after the second meeting he broke it at 6:15 a.m., sitting in his car outside the gym with a coffee going cold, because he couldn't stop thinking about one question.
What do I actually do, when I do this right?
Not what he did at midnight, tired, working through a tab at random. What he did on a good day, with time, looking at one keyword properly. He wrote it in his phone's notes app before he could talk himself out of it:
If we fell off page one for a search we should own, push the bid.
If we're already top three organically, ease off. Organic will carry it, why pay for the click?
If it's not about protein powder, stop paying for it.
If it's had 25 clicks and never sold, pause it.
Everything else: steer it toward an ACoS we can live with.
Five lines. He'd been doing those five things by hand, badly, for four months. Halden didn't have a strategy problem. It had a repetition problem.
Drawing it
In Fluvi, an agent is a rule that runs itself. You don't configure a black box with a slider labelled "aggressiveness". You draw the logic you'd follow by hand, on a canvas: a scope, then a column of if and else if cases checked top to bottom, each with what to do.
Theo opened Agents, picked a bid agent, scoped it to every US keyword target, all 65 of them, and drew his five lines as five forks:
- Buried in organic: organic rank worse than 20, bid +15%.
- Already top three: organic rank better than 4, bid −10%.
- Unrelated: the keyword is tier 4, bid −25%.
- Clicks, no orders: more than 24 clicks and no order in 14 days, pause.
- Everything else: bid toward 25% ACoS, at most 10% a run.
Rank comes from Fluvi checking Halden's organic position every day on the keywords that sell. Tier comes from the classifier he'd reviewed in Part 1. The rest is Amazon's own numbers. He set the last fork's target at 25% ACoS, two points under the vanilla tub's 27% break-even, because Priya would want to see that number. And the "at most 10% a run" meant no keyword's bid could lurch in one night, however far off its target it was.
Then he did the thing that made him trust it enough to keep going: nothing.
Simulate
Every new agent in Fluvi starts simulated. It runs exactly as it would live, on Halden's real numbers each time a new day's data lands, and it records every change it would have made. But nothing is sent to Amazon. Simulations are unlimited and free, on every plan.
Theo let it run for fourteen days. Every morning, before the customer emails, he opened the activity feed, filtered it to simulated changes, and read what the agent would have done the day before. Most mornings, he nodded. The agent was doing what he'd do, on keywords he hadn't looked at in months. Over two weeks it would have made 140 bid changes and 9 pauses across those 65 targets. He'd have managed maybe twenty.
On day six, he didn't nod.
The brand term
The log said the agent would have cut the bid on "halden protein" by 10%, three days running. By the rules Theo drew, that was correct: Halden ranked near the top organically for its own name, so the agent eased off and let organic carry it.
Except Theo knew something the rules didn't. Ironpeak, the category's biggest brand, had started bidding on "halden" in December. When a shopper searched Halden's own name, the first sponsored result above Halden's organic listing was an Ironpeak tub. If Halden's bid dropped, Ironpeak wouldn't just sit above Halden. It would get that spot cheaper.
This is the moment simulate exists for. Theo didn't have to find out from a bad week of sales. He found out from a log entry, on a Thursday, with nothing at stake.
The fix was one more fork, Our brand: any keyword containing "halden" bids toward a 15% ACoS. He dragged it to the top, so it's checked before the rank forks ever see a brand term. Branded searches convert so well that 15% still let the agent bid hard enough to hold the top spot against Ironpeak.
Theo watched it for four more days in simulation. The "halden" terms held.
On day fifteen, he switched the agent live. The first night, he checked the log at 11 p.m. out of habit. Then he closed the laptop, because there was nothing for him to do. That was the point.
The second agent
The bid agent decided what Halden paid. It didn't decide what Halden bid on. In Part 1, Theo had accepted 34 harvest suggestions by hand. Within a week there were a dozen more.
The Free plan includes one live agent. Theo moved Halden to the Growth plan, from $99 a month for up to 100 live agents. Priya signed off on it in one line: That's less than we were spending on "yoga mat". Then he drew a harvesting agent for the vanilla tub:
Two forks. A search that sold more than twice in 30 days and is about the product, or an adjacent need, becomes its own exact keyword in the vanilla exact campaign, starting at the cost per click it was already paying. And it's negated where it was found, so the new exact keyword and the old broad one don't bid against each other. That was one of the leaks from Part 1, and Theo never wanted to clean it up again. A search that's unrelated and has had more than ten clicks just gets negated.
Anything in between is left alone: a tier 3 search like "protein shake" that sells now and then, or a close search that hasn't proven itself yet. The bid agent prices those. The harvesting agent only acts when the case is clear.
A week later, the search terms page told the story. Searches the agent had harvested carried two tags, keyword for the exact keyword they'd been given and negated for the nets they'd been taken out of.
Open one, and you can see exactly where it lives now: the exact keyword that owns it, and every net that used to catch it.
The surprise was "protein shake women". Halden had never targeted women specifically, and the vanilla tub's listing didn't mention it. But shoppers searching for it were buying, at a better rate than "whey isolate". The harvesting agent didn't need to understand why. It saw a search that sold, saw it was close to the product, and gave it a keyword of its own. A week later the bid agent was pricing it, and Maren was asking the designer about a new main image.
That kept happening. The agents weren't just saving Theo time. They were noticing things.
Always one in simulation
By March, Theo had a habit: there was always one agent in simulation. The next idea, running on real numbers, changing nothing.
The first was Scale profitable keywords: any target under 25% ACoS with more than two orders in 14 days, bid +10%. The rank agent already pushed keywords that were buried. This one would push keywords that were simply winning.
Each simulated run sits in the activity feed beside the live ones, marked simulated. Click it and you get every change it would have made, bid before and after, with a line at the bottom that Theo came to find very calming: Simulated, nothing sent to Amazon.
Three weeks in
Priya's Monday email was four lines long:
ACoS on Amazon US, last 7 days: 33%. (January: 40%.)
Ad spend down 9%. Ad sales flat.
Tier 4 spend last 7 days: $95. (January weekly average: $360.)
Whatever you're doing, keep doing it.
The tier 4 line was the one Theo screenshotted and sent to his mum.
Halden was spending less and selling the same. That's the easy half of PPC: stop the waste. The harder half is spending more, deliberately, in the places that grow the business. And Theo was about to find out that the agents had uncovered a new problem while fixing the old one.
At 2:14 p.m. on a Tuesday, Halden's best campaign, halden-vanilla.exact.t1, ran out of budget. It had happened on three of the last seven days. The keywords that converted best were going dark every afternoon, right as the after-work gym crowd started shopping.
And the same week, the rank column started moving the wrong way on "whey isolate protein powder", Halden's best keyword. Ironpeak had launched a new tub.
In Part 3, Halden goes on the offensive.
Previous: Part 1: The Leak. Next: Part 3: Momentum.
Every agent in Fluvi starts in simulation, and simulations are free on every plan. Draw your first one.
About this story: Halden and its people are fictional, the same brand you'll find on our PPC product page, and the numbers are illustrative. The screens are the real Fluvi app, running on Halden's demo account. Every feature in it works the way it's described.


