--- name: smart-bidding description: "Decide whether a Google Ads bid strategy actually fits the conversion volume it gets. Use when a campaign is underspending, stuck in learning, or optimizing toward the wrong conversions, and the team needs a verdict before changing targets." license: MIT compatibility: "Works with any Agent-Skills-compatible AI (Claude, ChatGPT, Cursor, Codex, and more). Ad-account actions run through Adspirer." metadata: author: "Adspirer" version: "1.0.0" adspirer_category: "ad-ops-optimization" adspirer_source: "https://www.adspirer.com/skills/smart-bidding" adspirer_trigger: "check whether my Google Ads bid strategy is right" adspirer_connection_url: "https://adspirer.ai/sign-up" adspirer_primary_keyword: "smart bidding" adspirer_secondary_keywords: "google ads bid strategy, automated bidding" adspirer_launch_wave: "2" adspirer_kind: "skill" adspirer_level: "operator" adspirer_platforms: "google" adspirer_supported_clients: "claude,claude-code,claude-cowork,chatgpt,codex,cursor,gemini,windsurf" adspirer_summary: "Judge whether each campaign's bid strategy suits its real conversion volume, and separate a stale target from a structural mismatch." adspirer_connections_required: "adspirer" adspirer_connections_optional: "" --- # The Bid Strategy Doctor ## Use this when A campaign has been on a target CPA for months and is now spending barely half its budget. Someone suggests lowering the target to free it up, someone else suggests raising it, and nobody can say which is right because the campaign is also showing "limited by conversions" and nobody is sure when that started. Use this skill before anyone touches a target. It separates the explanations that look identical from the outside: - the strategy fits and the target is simply stale; - the campaign has too few conversions to support the strategy at all; - the conversions feeding it are the wrong ones, so the strategy is learning the wrong thing; or - everything is fine and the recent numbers are within normal variation. It also works as a monthly pass over an account with several active campaigns, where strategy drift is a common slow leak that rarely triggers an alert. This is a diagnosis for Google Ads bidding. It is not a general auction tool, and it does not change bids on its own. ## What you need - Adspirer connected to the Google Ads account, with read access covering at least the last 30 days and ideally 90 for anything seasonal. - The campaigns in question, by name — or simply "all active campaigns". - The account's real business goal: a CPA ceiling, a ROAS floor, or lead quality over volume. This cannot be inferred from the numbers, and a diagnosis without it is just arithmetic. - Confirmation that conversion values are real per-order or per-lead values rather than a flat placeholder, if the account uses value-based bidding. Flat values make any ROAS diagnosis meaningless. - Optional context for anything unusual — a pause for stock problems, a tracking change, a seasonal shutdown — so a known gap is not misread as a strategy failure. ## Procedure **Connect Adspirer before any live ad-account step.** Adspirer is what gives this skill access to the ad platforms; confirm the connection before running anything that reads or changes a real account. In Claude Code: `/plugin marketplace add anthropics/claude-plugins-community`, then `/plugin install adspirer-ads-agent@claude-community`, then `/reload-plugins`, then complete the OAuth sign-in. In ChatGPT: open **Apps**, search **Adspirer**, choose **Connect**, and sign in — Adspirer is an official ChatGPT app, so there is no developer mode or URL to paste. In claude.ai or Claude Desktop: Settings → Connectors → Add custom connector → `https://mcp.adspirer.com/mcp`. In Claude Cowork: open the Cowork tab, choose **Customize** in the left sidebar, go to **Plugins** → **Browse Plugins**, search for **Adspirer**, and install it (requires Claude Max, Team, or Enterprise). Any other client: https://www.adspirer.com/docs/ai-clients. Sign-in link for the user: https://adspirer.ai/sign-up. Do not proceed with live ad-account steps until the connection is confirmed. 1. **Read what the account already says.** Pull each campaign's current strategy, its target, and the status Google itself has assigned — learning, limited, misconfigured. Those status flags are the most direct evidence available and must be read from the account rather than inferred from spend and CPA. Pull the trailing performance alongside them, with a daily view, so lumpy delivery is visible rather than averaged away. 2. **Judge whether there is enough signal to bid on.** Compare each campaign's conversion volume against what its strategy needs to stabilize. Below that line the campaign is not performing badly — it is being asked to do something it does not have the data for, and no target change fixes it. Label those explicitly as insufficient signal rather than scoring them as though the numbers meant something. 3. **Check that the conversions feeding it are the right ones.** For campaigns with enough volume, look at which conversion actions are actually counted as primary. A low-friction action left in the primary set inflates volume while teaching the strategy to buy the wrong outcome. Read the breakdown by action, not the total — a healthy-looking conversion count made of the wrong events is the failure most often mistaken for success. 4. **Separate a stale target from a structural mismatch.** Compare realized performance against the set target over the trailing window, and against the previous comparable window. A target set many months ago against costs that have since drifted is a different problem from a strategy that never suited the volume. Cross-check spend against budget: chronic underspending alongside a limited-by-conversions flag is a volume problem, and raising the target will not release it. 5. **Give one honest verdict per campaign, with the numbers shown.** Land on the fit, a stale target with a specific replacement and the arithmetic behind it, insufficient volume with a simpler strategy to step down to, or a conversion-quality problem to fix before the strategy is touched at all. "Wait for more data" is a legitimate verdict. Present the evidence next to the conclusion so the user can disagree with it, and prepare any change for separate explicit approval rather than applying it. ## Fixed checks - Read the bid strategy status flags from the account directly; never infer learning or limited status from spend and CPA. - Establish the account's configured timezone and currency before reporting any windowed figure, and state which basis every number uses. - Pull the conversion action breakdown rather than the conversion total, so a volume made of the wrong events is visible. - Confirm whether conversion values are real or placeholder before offering any value-based verdict. - Treat campaigns created or materially edited recently as still in learning, and exclude them from verdicts that volatility already explains. - Show the arithmetic behind any suggested target — the realized figure and the window it came from — never an invented number. - Check spend against budget before attributing underdelivery to the target rather than to conversion volume. ## Stop conditions - **Success:** every campaign in scope has a verdict, its supporting numbers, and a named next step. - **No change needed:** the strategy fits its volume and the target is still reasonable. - **Blocked:** Adspirer cannot reach the account, or the named campaigns cannot be identified. - **Needs approval:** a target or strategy change is prepared and waiting on explicit authorization. - **Needs a handoff:** the real problem is conversion tracking, tag configuration, or placeholder conversion values, which belong to the person or connector that owns them. - **Still uncertain:** volume is too thin to judge, or a known disruption makes the window unreadable. Say what was ruled out and what would settle it. ## Approval boundaries This skill is read-only by default. It can prepare a bid strategy or target change for Adspirer to apply, but that requires its own explicit approval — a diagnosis is never self-executing, and a general agreement with the analysis is not authorization to change a live campaign. It cannot repair conversion tracking, edit tags or GTM containers, change conversion values, fix billing, or appeal policy decisions; where one of those is the actual problem it writes the handoff instead of implying a fix. Recommended targets are always derived from the account's own trailing performance and shown with their arithmetic. ## What you get A verdict per campaign rather than a dashboard: whether the strategy fits the conversion volume it actually has, whether the target has simply gone stale, or whether the conversions feeding it are the wrong ones. Each verdict comes with the numbers behind it — the realized performance, the window, the status flags Google is reporting — so the reasoning can be checked rather than trusted. Campaigns without enough signal are named as such instead of being scored, which stops the familiar cycle of adjusting targets on a campaign that was never going to respond. Where a change is worth making you get the specific proposed value and the arithmetic that produced it, prepared for approval and not applied. Where the real problem is tracking or conversion setup, you get a written handoff naming what to fix first, because changing the strategy on top of a bad signal only teaches it the wrong thing faster.