Skip to content
esc close · switch
LYRA/ Tools/ AI & Optimization/ AI Bid Optimization Engine
AI & Optimization AI-assistedApproval-gated

Every bid change, reasoned .

AI Bid Optimization Engine reads your campaigns, computes the rule-based signals (CPA delta, CTR, conversion rate) that justify a bid change, and asks the Lyra Agent to write the reasoning per row. You preview the full recommendation list, set bid caps, then apply — or stay in analyze-only mode and never write to Google Ads at all.

Three modes: analyze · preview · execute · Bid caps + cooldown days · Manual CPC + Enhanced CPC only
Input · what you set per run

Five fields. Five hard rules.

AI Bid Optimization runs on a single account at a time. The five fields below shape the run — the mode you pick decides whether anything writes to Google Ads. Default is preview; nothing leaves Lyra unless you explicitly choose execute.

Run · sample — Basalt Running · Brand · Search 5 / 5 fields · Manual CPC · 2,847 keywords in scope
01 · Account Customer to optimise Single account per run. The tool runs across every Manual CPC / Enhanced CPC campaign in that account. basalt-dtc · MCC 8873-197-205
02 · Mode analyze · preview · execute Three modes. Analyze returns signal data only. Preview returns the full draft list. Execute writes to Google Ads via the BatchJob API. preview
03 · Profile Optimisation sensitivity How aggressive the threshold is for what counts as a recommendation. Aggressive raises the count; conservative lowers it. balanced
04 · Bid caps Ceiling + floor Hard caps the recommendations respect. No suggested bid will exceed your ceiling, regardless of signals. Floor prevents going below your minimum-presence threshold. $4.50 / $0.30
05 · Cooldown Minimum days between adjustments Prevents the same keyword being adjusted twice in N days, even if signals justify it. 7 days
Output · the recommendation list

Bid changes, with the why , per row.

Each recommendation is a keyword line plus a reasoning paragraph from the Lyra Agent. Editable before execute. Below is a 3-row sample from a 31-row preview run on a Manual-CPC Brand · Search campaign.

Generated Apr 25, 2026 · 11:08 UTC Sample · run #19 · basalt-dtc · preview mode
C.1 Campaign · Brand · Search · US Manual CPC · 2,847 keywords · 31 changes recommended
KW "basalt running" — current $1.20 → $0.92 · −23% cooldown OK · within caps
WHY Reasoning: Conversion rate held at 7.2% over 14 days but CPA dropped from $14 to $9 — bid efficiency room. −23% lands the keyword inside your target CPA range without losing position 1 (impression share 94% → projected 91%). Lyra Agent · v2.0
KW "basalt running shoes" — current $0.85 → $1.10 · +29% cooldown OK · within caps
WHY Reasoning: CTR up 38% week-over-week, conversion rate stable, but impression share is 41% — capacity to spend more without degrading CPA. +29% pushes IS toward 60% at projected CPA $11 (target $14). Lyra Agent · v2.0
KW "basalt trail shoes" — no change cooldown ACTIVE · 4d ago
WHY Reasoning: Adjusted 4 days ago. Cooldown blocks re-adjustment until day 7, regardless of current signals. Re-evaluates on day 8. Lyra Agent · v2.0
+ 28 more recommendations Full list visible in preview · editable per row before execute 0 cap breaches · 4 in cooldown
31 changes ready to apply · 0 will exceed caps · 4 in cooldown Est. weekly impact · +$120 net
Model evidence · three sources

Heuristics produce the number. The Lyra Agent writes the why .

The bid math is deterministic — same inputs, same recommendation, every run. The Agent only writes the reasoning string. We don't ask it to set bids, because asking an LLM to do arithmetic is a bad use of it.

Signal 01Heuristics

Rule-based signals decide the bid number.

CPA delta, CTR, conversion rate, cost data — all computed in compute_bid_signals() from keyword_bid_snapshots and campaign_performance. Deterministic; same campaign state always produces the same recommendation. No ML model deciding the bid.

Source · keyword_bid_snapshots · campaign_performance
Signal 02Reasoning

The Lyra Agent writes the explanation per row.

Once a recommendation is shortlisted, the Lyra Agent is asked to explain the heuristic output in human language — what changed in the signals, why this delta, what the projected impact looks like. The Agent never invents signals; it only narrates.

Source · Lyra Agent · constrained to signal data
Signal 03Eligibility

Smart Bidding campaigns get analysis-only.

Only Manual CPC and Enhanced CPC campaigns get bid recommendations. Smart Bidding (tCPA, tROAS, Maximise Conversions) gets analysis-only output — Google's algorithm controls those bids, so a keyword-level mutation would be ignored or overridden.

Source · KEYWORD_BID_ELIGIBLE_STRATEGIES filter
Product facts · how it behaves

Bids on a leash , reasoning on the record.

What it produces A list of bid changes, with the why.

Each row: keyword, current bid, suggested bid, ±%, plus a Lyra-Agent reasoning paragraph grounded in the heuristic signals. Editable before execute, logged after.

Three modes analyze · preview · execute .

Analyze returns signal data only — no bids changed. Preview returns the full draft list. Execute applies via Google Ads BatchJob. You pick the mode every run; no scheduled cron triggers it.

Safety rails Bid caps and cooldowns .

Every recommendation respects your per-keyword ceiling and floor. Cooldown days block back-to-back adjustments to the same keyword, even if the signals would justify one. Both are hard rules; recommendations that would breach either are dropped before you see the list.

What it touches Manual and Enhanced CPC only.

Smart Bidding campaigns get analysis-only output — Google's algorithm owns those bids. No surprise mutations on Smart-Bid campaigns; the tool surfaces signal data so you can decide whether to switch strategies.

Frequently asked

The honest answers about the engine.

Does the tool apply bid changes automatically?

No. Three modes — analyze (signals only), preview (full draft), execute (applies). You pick the mode at run time. Default is preview. Execute writes to Google Ads via the BatchJob API; no scheduled cron triggers it. The tool only runs when you ask it to, from the AI Advisor chat or directly via API.

Where does the AI actually sit?

The Lyra Agent writes the per-recommendation reasoning. The bid math itself is deterministic — heuristic signals over your campaign data, no ML model deciding the number. The Agent is asked to explain a recommendation, not produce one. Asking an LLM to do arithmetic is a bad use of it. (See AI Advisor for what powers the Agent under the hood.)

What stops a runaway adjustment?

Two things: bid caps (per-keyword ceiling and floor you set) and cooldowns (a minimum number of days between adjustments to the same keyword). Both are hard rules — if a recommendation would breach either, it's dropped before the list is shown to you.

Why doesn't this work on Smart Bidding campaigns?

Because Google's algorithm controls bids on Smart Bidding strategies (tCPA, tROAS, Maximise Conversions). We can't propose a keyword-bid change that the system will respect. For those campaigns, the tool runs in analyze-only mode and surfaces the same signal data so you can decide whether to switch strategies.

What's logged after a run?

Every applied change writes to bid_change_history (per-keyword before/after/reason) and an entry to account_diary_entries summarising the top increases and decreases. Reverting an apply means running the tool again with the inverse delta — there's no one-click rollback on this one.

14-day free trial · No credit card · Cancel in one click

Run the audit.
Keep the findings.

Connect your account and let Lyra run its 18 tools for 14 days. If the projected waste recovery isn't worth at least 10× the $49, don't pay. You keep every insight either way.

Read-only connect · write access opt-in per tool · SOC 2 in progress · GDPR + CCPA compliant