
Budget Optimization
Reallocate Google Ads spend across campaigns using portfolio-style ROAS forecasting instead of fixed per-campaign silos.
Install
npx skills add https://github.com/itallstartedwithaidea/agent-skills --skill budget-optimizationWhat is this skill?
- 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
Adoption & trust: 1 installs on skills.sh; 18 GitHub stars; 2/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
Recommended Skills
Journey fit
Grow is the primary shelf because paid acquisition optimization is how solo operators scale once the product exists; budgets and ROAS live in ongoing performance work. Analytics subphase fits modeling marginal ROAS, lag curves, and spend shifts from historical performance data.
Common Questions / 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.
SKILL.md
READMESKILL.md - Budget Optimization
# Budget Optimization Part of [Agent Skills™](https://github.com/itallstartedwithaidea/agent-skills) by [googleadsagent.ai™](https://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 ```mermaid 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: ```javascript 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 (con