analysis_delivery_collapse_diagnose
Diagnose why campaign delivery collapsed by overlaying change history, then use elimination-ladder evidence to find the most likely cause and list open questions.
Instructions
Diagnose one collapsed campaign: overlay a change feed on its daily delivery to answer 'what changed immediately before the cliff?', then fold in whatever elimination-ladder evidence you have already gathered (ad_approval_policy, billing, budget, bid_competitiveness, targeting_and_exclusions, learning_state, campaign_flight_dates). Returns the timeline, the changes in the days before the cliff, the checks that passed, the most likely cause WITH its evidence when one is implicated, and — always — the questions that remain open plus the standing limitations of what any read API can answer. It reports most_likely_cause=null / confidence=undetermined rather than guessing: in the incident this was built from, every check passed and the cause was still never identified. Read-only; gather evidence with the per-platform tools it names in next_checks and call it again.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| rows | Yes | Day-grain delivery rows, one per (campaign, day), covering at least the last ~30 days. Any platform that can produce this shape gets the same detection: hosted connectors (tiktok_ads), official-MCP bridges (Amazon), and plugin platforms alike. | |
| as_of | No | Treat this YYYY-MM-DD date as 'today'. | |
| changes | No | Change events to overlay — from google_ads_change_history_list, STATE.json's action_log, or a platform's own feed. | |
| evidence | No | Elimination-ladder results you already gathered. Only report what you actually checked: an unsupplied step is returned as an open question, which is the honest state. | |
| platform | Yes | Platform key the rows came from. | |
| campaign_id | Yes | Which campaign in `rows` to diagnose. | |
| timeline_days | No | How many trailing days of delivery the timeline covers (default 21). | |
| change_lookback_days | No | How many days before the cliff count as 'immediately before' for changes_before_cliff (default 3). Widen it for a cause with a delayed effect — a billing hold or a policy review can stop delivery days after the change that caused it. Changes outside the window still appear on the timeline. |