Safe Writes: preview before apply
How Safe Writes previews and confirms every change before it can touch a live ad account, and what the gateway will not do.
27 of the 185 tools change something. They are absent from the tool list on the Free plan, and refused if called anyway.
Every write previews firstLink to this section
A write tool called without confirm: true changes nothing. It returns what it would do, in the units the platform expects, and stops. The same call repeated with confirm: true applies it.
{ "customerId": "123-456-7890", "budgetId": "456", "dailyAmount": 75 }
{
"applied": false,
"action": "google_ads_update_campaign_budget",
"change": { "customer": "1234567890", "budget": "456",
"newDailyBudget": 75, "inMicros": 75000000 },
"message": "Preview only, nothing was changed."
}The preview exists because a model composes these calls. It can pick the wrong account, the wrong campaign, or the wrong order of magnitude on a budget. The preview turns an expensive mistake into a visible one.
AmountsLink to this section
You always give an amount in the account currency. The gateway converts to whatever the platform expects, and the preview shows both numbers so the conversion is auditable.
| Platform | Unit sent | 75 becomes |
|---|---|---|
| Google Ads | micro units | 75000000 |
| micro currency | 75000000 | |
| Meta | currency minor unit | 7500, or 75 on a currency with no minor unit |
| TikTok | the amount itself | 75 |
What the gateway will not doLink to this section
- Create a campaign in an active state. Creation is always PAUSED, with no option to override it.
- Delete anything. Pausing and archiving are available; deletion is not exposed.
- Duplicate a campaign, ad set or ad.
- Change targeting, bidding audiences, or creative content.
- Upload creative assets.
These are deliberate. On a hosted gateway that touches other people's accounts, those actions change spend in ways a text preview does not make obvious enough.