manage_audits_and_monitors
Start a one-off audit of one AW or FA account when asked how it is doing or what's wrong; use data_query for specific metrics, custom dates, other sources or several accounts. Or create, update or run a scheduled FA, AW or GAWA monitor: metrics, page_check or naming_convention (GAWA: metrics only).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>"
},
"name": "manage_audits_and_monitors"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Monitor name. Required for create. Up to 255 characters. | |
| ds_id | No | Data source ID. Required for create and audit; audit supports only AW or FA. For monitors, fixed at creation; on update, only the current ds_id is accepted. | |
| action | Yes | "audit" with ds_id, account_ids and optional timezone returns a run_token for read_audits_and_monitors(action='audit'). The report supports one AW or FA account and groups findings, most severe first, under seven angles: trust (whether conversion tracking can be relied on), delivery, waste, efficiency, allocation, change and upside. It does not assess ad copy, creative, landing page relevance, search term intent or why numbers moved. It is not campaign_and_resource_get health_check (one campaign) or marketing_utilities (UTM, link and page checks). "create" with name, ds_id, account_ids, config and schedule makes a new monitor; "update" with monitor_id and only the fields to change updates one; "run" with monitor_id runs a monitor now and waits for its result. If a run for this monitor and configuration is already in progress, "run" waits for that one. name, description, status and shared_with_team can be updated straight from a list result. config (including notifications), schedule and account_ids replace the stored value whole, so before changing any of them start from the monitor's current value — from read_audits_and_monitors(action='get') for the monitor, or the last create/update result. For config, call read_audits_and_monitors(action='schema') for the monitor type. | |
| config | No | Monitor check configuration. Get a worked example from `read_audits_and_monitors(action="schema", monitor_type=..., ds_id=...)`; metric and dimension ids come from `field_discovery`. Required for create; Slack webhooks must be full URLs. On update, config is not merged: pass the complete config from the monitor's most recent `read_audits_and_monitors(action="get")` or update result with the user's change applied, notifications included ([] clears them); keep `stored:…#…` references unchanged. Never build config from a list result. | |
| status | No | Whether the monitor is active. Omitted on create means enabled: the monitor starts running on its schedule straight away. | |
| schedule | No | Required for create. On update it replaces the stored schedule: pass the complete object — the schedule from `read_audits_and_monitors(action="get")` for the monitor, with the change applied. When the monitor runs. time is required for daily and weekly; day_of_week for weekly only; hourly and every6hours take neither. timezone is always required. | |
| timezone | No | IANA timezone of the audited ad account, e.g. America/New_York. Used only by action='audit'; omitted means UTC. Ask the user if the account's timezone is not known; do not guess. | |
| run_token | No | Monitor run token. Used only by action='run'. Resume waiting for a run you already started, by passing back the exact run_token from a result that was still running. Omit it to start a new run. Without the token, calling again starts a second run instead of waiting for the first. | |
| connection | No | Which connection to use, as an override — not a guess. Pass a name only if you already have one, from accounts_discovery or the user. Leave it unset otherwise: the backend picks automatically, and an unmatched name fails the call. When changing accounts of an existing monitor, pass its current connection (connection.data_source_username from get) unless the user asks to switch login; otherwise another login that reaches the same accounts may be picked. | |
| date_range | No | Period to audit. Used only by action='audit'; omitted means last_30_days. | |
| monitor_id | No | The monitor's ID, a UUID. Required for update and run. | |
| account_ids | No | Account IDs of the monitor's data source (ds_id), from accounts_discovery, as strings. Required for create monitors and start audit (audit: exactly one account). On monitors update, replaces all accounts: pass the full list from get (connection.accounts[].account_id) with your change. Up to 200 account IDs. | |
| description | No | Free-text note about what this monitor watches. Optional. Up to 1000 characters. | |
| shared_with_team | No | Whether the whole team can view and manage this monitor. Omitted on create means true. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| error | No | ||
| notes | No | ||
| success | Yes | ||
| business_context | No |