Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
itallstartedwithaidea avatar

Budget Optimization

  • 66 installs
  • 31 repo stars
  • Updated April 12, 2026
  • itallstartedwithaidea/agent-skills

Reallocate Google Ads spend across campaigns using portfolio-style ROAS forecasting instead of fixed per-campaign silos.

About

budget-optimization is an Agent Skills entry from the googleadsagent.ai line that helps solo founders and small marketing teams treat a Google Ads account like a portfolio. Instead of nudging budgets campaign by campaign, the skill frames marginal ROAS, efficient frontiers, and business constraints such as minimum brand presence or geographic coverage. It ingests historical performance, seasonality, competitive context, and conversion lag so you can see which campaigns are starved for impressions versus past the point of diminishing returns. Portfolio levers—shared budgets and portfolio bid strategies—get explicit evaluation when conversion volume is too thin per campaign. You reach for it during Grow when monthly spend matters and during Validate when you are proving unit economics on a constrained test budget. It is advisory and analytical: your agent applies the skill’s methodology to your account narrative and constraints rather than silently changing live bids without your review.

  • Models the ad account as an investment portfolio, not isolated campaign budgets
  • Uses forecasting with seasonality, competitive dynamics, and conversion lag curves
  • Flags impression-share-limited vs diminishing-returns campaigns for incremental budget moves
  • Evaluates shared budgets and portfolio bid strategies to aggregate thin conversion signals

Budget Optimization by the numbers

  • 66 all-time installs (skills.sh)
  • +6 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #522 of 853 Sales & Marketing skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/itallstartedwithaidea/agent-skills --skill budget-optimization

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs66
repo stars31
Security audit2 / 3 scanners passed
Last updatedApril 12, 2026
Repositoryitallstartedwithaidea/agent-skills

What it does

Reallocate Google Ads spend across campaigns using portfolio-style ROAS forecasting instead of fixed per-campaign silos.

Files

SKILL.mdMarkdownGitHub ↗

Budget Optimization

Part of Agent Skills™ by googleadsagent.ai™

Description

The Budget Optimization skill applies AI-driven forecasting and portfolio theory to allocate advertising budgets across campaigns for maximum return. Rather than treating each campaign as an isolated budget silo, this skill models the entire account as an investment portfolio, dynamically shifting spend toward campaigns with the highest marginal return on ad spend (ROAS) while respecting business constraints like minimum brand presence and geographic coverage.

The optimization engine ingests historical performance data, seasonality patterns, competitive dynamics, and conversion lag curves to build predictive models for each campaign's response to budget changes. It identifies campaigns that are impression-share-limited (underfunded relative to demand), campaigns with diminishing returns (overfunded past the efficient frontier), and campaigns where budget shifts would yield measurable incremental conversions.

Portfolio bidding strategies are a key lever. The skill evaluates whether campaigns should use individual or shared budgets, whether portfolio bid strategies can aggregate conversion signals across thin-data campaigns, and how seasonal budget adjustments should be timed relative to demand curves. It produces actionable budget reallocation plans with expected impact projections and confidence intervals.

Use When

  • User asks to "optimize my budget" or "allocate budget better"
  • User mentions "budget pacing" or "campaigns running out of budget"
  • User wants to know "where to increase spend" or "where to cut budget"
  • User asks about "shared budgets" or "portfolio bidding"
  • User mentions "ROAS optimization" or "maximize conversions within budget"
  • User asks about "seasonal budget adjustments" or "budget planning"
  • User wants to "reduce wasted spend" or "improve budget efficiency"
  • User mentions "impression share lost to budget"

Architecture

flowchart TD
    A[Historical Performance Data] --> B[Data Preparation]
    C[Seasonality Signals] --> B
    D[Competitive Landscape] --> B

    B --> E[Campaign Response Modeling]
    E --> F[Marginal CPA Curves]
    E --> G[Impression Share Opportunity]
    E --> H[Conversion Lag Analysis]

    F --> I[Portfolio Optimizer]
    G --> I
    H --> I

    J[Business Constraints] --> I
    K[Total Budget Envelope] --> I

    I --> L{Optimization Strategy}
    L --> M[Shift to High ROAS]
    L --> N[Fund Impression Share Gaps]
    L --> O[Seasonal Pre-Allocation]
    L --> P[Portfolio Bid Strategy Setup]

    M --> Q[Budget Reallocation Plan]
    N --> Q
    O --> Q
    P --> Q

    Q --> R[Expected Impact Projection]
    Q --> S[Implementation Schedule]
    Q --> T[Monitoring Thresholds]

Implementation

Budget optimization engine with marginal return modeling:

async function optimizeBudgets(customerId, config) {
  const { totalBudget, lookbackDays = 90, constraints = {} } = config;

  const campaignData = await getCampaignPerformance(customerId, lookbackDays);
  const seasonalFactors = calculateSeasonalFactors(campaignData);
  const marginalCurves = buildMarginalReturnCurves(campaignData);

  const currentAllocation = campaignData.map(c => ({
    campaignId: c.id,
    name: c.name,
    currentBudget: c.dailyBudget,
    spend: c.avgDailySpend,
    conversions: c.avgDailyConversions,
    roas: c.conversionValue / c.cost,
    impressionShareLostBudget: c.isLostBudget,
    marginalCPA: marginalCurves[c.id].marginalCPA
  }));

  return portfolioOptimize(currentAllocation, totalBudget, constraints);
}

function buildMarginalReturnCurves(campaignData) {
  const curves = {};

  for (const campaign of campaignData) {
    const dailyData = campaign.dailyMetrics.sort((a, b) => a.cost - b.cost);
    const costBuckets = createCostBuckets(dailyData, 10);

    curves[campaign.id] = {
      marginalCPA: calculateMarginalCPA(costBuckets),
      saturationPoint: findSaturationPoint(costBuckets),
      elasticity: calculateBudgetElasticity(costBuckets)
    };
  }

  return curves;
}

function portfolioOptimize(campaigns, totalBudget, constraints) {
  const { minBrandSpend = 0, geoMinimums = {}, maxShift = 0.3 } = constraints;

  let remainingBudget = totalBudget;
  const allocations = [];

  const constrainedCampaigns = applyMinimumConstraints(campaigns, constraints);
  remainingBudget -= constrainedCampaigns.reduce((sum, c) => sum + c.allocatedBudget, 0);

  const flexibleCampaigns = campaigns.filter(c =>
    !constrainedCampaigns.find(cc => cc.campaignId === c.campaignId)
  );

  const sorted = flexibleCampaigns.sort((a, b) => a.marginalCPA - b.marginalCPA);

  for (const campaign of sorted) {
    const maxBudget = campaign.currentBudget * (1 + maxShift);
    const optimalBudget = Math.min(
      calculateOptimalBudget(campaign),
      maxBudget,
      remainingBudget
    );
    allocations.push({ ...campaign, newBudget: optimalBudget });
    remainingBudget -= optimalBudget;
  }

  return { allocations: [...constrainedCampaigns, ...allocations], unallocated: remainingBudget };
}

Seasonal budget adjustment planner:

function planSeasonalAdjustments(campaignData, forecastWindow = 90) {
  const seasonalPatterns = detectSeasonality(campaignData, { minHistoryDays: 365 });

  return seasonalPatterns.map(pattern => ({
    campaignId: pattern.campaignId,
    upcomingPeaks: pattern.peaks.filter(p => p.daysAway <= forecastWindow),
    recommendedPreBudgetIncrease: pattern.peaks.map(peak => ({
      startDate: subtractDays(peak.date, 7),
      endDate: addDays(peak.date, 3),
      budgetMultiplier: peak.historicalLift,
      confidence: peak.confidence
    })),
    lowSeasons: pattern.troughs.filter(t => t.daysAway <= forecastWindow).map(trough => ({
      startDate: trough.startDate,
      endDate: trough.endDate,
      budgetMultiplier: trough.historicalDrop,
      reallocationTarget: findBestAlternative(campaignData, trough)
    }))
  }));
}

Integration with Buddy™ Agent

Budget Optimization is the strategic resource allocation layer within Buddy™ Agent. The platform continuously monitors campaign pacing and triggers budget reallocation recommendations when it detects campaigns consistently hitting budget caps while others underspend. Buddy™ presents these recommendations with clear before/after projections.

Buddy™ integrates budget optimization with its seasonal awareness engine, automatically proposing budget increases ahead of known demand peaks (Black Friday, industry events, seasonal trends) and suggesting reductions during historically low-performing periods. Users receive proactive budget adjustment notifications with one-click approval.

The skill connects with the Conversion Tracking skill to ensure budget decisions are based on accurate attribution data, and coordinates with the Quality Score Optimization skill to prevent budget allocation toward campaigns with structural quality issues that would waste increased spend.

Best Practices

1. Never optimize budgets without first verifying conversion tracking accuracy 2. Use a 90-day lookback minimum to capture enough data for reliable marginal return curves 3. Limit budget shifts to 20-30% per adjustment period to avoid algorithmic disruption 4. Set minimum spend constraints for brand campaigns regardless of ROAS ranking 5. Pre-load budgets 5-7 days before seasonal peaks to allow smart bidding to adjust 6. Monitor impression share lost to budget as the primary signal for underfunded campaigns 7. Consolidate campaigns with under 15 monthly conversions before optimizing budgets 8. Use shared budgets for campaigns targeting the same funnel stage with similar CPAs 9. Account for conversion lag when evaluating recent budget changes 10. Review portfolio bid strategy performance monthly and adjust target metrics accordingly

Platform Compatibility

PlatformSupported
Claude Code
Cursor
Codex
Gemini

Related Skills

  • Conversion Tracking - Budget decisions must be based on accurate attribution data
  • Quality Score Optimization - Prevents budget allocation toward campaigns with structural quality issues
  • Competitor Analysis - Competitive pressure signals justify budget defense or reallocation
  • Token Optimization - Applies portfolio optimization principles to AI cost management

Keywords

budget optimization, budget allocation, google ads budget, campaign budget, shared budgets, portfolio bidding, ROAS optimization, budget pacing, seasonal budgets, impression share budget, budget forecasting, media planning, spend optimization, cost efficiency, budget management

---

© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License

Related skills

FAQ

Is Budget Optimization safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Sales & Marketinglifecyclecontent

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.