Hands-free mode

Hands-free is the Max tier feature that pays for the price gap between Pro and Max. The agent runs low-risk optimizations on its own, measures whether they actually helped, and rolls them back if they did not.

What hands-free does

On a 12-hour cadence, the agent diagnoses every campaign, builds recommendations, classifies each by blast radius (see Agent overview), and:

  • Auto-executes surgical and meaningful recommendations.
  • Queues large and legally-dicey recommendations for your approval.
  • Inserts a real-time notification for every change.
  • Sets a rollback deadline at T+7d (surgical) or T+14d (meaningful).
  • Monitors metrics at T+24h, T+7d, T+14d and auto-rolls back on worsened verdict.

What auto-executes

Examples of surgical changes (auto-execute on Max with hands-free on):

  • Add a negative keyword
  • Add a cross-ad-group negative
  • ±15% keyword bid adjustment
  • Pause a low-quality keyword
  • Enable an ad group
  • Geo exclusion of a low-spend location
  • Replace a single underperforming RSA headline
  • Add keywords to an existing ad group (capped at 8 per cycle)
  • Regenerate funnel when LP health composite drops under 40

Meaningful changes (auto-execute on Max only when rule success rate is over 80% across at least 10 fleet-wide samples in your category):

  • ±16 to 30% device or geo bid modifier
  • Pause an ad group under 30% of campaign spend
  • Promote revenue conversion (Stage 2 → Stage 3a)
  • Budget shift 5 to 20%
  • Bidding strategy upgrade (Manual CPC → Max Clicks → Max Conversions)

What still asks

Large blast-radius changes always require approval, even on Max:

  • Pause an entire campaign
  • Enable a paused campaign
  • Budget shift over 20%
  • Pause more than 5 keywords at once
  • Device bid modifier over 30%
  • Target CPA or Target ROAS change over 25%
  • Change or delete a conversion action

Legally-dicey actions always require approval regardless of tier or blast radius: any action on restricted categories (locksmith, garage door), any action while Advertiser Identity Verification is pending.

Safety gates

For every potential auto-execute, the agent checks:

  • Tier is Max
  • User-level hands-free is enabled
  • Per-campaign hands-free is enabled
  • User circuit breaker is not tripped
  • Rule circuit breaker for this (rule × category) is not tripped
  • Global kill switch is not active
  • Daily rate limit for this campaign is not exceeded
  • Blast radius is surgical or meaningful
  • For meaningful: fleet-wide rule success rate is over 80% across at least 10 samples

If any gate fails, the recommendation queues for manual approval. You see the gating reason in the Optimize tab.

Rate limits

Hard cap: 5 hands-free auto-executions per campaign per day. Enforced via an atomic Postgres RPC. Once the limit is hit, subsequent recommendations that day surface for manual approval instead. The counter resets at midnight UTC.

This prevents runaway behavior from a bug or an unusually active day, and gives you a natural ceiling on how much the agent can change before you notice.

Circuit breakers

Three independent circuit breakers gate the system:

  • Global kill switch. Ops-level. If we see something concerning across the fleet, we flip a flag in app_config and all hands-free execution stops immediately without a deploy.
  • Rule-level breaker. When a specific rule (e.g. apply_geo_bid_modifier) drops under 40% success rate across at least 50 executions in a category, the rule is auto-downgraded to manual-only fleet-wide.
  • User-level breaker. If a user has 3+ auto-rollbacks within a 30-day window, hands-free auto-disables on their account. They get an email and an in-app notification with the reason. They can manually re-enable in Settings.

Opting out

Two levels:

  • Global. Settings → Automation → Hands-free toggle. Disables hands-free across all your campaigns. The agent still generates recommendations for review.
  • Per-campaign. Campaign detail → Optimize tab → Hands-free toggle. Scope-off a specific campaign while keeping it on for everything else.
Default on Max: both toggles are ON. You explicitly disable them, not the other way around. The pitch is "done for you," not "opt in to done for you."