How to Pass SKAN Events to Facebook (2025 Guide)
Learn how to configure SKAdNetwork events for Facebook app campaigns. Complete setup guide for SKAN 4.0 integration, conversion values, and iOS attribution.

How to Pass SKAN Events to Facebook (2025 Guide)
iOS attribution changed fundamentally with iOS 14.5. For the 75-85% of iOS users who don't opt into tracking, SKAdNetwork is your only attribution signal.
Facebook can't optimize iOS campaigns effectively without SKAN data. If SKAN isn't configured correctly, your iOS campaigns run blind—Facebook has no idea which users convert, making it impossible to improve delivery over time.
Most apps either skip SKAN implementation entirely or configure it incorrectly, leaving significant performance on the table. Here's how to set it up properly.
Understanding SKAdNetwork for Facebook
SKAdNetwork provides aggregated, anonymous attribution data without identifying individual users.
How SKAN Works
When someone installs your app from a Facebook ad:
- Apple records the install and associates it with Facebook's ad network ID
- Your app sends conversion value updates as users complete actions
- After a timer window (0-2 days for the first postback), Apple sends an attribution postback to Facebook
- Facebook receives install confirmation and a conversion value (0-63 or coarse-grain)
- Facebook uses this data to optimize future campaign delivery
The critical piece: conversion values. This 0-63 number is how you communicate user quality back to Facebook. A user who completes a purchase might map to conversion value 63, while someone who only opens the app once might map to value 1.
SKAN 4.0 Improvements
SKAN 4.0, which Meta fully activated in June 2025, introduces three postback windows instead of one:
Postback 1 (0-2 days): Fine-grain conversion values (0-63)
Postback 2 (3-7 days): Coarse conversion values (low/medium/high)
Postback 3 (8-35 days): Coarse conversion values (low/medium/high)
This extended measurement window provides better signals for apps where value events happen beyond the first 48 hours.
Setup Requirements
Before configuring SKAN events, ensure you have these prerequisites in place.
Facebook SDK 16.2.1+
Update your Facebook SDK to version 16.2.1 or later. Earlier versions don't support SKAN 4.0.
Verify your current version:
iOS (Swift):
import FBSDKCoreKit
print(Settings.sdkVersion)
If you're on an older version, update via CocoaPods or Swift Package Manager.
Events Manager Access
You need admin access to Facebook Events Manager for your app to toggle SKAN 4.0 activation and configure conversion values.
Navigate to Events Manager > App > Settings > SKAdNetwork to access SKAN configuration options.
ATT Implementation
While not technically required for SKAN, you should implement App Tracking Transparency (ATT) prompts. Users who opt in provide deterministic attribution, while those who decline fall back to SKAN.
Optimize your ATT prompt timing and messaging to maximize opt-in rates—every user who opts in gives you significantly better data quality than SKAN provides.
SKAN 4.0 Configuration
Meta requires manual activation of SKAN 4.0 in Events Manager.
Enable SKAN 4.0
In Facebook Events Manager:
- Navigate to your app
- Go to Settings > SKAdNetwork
- Toggle "SKAdNetwork 4.0" to enabled
- Allow 24 hours for the change to propagate
Important: Switching between SKAN versions takes at least 24 hours to apply and may temporarily affect campaign performance. Avoid frequent switching.
Choose Your Implementation Path
You have three options for managing SKAN with Facebook:
Option 1: Facebook SDK Only
Simplest approach. Facebook SDK automatically manages conversion values using their default schema. Requires minimal configuration but gives you less control over how events map to conversion values.
Option 2: Facebook SDK + MMP
Use an MMP (Adjust, AppsFlyer, Branch, Singular) to manage conversion values and sync them with Facebook. Provides sophisticated conversion value optimization and unified reporting across all ad networks.
If using an MMP, disable conversion value management in Facebook SDK to avoid conflicts:
Settings.shared.isAdvertiserIDCollectionEnabled = true
Settings.shared.isAutoLogAppEventsEnabled = true
Settings.shared.isSKAdNetworkReportEnabled = false // Let MMP handle SKAN
Option 3: Custom Implementation
Build your own conversion value management logic. Only recommended if you have specific requirements that MMPs don't support.
Conversion Value Mapping
Conversion values (0-63) are your primary signal for communicating user quality to Facebook.
Mapping Strategy
Define a clear mapping between user actions and conversion values:
Example for Subscription App:
- 0: Installed, no activity
- 1-10: Opened app, viewed content
- 11-20: Completed registration
- 21-30: Started free trial
- 31-50: Completed first paid session
- 51-63: Purchased subscription (higher values = higher subscription tier)
Example for E-commerce App:
- 0: Installed, no activity
- 1-10: Opened app, browsed
- 11-20: Added item to cart
- 21-40: Initiated checkout
- 41-50: Completed purchase ($0-$25)
- 51-57: Completed purchase ($25-$50)
- 58-63: Completed purchase ($50+)
The key is assigning higher values to higher-intent actions. Facebook's algorithm learns to optimize toward users likely to generate higher conversion values.
Updating Conversion Values
Update conversion values as users complete actions, not just once at install.
iOS (Swift) with Facebook SDK:
import FBSDKCoreKit
// Update conversion value when user completes registration
SKAdNetwork.updatePostbackConversionValue(20) { error in
if let error = error {
print("Error updating conversion value: \(error)")
}
}
// Update again when user makes purchase
SKAdNetwork.updatePostbackConversionValue(55) { error in
if let error = error {
print("Error updating conversion value: \(error)")
}
}
With MMP Integration:
Your MMP handles conversion value updates automatically based on event configuration. Configure event-to-value mappings in your MMP dashboard, and they'll manage the technical implementation.
Postback Window Configuration
SKAN 4.0 uses three distinct postback windows.
Window 1 (0-2 days): Fine-Grain Values
The first postback fires 0-2 days after install and includes fine-grain conversion values (0-63).
Focus on early-occurring high-value events: registration completion, first purchase, trial start. These need to happen within 48 hours to be captured in the fine-grain postback.
Window 2 (3-7 days): Coarse Values
Second postback covers days 3-7 and uses coarse conversion values (low, medium, high).
Configure thresholds in Events Manager:
- Low: Users who opened app but didn't convert
- Medium: Users who completed mid-funnel actions
- High: Users who made purchases or high-value conversions
Window 3 (8-35 days): Coarse Values
Third postback covers days 8-35 with coarse values.
Useful for apps with longer conversion cycles (B2B apps, high-ticket purchases, subscription apps with long trials).
Integration with Facebook Campaigns
Once SKAN is configured, Facebook automatically uses this data to optimize iOS campaigns.
Campaign Settings
In campaign setup, enable "iOS 14.5+ campaign" toggle under optimization settings. This allows Facebook to use SKAN data for optimization.
Without this enabled, campaigns only reach the small percentage of iOS users who opted into tracking.
Optimization Considerations
SKAN's delayed attribution (0-2 days minimum) means Facebook's learning phase takes longer for iOS campaigns compared to Android.
Expect 10-14 days for iOS campaigns to exit learning vs 7 days for Android campaigns optimizing for the same event.
Budget iOS campaigns appropriately—they need more time and budget to accumulate the data required for optimization.
Verification and Testing
Test your SKAN implementation before relying on it for campaign optimization.
Test Device Setup
Configure test devices in Facebook Events Manager under Settings > Test Devices. Add your device's IDFA.
Triggering Test Events
Install your app on a test device from a Facebook ad (or simulate this for testing). Complete the actions that should update conversion values.
Check Events Manager for test event postbacks. They should appear within a few minutes for testing, though production postbacks take 0-2 days.
Production Monitoring
Monitor SKAN postback volume in Events Manager. Compare install counts from SKAN postbacks with your internal analytics.
Expect SKAN to capture 75-85% of iOS installs (users who didn't opt into ATT). If you're seeing significantly less, investigate implementation issues.
Common Issues
Postbacks Not Appearing
Cause: Incorrect SDK version, SKAN 4.0 not enabled, or conversion value management conflicts between Facebook SDK and MMP.
Fix: Verify SDK version is 16.2.1+, confirm SKAN 4.0 is enabled in Events Manager, and ensure only one system (Facebook SDK or MMP) manages conversion values.
Conversion Values Always 0
Cause: Events not firing, conversion value updates not implemented, or timer window expiring before value updates.
Fix: Verify events fire correctly in Events Manager, implement conversion value updates in your app code, and ensure high-value events occur within 48 hours for fine-grain capture.
Low Postback Volume
Cause: Low ATT opt-in rate is expected, but very low SKAN volume suggests configuration issues.
Fix: Check that iOS 14.5+ toggle is enabled in campaigns, verify SKAN is properly initialized in app code, and confirm Apple's SKAdNetwork registration in Info.plist.
FAQs
What is SKAdNetwork and why does it matter for Facebook ads?
SKAdNetwork (SKAN) is Apple's privacy-preserving attribution framework for iOS apps. It allows Facebook to receive install and conversion data without identifying individual users. For iOS 14.5+ users who don't opt into tracking (75-85% of users), SKAN is the only way Facebook can measure and optimize campaign performance.
Should I use SKAN 3 or SKAN 4?
Use SKAN 4.0. Meta activated widespread SKAN 4.0 support in June 2025. SKAN 4.0 provides three postback windows instead of one, plus support for both fine-grain (0-63) and coarse-grain (low/medium/high) conversion values, giving Facebook better optimization signals.
Do I need an MMP to use SKAN with Facebook?
No, but it's recommended. You can use Facebook SDK's built-in SKAN support for basic functionality, but MMPs like Adjust, AppsFlyer, or Singular provide more sophisticated conversion value management, better optimization, and unified reporting across all ad networks.
How long does it take for SKAN data to reach Facebook?
The first postback fires 0-2 days after install for SKAN 4.0. Facebook receives this data and can use it for optimization, but the delayed feedback loop means iOS campaigns take longer to optimize compared to Android campaigns.
Can I change conversion value mapping after launch?
Yes, but be strategic. Changing your conversion value schema resets Facebook's optimization learning since the signal meanings have changed. Make changes during low-spend periods and allow 7-14 days for re-optimization.
SKAN implementation determines whether Facebook can optimize your iOS campaigns effectively. Configure it correctly from the start, and your iOS performance will improve steadily as Facebook's algorithm learns which users generate real value.
Related Resources

How SKAN 4.0 Works (Simple Explanation for 2025)
SKAN 4.0 introduces multiple postbacks, web-to-app attribution, and coarse conversion values. Here's what changed and what it means for iOS campaigns.

What is SKAdNetwork? (Simple Explanation for 2025)
SKAdNetwork is Apple's privacy-first attribution framework for iOS apps. Learn how SKAN measures installs without tracking individual users.

Should You Use Broad Targeting for Mobile Apps? (2025)
Learn when broad targeting works for app install campaigns and when it doesn't. Data-driven analysis of broad vs narrow targeting with current benchmarks.