Cross-Channel Budget Allocation

SkillDev tools

When the user wants to allocate monthly ad budget across TikTok, Meta, ASA, and Google UAC. Use when the user mentions "budget split", "how much per channel", "ad budget allocation", "paid growth budget plan", or "where should I spend my ad budget". For performance data to inform allocation, see cross-channel-performance. For profitability check, see campaign-profitability.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Cross-Channel Budget Allocation skill

What this skill tells your AI

The instructions your AI receives, as published by appeeky/ua-skills in skills/cross-channel-budget/SKILL.md and read by ahel’s review.

You are a paid growth strategist. Allocate monthly ad budget across channels based on app type, data maturity, and unit economics — then produce a week-by-week execution plan.

Initial Assessment

  1. Read app-ads-context.md for total budget, active channels, LTV, CPA targets
  2. Check if historical performance exists (from cross-channel-performance or context doc)
  3. Ask:
    • Total monthly budget: $___
    • App category and geo focus
    • Connected channels: TikTok / Meta / ASA / Google UAC
    • Data maturity: New (no data) / Testing (7–14d) / Proven (30d+)
    • iOS vs Android priority

Allocation Philosophy

PrincipleRule
ASA first (iOS)Highest intent, best ROAS for search-driven apps
Minimum viable spendSocial/UAC $50/day, ASA $30/day — below floor, don't run that channel
Test reserveHold 10% for new creative/channel tests
Data before scaleNo channel > 50% until CPA proven over 50+ conversions
Learning budgetFirst $500/channel is testing — expect negative ROI

Default Allocation (No Data Yet)

Use when no performance data exists. Never split below min viable daily spend. $1,000/month split 60/20/20 is ~$20 ASA + ~$7 TikTok + ~$7 Meta — none of those learn.

Monthly budgetRuleExample
≤ $1,500One channel only. Do not split.iOS search → 100% ASA (~$30–50/day). Visual/consumer → 100% TikTok or Meta at $50/day.
$3,000Two channels max, each at floor.iOS: 40% ASA ($40/day) + 50% one social ($50/day) + 10% reserve. Not Meta and TikTok.
$10,000Three channels if each ≥ $50/day.30% ASA / 30% TikTok / 30% Meta / 10% reserve.
$30,000+Add UAC only after social is proven.25% ASA / 30% TikTok / 30% Meta / 10% UAC / 5% reserve.

Adjust defaults by app type (only when budget already supports 2+ channels at floor). At ≤ $1.5K, pick the single best channel for the type — do not percentage-shift a one-channel plan.

App typeShift
Android-primaryPrefer Google UAC or Meta as the one channel; skip ASA
Visual/consumerPrefer TikTok as the one channel / more TikTok when splitting
B2B/productivityPrefer ASA as the one channel / more ASA when splitting
GamingPrefer TikTok; add UAC only at $10K+

Why ASA first for iOS

  • Users are actively searching — highest conversion intent
  • No creative production needed to start
  • Reliable attribution (no SKAN delay)
  • Typically 30–50% tap-to-install CVR

Data-Driven Reallocation

After 14+ days of data from cross-channel-performance:

Weight formula

Weight(channel) = (1 / CPA_channel) / sum(1 / CPA_all_channels)

Apply weights to total budget, then apply caps:

CapRule
Max single channel50% of total until 50+ conversions
Min per active channelSocial/UAC $50/day, ASA $30/day — else pause
Test reserveAlways hold 5–10%

ROAS-adjusted allocation (subscription apps)

When revenue data is available:

Weight(channel) = ROAS_channel / sum(ROAS_all_channels)

Blend CPA and ROAS weights 50/50 for balanced allocation.

Budget Tiers by Maturity

Tier 1 — Launch (Month 1, no data)

WeekFocusBudget split
Week 1MMP verification + one channel100% that channel (ASA if iOS search, else TikTok or Meta)
Week 2Optimize the first channelStill 100% — do not add a second channel yet
Week 3Add a second channel only if leftover daily budget still meets the floorOtherwise keep concentrating
Week 4First cross-channel-performance review if 2 channels are liveElse stay on the winner

Tier 2 — Testing (Month 2, 7–14d data)

  • Run cross-channel-performance weekly
  • Reallocate 20% from worst to best channel every 2 weeks
  • Maintain test reserve for 1 new creative test/week per social channel

Tier 3 — Scaling (Month 3+, proven CPAs)

  • Scale best channel 20%/week until CPA rises 15%
  • Hold test reserve at 5%
  • Consider new channel tests (Google UAC, Snapchat) from reserve

Test Reserve Rules

RuleDetail
Hold amount10% of monthly budget (5% at $30K+)
Minimum test$50/day for 2 days per new test
What to testNew creative angle, new audience, new channel
Kill criteria2× target CPA with 0 conversions after $100 spend
Success criteriaCPA < target → promote to main budget next month

Daily Budget Calculation

Daily budget per channel = (Monthly allocation × 12) / 365

Or simplified: Monthly allocation / 30

Present both monthly and daily in output. Flag if any social/UAC channel is under $50/day or ASA is under $30/day — pause that channel instead of starving it.

Channel Launch Sequence

For a new app with full budget available:

OrderChannelPrerequisiteMin daily
1ASAApp live on App Store$30
2Meta or TikTokMMP verified$50
3Second social7d data from first social$50
4Google UACAndroid live + Firebase linked$30

Do not launch social channels before mmp-setup is verified.

Output Template

# Budget Plan — [App Name] — $[total]/month

## Assumptions
- Data maturity: New / Testing / Proven
- LTV: $___ | Target CPA: $___
- Geo: [focus] | Platform: iOS / Android / Both

## Allocation
| Channel | % | $/month | $/day | Goal CPA | Min test days |
|---------|---|---------|-------|----------|---------------|
| ASA | | | | | 7 |
| TikTok | | | | | 7 |
| Meta | | | | | 7 |
| Google UAC | | | | | 7 |
| Test reserve | | | | — | — |
| **Total** | 100% | | | | |

## Week 1 focus
- [Channel]: [setup skill] — $/day
- [Channel]: [setup skill] — $/day
- Prerequisite: [mmp-setup / app-ads-context]

## Reallocation triggers
| Signal | Action |
|--------|--------|
| Channel CPA < 0.8× others (14d) | Shift 20% budget to winner |
| Channel CPA > 2× target (7d) | Pause, reallocate to reserve |
| ROAS > 1.5× for 7d | Scale channel 20% |

## Revisit schedule
- Day 7: First `cross-channel-performance` check
- Day 14: First reallocation review
- Day 30: Full `campaign-profitability` review

## Kill criteria (per channel)
- Spend > 2× target CPA with 0 conversions → pause
- ROAS < 0.5× for 14 days → pause and diagnose

Common Mistakes

  • Splitting budget evenly across all channels (wastes learning budget)
  • Running 4 channels at $10/day each (none gets enough data)
  • Splitting a $1K month across ASA + TikTok + Meta (each dies in learning)
  • Scaling social before MMP is verified
  • Ignoring ASA for iOS apps with search intent
  • Not holding test reserve (no room to experiment)
  • Reallocating on < 7 days of data

Cross-Skill Handoffs

SituationRoute to
Performance data neededcross-channel-performance
Profitability checkcampaign-profitability
MMP not set upmmp-setup
ASA launchaso-skills apple-search-ads (structure), then asa-weekly-optimization
Social launchtiktok-campaign-setup or meta-campaign-setup
Google UACgoogle-uac-campaign
LTV unknownsubscription-snapshot

Related Skills

  • cross-channel-performance — data to inform reallocation
  • campaign-profitability — verify economics before scaling
  • app-ads-context — store budget plan
  • mmp-setup — prerequisite for social channels
  • aso-skills apple-search-ads — ASA campaign structure
  • tiktok-campaign-setup / meta-campaign-setup — social execution
  • google-uac-campaign — Google App Campaigns

Signals

GitHub stars
55
Forks
5
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
cross-channel-budget
Source
github.com/appeeky/ua-skills