← Toffu for Google AdsCONTENT HISTORY
WHAT CHANGED
Update to Toffu for Google Ads
Snapshot Nov 3, 2026 · 06:12 UTC · version 1.0.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Toffu for Google Ads and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Find Google Ads spend that brings no return. Use when the user asks where they waste money, what to pause or cut, or which campaigns do not convert. Finds campaigns and ad groups with spend and no or weak conversions, and proposes pauses or budget cuts the user confirms.",
"included_files": [],
"name": "wasted-spend",
"skill_md_contents": "---\nname: wasted-spend\ndescription: Find Google Ads spend that brings no return. Use when the user asks where they waste money, what to pause or cut, or which campaigns do not convert. Finds campaigns and ad groups with spend and no or weak conversions, and proposes pauses or budget cuts the user confirms.\n---\n\n# Google Ads wasted spend\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 `query_campaign_performance` for the last 30 full days (end date = yesterday). Compute the account CPA (spend / conversions) and ROAS (conversion_value / spend).\n3. Call `list_campaigns` for each campaign's status and daily budget (`campaignBudget.amountMicros` / 1,000,000).\n4. Mark a campaign as waste when it is ENABLED and one of these is true:\n - It has 0 conversions, and spent more than 2x the account CPA. If the account has no conversions, use more than 10% of account spend.\n - Its ROAS is below 60% of the account ROAS, and it has at least 10% of account spend. If conversion value is missing, use CPA instead: its CPA is more than 1.7x the account CPA.\n5. Call `list_ad_sets` once. It lists the ad groups of the whole account; keep the rows whose `campaign.id` is a waste campaign, so the user sees what a pause stops.\n6. Report:\n - Total wasted spend and its share of account spend.\n - One table: campaign, spend, conversions, ROAS, the reason.\n - The amount the user saves per month if they pause each one (average daily spend x 30).\n7. For each waste campaign, propose one action:\n - **Pause** with `propose_update_campaign` `{\"status\": \"PAUSED\"}` when it has 0 conversions.\n - **Cut the budget by half** with `propose_update_campaign` `{\"daily_budget\": <new amount>}` when it converts but at a low ROAS.\n Show each preview. Call `apply_change` only after the user confirms that change.\n\n## Rules\n\n- Never pause the account's only converting campaign.\n- Brand search campaigns often have low volume but protect the brand name. Tell the user before you propose to pause one.\n- Say \"no data\" when conversion value is missing, and use the CPA rule in step 4.\n"
}SHA-256 of public snapshot: 835d3a1f8990be4301e096ff7a488f9684fca4f659c464376e37686f063a5adb