policy.updated event to the v2 audit chain. The event identifies the owner and records the complete policy before and after the change. Saving the same values again does not add a duplicate event.
Policy changes are saved atomically with their audit event. If the audit event cannot be recorded, the change is not saved. Recheck the displayed policy after an error; do not assume a mode switch succeeded.
Execution mode
New workspaces default to Ask. Existing workspace policies were migrated to Ask; selecting Full is an explicit owner decision. The selected mode is copied into each proposal as an immutable snapshot. Changing the current mode does not rewrite an older proposal.
Older batches can retain
suggest_only, auto_with_limits, or full_auto snapshots. A historical suggest_only approval still ends without execution. These are historical values, not choices for a new policy.
Two policy gates
Executable Meta work passes policy twice:- Proposal-time admission checks validate scope, authorization, evidence, and supported actions. Ask requires a person to approve every admitted change first; Full queues admitted changes automatically except rule-generated budget increases.
- At dispatch, execution-time policy re-reads authoritative provider state and must return
allowbefore any write.
allow result blocks the queued batch before provider execution.
Outcome safety
Outcome check after
Sets the delay before checking a verified creative action’s provider outcome. The accepted range is 1–168 hours. Resume and daily-budget changes use a separate window of three complete account-local days after the provider-write day, with the first check scheduled one hour after that window ends. See outcome windows and prerequisites.Loss threshold
Sets the percentage used to classify a measurable management outcome asheld or lost. The accepted range is 1–999.99%; the API retains the field name anomaly_threshold_percent. Inbox records the threshold used with the comparison.
The comparison uses eligible counted arrivals and retained Meta spend, not purchase CPA or aggregate Signals reconciliation. A lost verdict can create a separate inverse proposal, with current-state checks and Ask/Full approval behavior. It does not directly compensate the original action. Check the recorded proposal before submitting another change; neither verdict guarantees future performance.
Verification and compensation
Plainrouter does not treat a successful provider response as proof that an action Landed. It persists an execution receipt and re-reads the exact object.- Image upload verification matches the receipt asset, frozen content hash, and provider readiness.
- Ad-copy verification matches the receipt ad, authorized account, selected creative, and
PAUSEDstate at creation. - An
IN_PROCESScopy can enter durable asynchronous verification for up to 48 hours. - Execution or verification failures can require compensation; check the exact receipt and recovery result.
- Compensation is itself verified: an uploaded image must be absent after deletion, and a copied ad must be
ARCHIVEDafter rollback.
Current enforcement boundary
Approval is not proof of execution. Confirm the receipt and verification result for the specific target in Inbox and Audit.