Errors
The result envelope, and what the common errors are telling you to do next.
Every tool returns a JSON object with an ok flag. There are no HTTP status codes to interpret at the tool
level — read the envelope.
{ "ok": false, "error": "No Google Ads account connected for this workspace." }On success:
{ "ok": true, "campaigns": [ /* … */ ] }What the error is telling you
| The error mentions… | Do this |
|---|---|
| not connected | Run the setup flow: gads_get_connect_url, then discover and import. |
a required projectId | You're using an org-scoped token — call gads_list_ad_accounts and pass a projectId. |
write scope required | Mint a write token (a read token can't call gads_propose_* or approvals). |
stale data / dataFreshness | gads_trigger_sync, wait, then re-read. Don't act on stale numbers. |
| rate limit | You hit the per-user cap. Retry after the interval — see Rate limits. |
| a policy violation | The dry-run caught an advertising-policy issue; it's recorded as failed and, for keyword adds, appealable. |
Write tools return a mode (auto_applied or queued), a riskTier, and policyReasons even on success —
so you always know whether a change went live or is waiting in Approvals.