Skip to main content
This tool identifies Meta Ads campaigns and placements that are wasting money by performing below target ROAS or below breakeven (ROAS < 1.0). It extends the base wasted spend detector with Meta-specific features: Returns:
  • Campaign-level wasted spend analysis (ROAS < 1.0 = actual losses)
  • Underperforming spend analysis (1.0 <= ROAS < target = opportunity cost)
  • Placement-level breakdown (which placements are wasting money: Feed, Stories, Reels, etc.)
  • Creative fatigue detection (high frequency + declining CTR)
  • Actionable recommendations for campaigns, placements, and creatives
  • Quick action items
When to use this tool:
  • “Where am I wasting money on Meta/Facebook ads?”
  • “Which Meta placements should I exclude?”
  • “Are any of my Facebook creatives fatigued?”
  • “How can I reduce wasted ad spend on Instagram?”
  • “Which Meta campaigns are losing money?”
  • “What’s my Meta ROAS by placement?”
Parameters:
  • lookback_days: 7, 30 (default), 60, 90, or 120 days
  • start_date: Optional start date (YYYY-MM-DD). Overrides lookback_days when used with end_date.
  • end_date: Optional end date (YYYY-MM-DD). Overrides lookback_days when used with start_date. ⚠️ DATE CLARIFICATION: If the user’s date request is vague or ambiguous (e.g., “March to June” without a year, “last quarter”, “recently”, “a few months ago”), ask the user to specify exact dates before calling this tool. Do not assume or guess dates.
  • target_roas: Optional override (e.g., 3.0 for 3.0x ROAS)
  • include_placements: true (default) - Include placement-level analysis
  • include_fatigue: true (default) - Include creative fatigue analysis
  • ad_account_id: Required for multi-account users. Get from list_connected_accounts
Execution time: 2-5 seconds (cached database query with analysis) Data source: campaign_daily_metrics + meta_placement_daily_metrics + meta_ad_creative_metrics tables Key definitions:
  • Wasted Spend (ROAS < 1.0): Actual money lost - for every $1 spent, getting back `<`$1
  • Underperforming (1.0 <= ROAS < target): Profitable but below target - opportunity cost
  • Creative Fatigue: Ads with frequency >4x (cold traffic) or >7x (retargeting) showing declining CTR
Meta-specific placement optimization:
  • Audience Network often has lowest ROAS - consider excluding
  • Instagram Stories/Reels typically perform differently than Feed
  • Facebook Marketplace can waste spend if not relevant
Quick Actions (IMPORTANT — read severity context first):
  • ⏳ LEARNING campaigns → Do NOT pause. Monitor for 14+ days before judging.
  • ❓ INSUFFICIENT_DATA campaigns → Need more spend before analysis is meaningful.
  • 🚨 CRITICAL campaigns (established, 14+ days, ZERO conversions) → Consider pausing
  • 🚨 CRITICAL campaigns (established, 14+ days, HAS conversions) → Review performance, verify revenue in ad platform before reducing budget
  • 🔴 HIGH severity (established, 14+ days) → Consider reducing budget by 50-70%
  • 🟡 MEDIUM → Optimize targeting, ad copy, landing pages
⚠️ 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.

OpenAPI

/api-reference/openapi.json post /api/v1/tools/analyze_meta_wasted_spend/execute