Install
$ agentstack add skill-asgard-ai-platform-skills-algo-ad-budget ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Ad Budget Allocation Optimization
Overview
Budget allocation distributes a total advertising budget across campaigns to maximize overall returns. Uses the equal marginal returns principle: allocate until the marginal CPA (or marginal ROAS) is equalized across all campaigns. Handles diminishing returns and budget constraints.
When to Use
Trigger conditions:
- Distributing a fixed budget across multiple campaigns or channels
- Identifying diminishing returns and optimal spend levels per campaign
- Rebalancing budget after performance changes
When NOT to use:
- When optimizing bids within a single campaign (use bidding strategy)
- When there's only one campaign (nothing to allocate across)
Algorithm
IRON LAW: Equal Marginal Returns Principle
Optimal allocation makes the MARGINAL return of the last dollar
equal across ALL campaigns. If Campaign A's marginal CPA is $5
and Campaign B's is $15, shift budget from B to A until they equalize.
Total budget constraint: Σ budget_i = total_budget.
Phase 1: Input Validation
Collect per-campaign: historical spend, conversions, revenue at multiple spend levels. Need at least 3 data points per campaign to fit response curve. Gate: Sufficient historical data to estimate response curves.
Phase 2: Core Algorithm
- Fit response curve per campaign: conversions = f(spend). Common models: log curve, power curve, or S-curve
- Compute marginal return curve: f'(spend) for each campaign
- Allocate: use Lagrangian optimization or iterative greedy — assign next marginal dollar to campaign with highest marginal return
- Apply constraints: minimum spend floors, maximum caps, channel-specific rules
Phase 3: Verification
Check: total allocation = total budget, no campaign below floor or above cap, marginal returns approximately equal at boundaries. Gate: Allocation sums to budget, constraints satisfied.
Phase 4: Output
Return allocation table with expected performance projections.
Output Format
{
"allocation": [{"campaign": "Search-Brand", "budget": 50000, "expected_conversions": 200, "expected_cpa": 250}],
"total": {"budget": 200000, "expected_conversions": 650, "blended_cpa": 308},
"metadata": {"optimization_method": "lagrangian", "response_model": "log_curve"}
}
Examples
Sample I/O
Input: Budget: $100K, Campaigns: Search ($50K, 100 conv), Social ($30K, 60 conv), Display ($20K, 20 conv) Expected: Shift budget from Display (high marginal CPA) to Search (low marginal CPA). e.g., Search $60K, Social $30K, Display $10K.
Edge Cases
| Input | Expected | Why | |-------|----------|-----| | One campaign dominates | Most budget to winner | But maintain minimum floor for others | | All campaigns saturated | Reduce total spend | Spending more won't help | | New campaign, no data | Use minimum test budget | Need data before optimizing |
Gotchas
- Response curve extrapolation: Don't optimize beyond observed spend ranges. The curve may change shape at higher spend levels.
- Attribution overlap: Users may see ads across campaigns. Last-click attribution double-counts, inflating high-funnel campaign CPA. Use multi-touch attribution.
- Diminishing returns assumption: Not all campaigns follow smooth diminishing returns. Some have step functions (e.g., reaching a new audience segment at a spend threshold).
- Time dynamics: Response curves shift seasonally and competitively. Refit curves monthly or use rolling windows.
- Minimum viable spend: Each campaign needs enough budget to exit the learning phase. Spreading too thin means no campaign gets sufficient data.
References
- For response curve fitting methods, see
references/response-curves.md - For multi-touch attribution integration, see
references/attribution-integration.md
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: asgard-ai-platform
- Source: asgard-ai-platform/skills
- License: MIT
- Homepage: https://github.com/asgard-ai-platform
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.