Create a monitoring alert for your campaigns. Checked daily.
Supported metrics: roas, ctr, cpc, cpa, cpm, cpv, spend, conversions, impressions, clicks, cost_per_lead, conversion_rate, budget_utilization, video_views, engagement_rate
Operators: less_than, greater_than, less_than_or_equal, greater_than_or_equal, changes_by
Advanced features:
conditions array with conditions_logic: "AND" or "OR"consecutive_days: 3 to only trigger after 3 days in a rowthreshold_type: "relative" with threshold_multiplier: 1.5 to mean “50% above average”operator: "changes_by" with direction: "decrease" and threshold: 30 for “dropped 30%”campaign_ids to monitor specific campaigns onlyauto_action: "pause_campaign" or "increase_budget" with auto_action_value: 20Examples:
Simple: “Alert me if ROAS drops below 2” → metric: “roas”, operator: “less_than”, threshold: 2.0
Consecutive days: “Alert if CPA exceeds $50 for 3 days straight” → metric: “cpa”, operator: “greater_than”, threshold: 50, consecutive_days: 3
Compound AND: “Alert if CTR < 0.8% AND spend > $200”
→ conditions: [
{metric: "ctr", operator: "less_than", threshold: 0.8},
{metric: "spend", operator: "greater_than", threshold: 200}
], conditions_logic: “AND”
Relative: “Alert if CPA goes 50% above my 30-day average” → metric: “cpa”, operator: “greater_than”, threshold_type: “relative”, threshold_multiplier: 1.5, threshold_timeframe: “last_30d”
% drop: “Notify me if cost per lead drops 30% in a day” → metric: “cost_per_lead”, operator: “changes_by”, threshold: 30, direction: “decrease”, timeframe: “vs_previous_day”
IMPORTANT:
API key from https://adspirer.ai/keys. Prefix sk_live_. Treat as a secret — never commit.
Client-generated UUID to make writes idempotent. Strongly recommended for write tools. A repeat call with the same key returns the cached result instead of re-executing. Example: 550e8400-e29b-41d4-a716-446655440000
All tool arguments are wrapped in an arguments object. The fields accepted inside arguments are listed below — required fields are marked with a red asterisk.
Input for creating a monitoring alert.
Tool executed successfully. data.text carries the human-readable result (markdown-friendly). data.quota shows your current usage against the plan limit. data.structured appears when the tool emits machine-parseable structured content. data.content appears for tools that return non-text blocks (images, resources).
Returned on HTTP 200. data.text is the primary human-readable output. data.quota is always present for billable calls. data.structured is set only when the tool emits machine-parseable structured content. data.content is set only when the tool emits non-text content blocks.