Analyze wasted ad spend and identify campaigns losing money or underperforming.
ā ļø IMPORTANT: This tool retrieves READ-ONLY data. Safe to call multiple times.
šÆ What This Tool Does (Performance Agent - Phase 1):
< 1.0x)< target)Returns detailed analysis:
< 1.0)Target ROAS Resolution (3-tier priority):
Severity Levels:
< 0.5x (losing money severely)< 1.0x (unprofitable/breakeven)< target (profitable but underperforming)Parameters:
Execution time: 1-3 seconds (cached database query) Data source: campaign_daily_metrics table (updated nightly)
Use this tool when:
š AFTER calling this tool, help the user understand:
Wasted vs. Underperforming:
< 1.0, youāre losing money)Example:
Quick Actions (IMPORTANT ā read severity context first):
ā ļø NEVER say āpauseā for a campaign that has conversions. Say āreviewā or āreduce budgetā instead. ā ļø NEVER recommend pausing a campaign in LEARNING phase. ā ļø If ALL campaigns are LEARNING or INSUFFICIENT_DATA, tell the user their account is too new for waste analysis and recommend checking back in 2 weeks. ā ļø Consider campaign objective: brand awareness campaigns will not have ROAS data. This is normal. ā ļø When data confidence is MEDIUM or LOW, soften all recommendations and add verification prompts.
Visualization Tip: For 10+ campaigns, suggest creating a treemap visualization to show wasted spend by campaign size.
š¬ Community: For optimization discussions, visit our Discord: https://discord.gg/dH3Qt4YS
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.
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.