Meta (Facebook and Instagram) remains the single most important paid channel for mobile app growth. At RocketShip HQ, we've managed over $100M in mobile ad spend, and Meta consistently accounts for the largest share of that budget. This guide walks you through every step of running Meta ads for mobile apps, from SDK setup to creative production to scaling. Whether you're spending $500/day or $50,000/day, the fundamentals here will help you build campaigns that actually deliver profitable installs and downstream revenue. You'll learn the exact campaign structures, bidding strategies, and targeting approaches we use across dozens of apps.
Prerequisites: Before you begin, you need: (1) a published app on the App Store or Google Play, (2) a Meta Business Manager account with an ad account, (3) the Facebook SDK integrated in your app (or a Mobile Measurement Partner like AppsFlyer or Adjust that posts back events to Meta), (4) at least one optimization event defined (install, purchase, subscription, etc.), and (5) a monthly budget of at least $3,000 to generate enough conversion data for algorithmic learning.
Page Contents
- Step 1: Set Up Your Facebook SDK and Optimization Events Correctly
- Step 2: Choose the Right Campaign Objective and Optimization Goal
- Step 3: Structure Your Campaigns for Algorithmic Efficiency
- Step 4: Configure Targeting: Go Broad First, Then Layer
- Step 5: Select the Right Bidding Strategy and Budget
- Step 6: Build High-Performing Ad Creatives
- Step 7: Launch, Monitor, and Optimize Through the Learning Phase
- Step 8: Scale and Diversify Once You've Found Product-Channel Fit
- Common Mistakes to Avoid
- Related Reading
Step 1: Set Up Your Facebook SDK and Optimization Events Correctly
Everything in Meta ads for apps starts with data. If your SDK integration is broken or your events are misconfigured, no amount of creative genius or budget will save you. Install the Facebook SDK (or configure your MMP to send postbacks) and map your key funnel events: installs, registrations, trials, purchases, and any custom events that signal value.
Integrate the SDK or MMP postbacks
If you use AppsFlyer, Adjust, or Singular, configure the Meta partner integration in your MMP dashboard. Make sure you're sending all standard and custom events. If you're going SDK-direct, follow Meta's developer docs for iOS and Android. Verify events fire correctly using Meta's Event Manager diagnostics tool.
Map your optimization events to your funnel
Identify 3-5 events that represent your user funnel. For a subscription app, this might be: install > registration > trial_start > purchase. For a game: install > tutorial_complete > first_purchase. Each event should pass revenue values if applicable. Meta's value optimization (VO) campaigns require revenue data to function.
Configure iOS events for SKAdNetwork and AEM
Post-ATT, iOS campaigns rely on SKAdNetwork conversion values. Configure your conversion value schema in your MMP to capture your most important events within the first 24-72 hours. Prioritize revenue events. Meta's Aggregated Event Measurement (AEM) limits you to 8 prioritized events per domain/app, so choose carefully.
Test every single event by triggering it on a real device before you launch a single campaign. We've seen clients waste thousands of dollars on campaigns optimizing toward events that were never actually firing. Use Meta's Event Manager 'Test Events' tab with your device's advertising ID.
Step 2: Choose the Right Campaign Objective and Optimization Goal
Meta offers several campaign objectives for app advertisers, but the choice between them is more nuanced than most guides suggest. Your optimization goal directly determines which users Meta's algorithm targets, and picking the wrong one is one of the most expensive mistakes you can make. Post-ATT research across 15+ accounts has shown that even install-optimized campaigns can deliver strong downstream CPAs, so don't assume you always need to optimize further down the funnel.
Start with App Install campaigns (MAI) for new apps or new markets
Mobile App Install (MAI) campaigns optimized for installs give Meta the broadest possible audience to learn from. This is ideal when you're launching, entering a new geo, or need volume to build retargeting pools. CPIs are lower, and you'll generate the conversion volume Meta needs to learn your audience profile.
Graduate to App Event Optimization (AEO) when you have volume
AEO campaigns optimize toward a specific post-install event like 'purchase' or 'trial_start.' The catch: Meta needs roughly 128+ optimization events per week per ad set to exit learning phase effectively. If your daily budget can't support that volume, consolidate ad sets or stick with MAI. We've seen consolidation into fewer AEO ad sets dramatically improve cost per acquisition.
Use Value Optimization (VO) for mature, high-spend accounts
VO campaigns optimize for the highest predicted revenue per user, not just conversions. This requires passing accurate revenue values with your purchase events. VO typically works best at $1,000+/day spend per ad set, and only when your revenue data is clean. When it works, VO can improve ROAS by 20-40% compared to AEO.
At RocketShip HQ, we often run MAI and AEO campaigns in parallel. MAI campaigns act as prospecting engines that feed data to Meta, while AEO campaigns capture higher-intent users. Don't think of it as either/or. The blend depends on your budget and how much conversion data you're generating.
Step 3: Structure Your Campaigns for Algorithmic Efficiency
Campaign structure is where most advertisers silently bleed money. The Meta algorithm needs consolidated data to learn effectively. Every time you split audience, placement, or creative into a new ad set, you fragment the learning signal. The goal is maximum data density per ad set while still allowing you to test variables. For a deep dive into Meta campaign architecture, see our complete Meta Ads playbook for mobile apps.
Use a 2-3 campaign structure
We typically run: (1) a Broad/Prospecting campaign with 1-3 ad sets and broad targeting, (2) an Interest/Lookalike Testing campaign for audience experiments, and (3) optionally a Retargeting campaign for re-engagement. That's it. Resist the urge to create dozens of campaigns for different audiences or creatives.
Limit ad sets to 3-5 per campaign
Each ad set needs enough daily budget to generate 50+ optimization events per week (Meta's minimum for exiting learning phase). If your total daily budget is $500 and you're running 10 ad sets, none of them will learn properly. Consolidate ruthlessly.
Put 3-6 creatives per ad set
Meta's algorithm handles creative rotation well within an ad set. Loading 3-6 creatives per ad set gives the system enough variety to find winners while keeping spend concentrated. Rotate out underperformers weekly and introduce 2-3 new creatives every 1-2 weeks to combat fatigue.
A common pattern we see with early-stage apps is spreading $300/day across 4-5 channels at $60-80 each. As discussed on the Mobile User Acquisition Show, this is almost always a mistake. Concentrate on Meta first, nail your economics, then diversify.
Step 4: Configure Targeting: Go Broad First, Then Layer
The single most counterintuitive lesson in modern Meta advertising: broad targeting almost always outperforms narrow interest targeting, especially at scale. Meta's algorithm is better at finding your users than you are at defining them. We've seen this consistently across gaming, fintech, health, and subscription apps.
Start with broad targeting (age, gender, geo only)
Set your target country, age range (if your app has a natural demographic skew), and gender (if relevant). Leave interests, behaviors, and lookalikes off. This gives Meta's algorithm maximum room to explore. Broad targeting has been shown to keep CPIs as low as $0.10-$0.12 with audience sizes of 20M+ per ad set, because the algorithm has enough room to find cheap, high-quality users.
Test interest and lookalike audiences in a separate campaign
If you want to test interests or lookalikes, run them in a dedicated testing campaign with a smaller budget (10-20% of total). Compare performance against your broad ad sets over 7-14 days. In our experience, broad wins 60-70% of the time, but there are exceptions, particularly for niche B2C apps with very specific audiences.
Use exclusion audiences to avoid waste
Exclude existing purchasers, existing installers (using a custom audience from your app activity), and any users who converted in the last 30-90 days. This is the one place where narrowing your audience consistently helps performance.
Don't confuse 'broad targeting' with 'no strategy.' Broad targeting relies on your creative to do the targeting. Your ad itself acts as the filter: the right creative attracts the right users, while the algorithm learns from their behavior. This is why creative quality is the #1 lever in modern UA.
Step 5: Select the Right Bidding Strategy and Budget
Bidding strategy determines how aggressively Meta competes for impressions on your behalf. The wrong bid strategy can either starve your campaign of delivery or blow through budget on low-quality users. There's no universally 'best' option. It depends on your margin structure, volume goals, and how mature your account is.
Use Lowest Cost (auto-bid) for most campaigns
Lowest Cost tells Meta to get the most conversions for your budget without a cost cap. This is the default and works well for 80% of campaigns, especially during the learning phase. It maximizes delivery and data collection. The downside: costs can spike during competitive periods (Q4, holidays).
Use Cost Cap (tCPI/tCPA) when you have strict unit economics
Cost Cap lets you set a target CPI or CPA. Meta will try to stay at or below that target. Set your cost cap at your actual target (not lower), as setting it too low will choke delivery. We typically set cost caps 10-15% above our true breakeven to give the algorithm room to breathe, then tighten over time.
Use Minimum ROAS for VO campaigns
If you're running Value Optimization, Minimum ROAS bidding lets you set a floor return (e.g., 1.5x). Meta will only bid on users it predicts will meet that threshold. This requires excellent revenue data and enough scale. Start with a minimum ROAS 20% below your target, then increase gradually.
Set daily budgets, not lifetime budgets
Daily budgets give you more control and make performance easier to read. Set each ad set's daily budget to at least 10x your target CPA. If your target CPA is $15, budget $150/day per ad set minimum. Below that threshold, the learning phase takes too long and performance is unreliable.
When monitoring performance at scale, we use RocketShip HQ's Weighted Anomaly Scoring to prioritize which campaigns need attention. The formula weights metric changes by business impact: abs(% change) x sqrt(spend). A 15% ROAS drop on a $5K/day ad set scores much higher than a 40% drop on a $200/day ad set. This approach eliminates 70%+ of false alarms and keeps your team focused on what actually moves the needle.
Step 6: Build High-Performing Ad Creatives
Creative is the #1 performance lever in Meta ads for mobile apps. Period. After managing 10,000+ ad creatives at RocketShip HQ, we can confidently say that a great creative on broad targeting will outperform a mediocre creative on perfect targeting every single time. Your creative strategy should be systematic, not haphazard.
Prioritize video (15-30 seconds) as your primary format
Short-form video consistently outperforms static images for app install campaigns. Aim for 15-30 seconds, with the hook in the first 3 seconds. Vertical (9:16) for Stories/Reels, square (1:1) for Feed. Always include text overlays since most users watch without sound.
Test 3-5 creative concepts, not just variations
A 'concept' is a fundamentally different message or angle (e.g., social proof vs. product demo vs. problem/solution). A 'variation' is a different execution of the same concept (different background color, different CTA). Test concepts first to find winners, then iterate variations on the winning concept.
Use UGC-style creatives for authenticity
User-generated content style ads (or creator-style ads shot on phones) often outperform polished brand videos by 30-50% on CPI. They feel native to the platform and bypass ad blindness. Combine a real person talking to camera with screen recordings of your app for a powerful format.
Match creative specs to every placement
Meta serves ads across Feed (1:1 or 4:5), Stories/Reels (9:16), Audience Network, and more. Upload assets for each aspect ratio rather than relying on Meta's auto-cropping. Ads that are natively designed for Stories/Reels placements typically see 20-30% lower CPIs than cropped Feed ads shown in those placements.
The fastest way to find winning creative concepts is to study your competitors' ads in the Meta Ad Library (free tool). Look for ads that have been running for 60+ days. If they're still live, they're almost certainly profitable. Reverse-engineer the hook, structure, and messaging.
Step 7: Launch, Monitor, and Optimize Through the Learning Phase
Launching a campaign is just the beginning. The first 7 days are critical because Meta's algorithm is in 'learning phase,' gathering data to optimize delivery. How you behave during this window determines whether your campaign succeeds or fails. The cardinal rule: do not touch anything during learning phase unless performance is catastrophically bad.
Let campaigns run untouched for 5-7 days
Every significant edit (budget change >20%, audience change, bid change, new creative) resets the learning phase. Resist the urge to optimize prematurely. Evaluate performance only after each ad set has generated at least 50 optimization events.
Monitor blended metrics, not campaign-level data
Post-ATT, campaign-level attribution from Meta is often delayed or incomplete. Look at blended channel-level CPAs (total Meta spend / total installs or conversions from your MMP). This gives you a more reliable picture than campaign-level ROAS, which can fluctuate wildly due to attribution modeling.
Scale winners gradually (20% budget increases every 2-3 days)
When you find a winning ad set, increase budget by no more than 20% every 48-72 hours. Larger jumps reset learning and cause CPI spikes. If you need to scale faster, duplicate the ad set at a higher budget rather than editing the existing one.
Kill underperformers decisively
If an ad set has spent 3x your target CPA without a single conversion, turn it off. If a creative has spent its fair share of budget (equal share among all creatives in the ad set) and has a CPI 50%+ higher than the ad set average, pause it and replace it.
We track a 'learning phase exit rate' across all campaigns. Healthy accounts see 70%+ of ad sets exit learning phase successfully. If your rate is below 50%, you're likely fragmenting budget across too many ad sets or your daily budgets are too low relative to your target CPA.
Step 8: Scale and Diversify Once You've Found Product-Channel Fit
Once your Meta campaigns are consistently profitable, you have two scaling paths: vertical (spend more on Meta) and horizontal (add new channels). Both require discipline. Vertical scaling means increasing budgets on winning ad sets, launching new creative concepts to combat fatigue, and testing new geos. Horizontal scaling means expanding to Google UAC, TikTok, Apple Search Ads, or Snap. Research shows that self-attributing networks leveraging purchase behavior data consistently outperform context-based DSPs, so prioritize SANs (Google, TikTok, Snap) before exploring programmatic.
Refresh creatives every 2-4 weeks to combat fatigue
Creative fatigue is the #1 reason campaigns degrade over time. Monitor frequency and CPI trends. When frequency exceeds 3-4 on a given audience and CPI starts climbing, introduce 2-3 new creatives. Maintain a production pipeline that delivers fresh concepts on a regular cadence.
Expand to new geos with proven creative
Take your best-performing creatives from your primary market and test them in new countries. Start with English-speaking Tier 1 markets (US, UK, CA, AU), then expand to Tier 2 markets. Localize copy and voiceovers for non-English markets to improve performance by 20-40%.
Add Google UAC as your second channel
Google UAC is typically the best second channel for most apps. It accesses Search, YouTube, Play Store, and Display inventory. For UAC, playable ads and video significantly outperform static display. Start with a tCPA campaign and give it 2-3 weeks to learn before judging performance.
At RocketShip HQ, we've found that the ideal time to add a second channel is when your primary channel (usually Meta) is spending consistently at 80%+ of your total budget goal with stable unit economics. Diversifying too early dilutes data and slows optimization on your primary channel.
Common Mistakes to Avoid
- Fragmenting budget across too many ad sets: This is the single most common mistake. If you have $500/day and 10 ad sets, each one gets $50/day, which isn't enough for any of them to exit learning phase. Consolidate into 2-3 ad sets maximum and let the algorithm work with concentrated data.
- Optimizing for the wrong event: Choosing 'purchase' as your optimization event when you only get 5 purchases per week means Meta has almost no data to learn from. Match your optimization event to the volume you can realistically generate. If you can't get 50+ weekly events, optimize higher in the funnel (installs or registrations) and let your creative and app funnel do the qualifying.
- Making changes during learning phase: Every time you edit budget by more than 20%, change targeting, swap creatives, or adjust bids, the learning phase resets. We've seen advertisers reset learning phase 3-4 times in a single week, then conclude that 'Meta doesn't work for our app.' Give campaigns 5-7 days before touching anything.
- Ignoring creative as a performance lever: Many advertisers spend 90% of their time on targeting and bidding and 10% on creative. It should be the opposite. In the broad targeting era, your creative IS your targeting. A new winning creative concept can cut your CPI by 30-50% overnight, which no targeting tweak can match.
- Relying solely on Meta's reported metrics post-ATT: Meta's campaign-level ROAS and CPA numbers are modeled, not measured, especially on iOS. Always cross-reference with your MMP data and look at blended channel-level metrics. Making optimization decisions based solely on Meta's dashboard numbers can lead you to kill profitable campaigns or scale unprofitable ones.
Running Meta ads for mobile apps is both an art and a science. The science is in the structure: proper SDK setup, consolidated campaigns, correct optimization events, and disciplined bidding. The art is in the creative: finding the hooks, messages, and formats that resonate with your audience. Start with broad targeting on a single consolidated campaign, invest heavily in creative testing, respect the learning phase, and scale gradually. Once your Meta campaigns are consistently profitable, expand to new geos and channels. At RocketShip HQ, we've used this exact playbook to scale apps from $0 to millions in monthly spend. The fundamentals don't change. What changes is the creative, and that's where you should spend most of your time and energy.
Looking to scale your mobile app growth with performance creative that delivers results? Talk to RocketShip HQ to learn how our frameworks can work for your app.
Not ready yet? Get strategies and tips from the leading edge of mobile growth in a generative AI world: subscribe to our newsletter.

