{"id":78010,"plugin_id":"plugin_asdk_app_6ae1bfac9b888191ad689db2758d3836","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-03T06:12:43.249Z","digest":"610beee31650da42ae01b444611a9fc90a70a4515c4e54676a637676db8097ce","against":null,"payload":{"description":"Daily Google Ads health check with Toffu. Use when the user asks if anything is broken, why a campaign stopped, or for a status check. Finds campaigns that are enabled but do not serve, campaigns with no impressions yesterday, budget-limited campaigns and sudden conversion drops.","included_files":[],"name":"campaign-health","skill_md_contents":"---\nname: campaign-health\ndescription: Daily Google Ads health check with Toffu. Use when the user asks if anything is broken, why a campaign stopped, or for a status check. Finds campaigns that are enabled but do not serve, campaigns with no impressions yesterday, budget-limited campaigns and sudden conversion drops.\n---\n\n# Google Ads campaign health\n\nUse the Toffu tools only. Never apply a change the user has not confirmed.\n\n## Steps\n\n1. Call `get_account_context`. If several Google Ads accounts are connected, ask which one. Pass its id as `account_ids` `{\"google_ads\": \"<id>\"}` to `query_campaign_performance`, and as `account_id` to the other tools.\n2. Call `list_campaigns` for status, serving status, channel type and daily budget (`campaignBudget.amountMicros` / 1,000,000).\n3. Call `query_campaign_performance` with `time_increment` \"1\" for the last 8 full days (end date = yesterday).\n4. Flag these problems, worst first:\n   - **Not serving:** status ENABLED, but the serving status is not SERVING (for example ENDED, SUSPENDED, PENDING).\n   - **No impressions:** status ENABLED and SERVING, with 0 impressions yesterday but impressions in the 7 days before.\n   - **Budget-limited:** status ENABLED, and yesterday's spend is 90% or more of the daily budget.\n   - **Underused budget:** status ENABLED, and the 7-day average daily spend is below 70% of the daily budget.\n   - **Conversion drop:** yesterday's conversions are more than 30% below the daily average of the 7 days before, while spend is flat or up. Tell the user to check conversion tracking, because a drop with steady clicks often means a tracking problem.\n5. Call `list_ads` and list ads with status PAUSED in the campaigns that have a problem, so the user sees what is stopped.\n6. Report each problem with its campaign, the numbers and one fix. If there is no problem, say that all enabled campaigns serve.\n7. For a fix the user wants (enable, pause, new daily budget), use `propose_update_campaign`. Show the preview, and call `apply_change` only after the user confirms.\n\n## Rules\n\n- This check uses daily data up to yesterday. It cannot see hourly spend or today.\n- It cannot see ad disapprovals or policy reasons. Tell the user to check them in Google Ads when a campaign does not serve.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}