{"id":15219,"plugin_id":"plugin_asdk_app_6a86b53a9668819188845b69c4e4aacc","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:11:01.055Z","digest":"92c39c55f121247421c6ac2f3c34662d0e4a5d844dd28dc32df979fc584513c4","against":null,"payload":{"name":"adagnt-performance","description":"Cross-platform performance review — pull metrics from Google, Meta, LinkedIn, TikTok, Amazon, and AppLovin, compare ROAS/CPA against targets, explain anomalies, and turn findings into ranked recommendations. Use for weekly reviews, \"how are my ads doing\", or investigating a metric change.","included_files":[],"skill_md_contents":"---\nname: adagnt-performance\ndescription: Cross-platform performance review — pull metrics from Google, Meta, LinkedIn, TikTok, Amazon, and AppLovin, compare ROAS/CPA against targets, explain anomalies, and turn findings into ranked recommendations. Use for weekly reviews, \"how are my ads doing\", or investigating a metric change.\n---\n\n# AdAgnt Performance Review\n\nAnswer two questions with evidence: *is spend producing what the strategy targets?* and *what single change would improve results most?* Read-only until the user approves an action.\n\n## Step 1 — Establish the yardstick\n\nRead `STRATEGY.md` for target CPA/ROAS, monthly budget, and prior review notes in Performance History. A number is only good or bad relative to these targets. If no targets exist, ask for them (or agree on a provisional one) before judging anything.\n\nPick the window with the user: default to the last 30 days with the prior 30 as comparison. Avoid windows under 7 days — daily noise masquerades as trend.\n\n## Step 2 — Pull the data\n\nQuery every connected platform that has spend:\n\n- Google: `get_campaign_performance` (use `lookback_days` or `start_date`/`end_date`)\n- Meta: `get_meta_campaign_performance`; drill into ads with `analyze_meta_ad_performance`\n- LinkedIn: `get_linkedin_campaign_performance`; engagement detail via `get_linkedin_engagement_metrics`, creative-level via `analyze_linkedin_creative_performance`\n- TikTok: `get_tiktok_campaign_performance`; ad-level via `get_tiktok_ad_performance`\n- Amazon: `amazon_get_sp_campaigns_report`; search terms via `amazon_get_sp_search_terms_report`, Sponsored Brands via `amazon_get_sb_campaigns_report`\n- AppLovin: `applovin_get_advertiser_report`; cohort return via `applovin_get_roas_cohort_report`, creative-level via `applovin_get_creative_performance`\n\nAdd context where it helps: `get_benchmark_context` (Google vertical benchmarks), `get_campaign_targeting` and platform equivalents when targeting might explain results.\n\n## Step 3 — Normalize and compare\n\nBuild one table across platforms: spend, impressions, clicks, CTR, CPC, conversions, CPA, revenue, ROAS — per campaign, with a platform subtotal and a grand total. Then flag:\n\n- Campaigns above/below target CPA or ROAS (sorted by spend, so the biggest problems surface first)\n- Spend concentration: does the top campaign deserve its share?\n- Trend vs the prior window: what moved more than ~20%?\n- Cross-platform efficiency: cost per conversion by platform — but note attribution differences (platform-reported conversions overlap; don't sum them as truth)\n\n## Step 4 — Explain the anomalies\n\nFor any metric that moved sharply, get a causal read before recommending anything:\n\n- Google: `explain_performance_anomaly` (pass `metric`, `period_start`, `period_end`)\n- Meta: `explain_meta_anomaly` · LinkedIn: `explain_linkedin_anomaly` · TikTok: `explain_tiktok_anomaly`\n\nCheck creative fatigue when CTR decays with stable targeting: `detect_meta_creative_fatigue`, `detect_tiktok_creative_fatigue`. Verify tracking before blaming performance: a conversion cliff is often a broken tag — `audit_conversion_tracking`.\n\n## Step 5 — Recommend, ranked by expected impact\n\nPresent at most five recommendations, each with: the evidence, the action, the tool that executes it, and the expected effect. Typical shapes:\n\n1. **Reallocate budget** toward efficient campaigns — preview with `optimize_budget_allocation` (Google), `optimize_meta_budget`, `optimize_linkedin_budget`, `optimize_tiktok_budget`\n2. **Pause** a chronic underperformer — `pause_campaign` and platform variants\n3. **Refresh creative** where fatigue is detected — hand off to `adagnt-ad-copy`\n4. **Fix bidding** — `update_bid_strategy` when the strategy fights the objective\n5. **Cut waste** — if waste is a theme, run the full `adagnt-wasted-spend` audit instead of patching here\n\nEvery one of these except the preview calls writes to a live account: confirm explicitly, execute once, verify with a read tool, never auto-retry.\n\n## Step 6 — Write back what you learned\n\nAppend a dated review entry to STRATEGY.md → Performance History: window, headline numbers vs target, anomalies explained, actions taken (with IDs), and the next review date. Optionally set up continuous watching: `create_monitor` / `test_monitor` for metric alerts, `schedule_brief` for recurring reports, `generate_report_now` for a one-off.\n\n## Intelligence Layer\n\nPlatform-reported ROAS is the platform's claim, not the ledger's. If a revenue source is connected (`list_revenue_sources`), anchor Step 3 on `get_true_roas` — revenue ÷ spend with a scale/keep/fix/kill verdict per campaign — and use `get_revenue_attribution` to explain gaps between reported conversion value and actual revenue. The `adagnt-revenue` skill covers the full workflow.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}