appeeky/ua-skills

cross-channel-budget

When the user wants to allocate monthly ad budget across TikTok, Meta, ASA, and Google UAC.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/appeeky/ua-skills --skill cross-channel-budget

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Cross-Channel Budget Allocation

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

markdown
# 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

Related by task

from this repository

More skills

All skills
appeeky
Community

ads-router

Single entry point that routes paid UA, mobile app ads, ad creatives, TikTok/Meta/ASA campaigns, ROAS, MMP setup, or Spark Ads requests to the correct specialist skill. Use FIRST when the user mentions ads, TikTok ads, Meta ads, Facebook ads, Apple Search Ads, ASA, CPA, CPI, ROAS, ad creative, Spark Ads, MMP, AppsFlyer, paid UA, or "help with my ad campaign" but the right skill is not obvious. Triggers "/ua-skill", "/ads-skill", "/growth-ads", "app ads help". Skip when user explicitly invokes a

installs
1
GitHub stars
71
Updated
Aug 23
appeeky
Community

app-ads-context

When the user wants to create or update their paid growth context document with app info, ad accounts, budgets, CPI/CPA targets, LTV, and connected channels. Use when starting any paid ads project or when the user mentions "ads context", "growth brief", "my ad budget", or "target CPA". All other paid growth skills check for this file first. For organic ASO context, see app-marketing-context.

installs
1
GitHub stars
71
Updated
Aug 23
appeeky
Community

asa-negative-keywords

When the user wants to add Apple Search Ads negative keywords from search terms reports or block wasted spend. Use when the user mentions "ASA negatives", "negative keywords Apple Search Ads", "search terms waste", "block search terms ASA", or "stop wasting ASA budget". For full weekly optimization, see asa-weekly-optimization. For profitability context, see asa-roas-analysis.

installs
1
GitHub stars
71
Updated
Aug 23
appeeky
Community

campaign-profitability

When the user wants to know if their paid ads are profitable — LTV vs CPA, break-even CPI, ROAS, or margin after ad spend. Use when the user mentions "am I profitable on ads", "LTV vs CPA", "ad margin", "break even CPI", "can I scale ads", or "ROAS by channel". For subscription health baseline, see subscription-snapshot. For unified channel dashboard, see cross-channel-performance.

installs
1
GitHub stars
71
Updated
Aug 23