← Toffu for Google AdsCONTENT HISTORY

Update to Toffu for Google Ads

Snapshot Nov 3, 2026 · 06:12 UTC · version 1.0.0

Collection source: downloaded plugin package.

WHAT CHANGED

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 JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Build a new Google Ads search campaign with Toffu. Use when the user asks to launch, create or set up a search campaign. Plans the campaign, ad group, keywords and ad with the user, then stages each part as a paused proposal the user confirms.",
  "included_files": [],
  "name": "launch-search-campaign",
  "skill_md_contents": "---\nname: launch-search-campaign\ndescription: Build a new Google Ads search campaign with Toffu. Use when the user asks to launch, create or set up a search campaign. Plans the campaign, ad group, keywords and ad with the user, then stages each part as a paused proposal the user confirms.\n---\n\n# Google Ads search campaign launch\n\nUse the Toffu tools only. Never apply a change the user has not confirmed. Everything is created PAUSED.\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. Ask for what you do not have: the product or service, the landing page URL, the daily budget, the goal (sales or leads) and the target CPA or ROAS, if any.\n3. Write a plan and get the user's approval before you stage anything:\n   - Campaign: name, daily budget, bidding (MAXIMIZE_CONVERSIONS for leads, MAXIMIZE_CONVERSION_VALUE for sales).\n   - One ad group per theme, at most 3.\n   - 5 to 20 keywords per ad group, in PHRASE or EXACT match. Use BROAD only if the user asks.\n   - One responsive search ad per ad group: 8 to 15 headlines of 30 characters or fewer, 2 to 4 descriptions of 90 characters or fewer.\n4. Call `propose_create_campaign` with fields `name`, `daily_budget_micros` (budget x 1,000,000), `campaign_type` \"SEARCH\", `bidding_strategy`, `status` \"PAUSED\". Show the preview, and call `apply_change` after the user confirms. Keep the campaign id from the result.\n5. For each ad group, call `propose_create_ad_set` with `campaign_id` and fields `name`, `status` \"ENABLED\". Apply after the user confirms. Call `list_ad_sets` to get its `adGroup.resourceName`.\n6. For each ad group, call `propose_create_keyword` with fields `ad_group_resource_name`, `ad_group_name` and `keywords` `[{\"text\": \"...\", \"match_type\": \"PHRASE\"}]`. Apply after the user confirms.\n7. For each ad group, call `propose_create_ad` with fields `ad_group_resource_name`, `ad_group_name`, `headlines`, `descriptions`, `final_urls`. Apply after the user confirms.\n8. Summarize what exists now. The campaign stays PAUSED. To start it, the user confirms `propose_update_campaign` `{\"status\": \"ENABLED\"}`.\n\n## Rules\n\n- The ad groups, keywords and ads only serve when the campaign is enabled. Say so.\n- Never enable the campaign in the same step as you create it.\n- Use the account currency for the budget.\n"
}

SHA-256 of public snapshot: 5598c53249049d214741346cc7ddf63df87ac1793b9b8167b18af4cf22e1fd03