An AI recommendation is not approval to change an account. Treat analysis, a proposed action, and an executed write as three separate records. The safest first deployment is read-only: let the system find a possible improvement, but do not give it a path to spend money, alter tracking, publish creative, change audiences, or grant permissions.
When a write path is eventually justified, every action should stop at a human-readable change request. The reviewer must see the exact object, field, old value, new value, financial exposure, evidence, expiration, and rollback before anything reaches the platform. A sentence such as increase the budget on the weak campaign is not executable approval.
Give the agent one authority rung at a time
| Rung | What the system may do | Default decision |
|---|---|---|
| Observe | Read approved accounts, reports, definitions, and change history | Start here |
| Propose | Create a draft change request with evidence and an exact diff | Allow after read-only tests pass |
| Stage | Run validation or prepare a platform request without executing it | Allow only for supported, reversible actions |
| Execute | Send the approved write and capture the response | Keep off until the full control path is tested |
Do not grant broad write access merely because a system needs to read performance data. Remove unused tools and scopes. Separate the policy that decides what is allowed from the model that writes the recommendation. The agent must not be able to edit its own ceiling, approval rule, prohibited-object list, or reviewer list.
Google Ads exposes distinct read and mutate behavior. Its mutate requests identify a customer, one or more operations, and optional settings such as validate_only. Microsoft Advertising exposes account and recommendation-type inputs for auto-apply status. Those technical capabilities make the boundary concrete: if a workflow only needs analysis, it should not receive a mutation or auto-apply path.
Put every proposal inside an immutable change envelope
Create a request ID and freeze this record before review:
request ID | created time | expires time agent and version | source snapshot ID | evidence window platform | business | account | campaign or object ID action: create / update / remove field | exact old value | exact new value reason | supporting metrics | known limitations maximum financial exposure | test start | test end prohibited companion changes | required approver role rollback owner | rollback method | verification deadline
The request must identify objects by stable IDs, not only friendly names. If the source snapshot, target object, proposed value, financial ceiling, or expiration changes, invalidate the approval and create a new request. Approval of one row must not authorize adjacent rows, a later recommendation, or an account-wide setting.
Attach the evidence packet used to make the recommendation. The AI marketing report audit helps verify that source packet before it becomes a change request. A persuasive explanation with stale, incomplete, or mismatched data still fails.
Show the deterministic diff, not a summary
The review screen should state exactly what will happen:
Account: 123-456-7890 Object: Campaign 987654321 Field: daily business media ceiling Before: $200 After: $240 Effective period: November 2 through November 8 Other fields changed: none Maximum newly authorized media: $280
The platform field and the business ceiling are not always the same thing. Use the Google Ads budget ceiling guide to account for billing behavior, channel allocation, fees, and cash exposure before converting a business limit into a platform setting.
For this hypothetical seven-day approval:
Daily increase = $240 - $200 = $40 Relative increase = $40 / $200 = 20% Full seven-day media ceiling = $240 × 7 = $1,680 Maximum newly authorized media = $40 × 7 = $280
The $280 is the extra amount this approval permits under the stated internal ceilings. It is not a forecast of what the platform will bill, and it does not authorize an extension beyond seven days. If the remaining monthly business ceiling allows only $180, the change envelope must use the lower $180 limit or be rejected.
Issue an approval that cannot be stretched
A valid approval token should bind together:
- The request ID and cryptographic or stored hash of the exact diff.
- The approver's authenticated user ID and permitted role.
- Approval time, expiration time, and one-time-use status.
- The account, object IDs, fields, and maximum exposure.
- The test window, stop conditions, and rollback owner.
- The source snapshot and agent version that produced the request.
The agent cannot approve its own work. A person who lacks authority over the account or financial ceiling cannot approve it either. High-impact changes can require two roles, such as the account operator and the business owner. Reauthentication before a consequential write is useful when the surrounding session is old or the exposure is material.
Use four reviewer decisions:
| Decision | What happens next |
|---|---|
| Approve | Execute this exact request once before it expires |
| Narrow | Create a new request with less scope, time, access, or exposure |
| Return | Repair the evidence, reasoning, or rollback plan and resubmit |
| Block | Preserve the record and do not create a write path |
Silence is not approval. A queue timeout must expire the request, not auto-accept it.
Validate, execute once, and keep the receipt
Where a platform supports a validation-only request, run it after approval but before execution. Validation can catch an invalid object, field, or request shape. It cannot prove that the recommendation is profitable, lawful, on-brand, or aligned with the business.
Immediately before execution, read the current value again. If it no longer matches the approved before value, stop. This compare-before-write check prevents an old approval from overwriting a newer human or system change. Send an idempotency key or equivalent request identifier when the platform supports it, and never retry an uncertain write blindly.
Store an execution receipt beside the approval:
request ID | approval ID | attempt number started time | completed time | platform request ID exact submitted operation | response status returned resource or field value | errors verified account state | verification time change-history reference | executor identity
Google Ads Change Event can expose old and new field values, client type, and a visible user identity, but its documentation also notes reporting limits and delay. Treat platform history as independent confirmation, not as a substitute for the proposal, rationale, approver, or receipt.
Prepare rollback before the write
A reversible request includes the previous value, the exact rollback operation, the person who may trigger it, and the evidence that triggers it. Define both technical and business stop conditions. Examples include the wrong object changing, tracking breaking, spend exceeding the approved ceiling, an excluded audience appearing, a required disclosure disappearing, or qualified outcomes falling below the business's stated threshold.
Some actions are poor early automation candidates because they are hard to reverse or affect permissions, identity, privacy, billing, customer data, or measurement definitions. Keep those manual. Use the CRM-to-ad-platform boundary before any workflow changes which customer fields may leave the CRM. Use the conversion tracking change audit when the proposed action changes an event or optimization signal.
NIST's voluntary Generative AI Profile calls for defined human oversight roles, retained testing records, deactivation criteria, incident response, change management, and post-deployment monitoring. Translate that broad lifecycle guidance into one operational rule: no write without a named owner, evidence, bounded authorization, a stop mechanism, and a retained result.
Review what happened after the change
A successful API response proves that a request was accepted. It does not prove that the business result improved. At the verification deadline, compare the approved diff, receipt, current account state, financial exposure, tracking health, and mature business outcome. Use the measurement change calendar when attribution, CRM, or reporting changes affect the first trustworthy comparison date.
End the request with one outcome:
- Keep: The exact change stayed inside the envelope and met the predeclared evidence rule.
- Rollback: A stop condition fired or the approved test failed.
- Hold: Evidence is not mature, so no expansion is allowed.
- Investigate: The receipt, platform state, or business result cannot be reconciled.
Do not let a successful test silently expand authority. A larger budget, longer window, new campaign set, additional fields, or automatic execution level needs a new approval. Store overrides and rejected proposals too. They reveal where the agent, data, or policy needs work.
The useful sequence is simple: observe, propose, approve, execute, verify. Keep the first three separate from the last two until the complete path has passed representative tests, failure tests, duplicate-request tests, stale-approval tests, permission tests, and rollback drills.
If your team needs a shared change envelope, approval policy, and reporting review before an AI tool receives write access, Ocean Media's strategy and reporting service can help design the control path.
Your next step
Find a tool for your next step →Sources checked
- Google Ads API: Change objectsChecked 2026-10-24
- Google Ads API: Change EventChecked 2026-10-24
- Google Ads Help: About applying recommendations automaticallyChecked 2026-10-24
- Microsoft Advertising API: Auto-apply managementChecked 2026-10-24
- NIST: AI Risk Management Framework Generative AI ProfileChecked 2026-10-24
- Search Engine Land: 3 ways to make AI safer in a live ad accountChecked 2026-10-24
- HubSpot: How to build an AI agent from goal to live deploymentChecked 2026-10-24
For general education only. Platform details and examples can change. Verify important information before acting. Ocean Media Marketing is not responsible for decisions based solely on this resource. Suggest a correction
