
Mapping SKAdNetwork 4.0 Values for Mobile CPA
To map SKAdNetwork 4.0 conversion values for mobile CPA campaigns effectively, performance marketers must align the 63 fine-grained values in Window 1 (0 to 48 hours) with revenue tiers or high-intent conversion funnel milestones while configuring the lockWindow feature on primary CPA actions. Across Windows 2 (3 to 7 days) and 3 (8 to 35 days), campaign managers must map coarse values (low, medium, high) to retention and monetization indicators to maintain optimization signals under Apple’s crowd anonymity tiers. This dual structure ensures ad networks receive deterministic data early enough to calculate effective CPA (eCPA) and adjust bidding algorithms without losing long-term customer lifetime value (LTV) visibility.
Key Takeaways
- Window 1 (0–48h) Strategy: Allocate fine conversion values (0–63) to non-overlapping monetization brackets or high-converting funnel actions to optimize initial eCPA and ROAS.
- LockWindow Speed Advantage: Executing
lockWindowimmediately upon achieving the target CPA conversion forces postback generation, shaving up to 24 to 48 hours off optimization feedback loops. - Coarse Value Mechanics: Windows 2 (3–7 days) and 3 (8–35 days) accept only coarse values (low, medium, high); reserve these for tracking extended free-trial conversions, renewals, or engagement depth.
- Crowd Anonymity Thresholds: Ad groups need sufficient daily install volume to meet Tier 2 or Tier 3 crowd anonymity thresholds, preventing conversion values from degrading to null or coarse outputs.
The Structural Architecture of SKAdNetwork 4.0
SKAdNetwork 4.0 (SKAN 4.0) fundamentally changed mobile performance marketing on iOS by introducing multiple measurement windows, hierarchical source identifiers, and variable data resolution governed by crowd anonymity. For media buyers accustomed to real-time, deterministic user-level attribution, adapting to SKAN 4.0 requires structuring postback schema around performance metrics like eCPA, Earnings Per Click (EPC), and early Return on Ad Spend (ROAS).
SKAN 4.0 breaks postback reporting into three distinct attribution windows:
- Window 1: 0 to 48 hours post-install. Supports fine conversion values (0–63) and coarse conversion values (low, medium, high).
- Window 2: 3 to 7 days post-install. Supports only coarse conversion values (low, medium, high).
- Window 3: 8 to 35 days post-install. Supports only coarse conversion values (low, medium, high).
In addition to multiple windows, Apple enforces crowd anonymity tiers based on install volume per source identifier (formerly campaign ID). If an ad creative or campaign fails to deliver enough installs within a specific timeframe, Apple suppresses fine conversion values and replaces them with coarse values or null outputs. Consequently, setting up conversion schema requires a programmatic approach that balances granular optimization needs with Apple's privacy thresholds.
Window 1 Scheme Design: Fine Conversion Values (0–63)
Window 1 provides the highest data resolution available in SKAN 4.0. You have 64 distinct integer values (0 to 63) to communicate user quality to advertising channels like Meta, TikTok, AppLovin, and Google. For CPA and performance campaigns, choosing how to structure these 64 values dictates how ad network programmatic algorithms optimize bids.
There are two primary models for mapping fine conversion values in Window 1: Revenue-Bucket Mapping and Event-Sequence Mapping.
1. Revenue-Bucket Mapping (ROAS & High-AOV Campaigns)
If your campaign operates on variable payouts or in-app purchase (IAP) revenue, map the 63 values to direct monetization ranges. Value 0 is reserved for default app opens without purchase activity. Values 1 through 63 represent ascending, non-overlapping gross revenue buckets within the first 48 hours.
For example, if your average target CPA is $35 and average order value (AOV) is $50, you might structure your schema like this:
- CV 1: $0.01 – $4.99 (Low-intent microtransaction)
- CV 2–10: $5.00 – $24.99 ($2.50 increments)
- CV 11–30: $25.00 – $74.99 ($2.50 increments, covering target CPA range)
- CV 31–50: $75.00 – $174.99 ($5.00 increments)
- CV 51–63: $175.00+ (Whale conversions and high-LTV users)
This distribution provides granular feedback to network bidding models around your target payout. Before finalizing these boundaries, calculate your max allowable CPA based on LTV to ensure that bid scaling models match true gross profit margins.
2. Event-Sequence Mapping (Lead Gen, Subscriptions & Mid-Funnel CPA)
For CPA offers triggered by non-monetary goals—such as form submissions, account creation, or trial starts—convert the 63 fine values into a bitwise or sequential funnel map. Assign values based on conversion progression and intent speed.
Consider a subscription app where the publisher receives a payout upon trial start:
- CV 1–10: Onboarding progress (e.g., registration completed, tutorial finished).
- CV 11–20: Engagement frequency (e.g., 3 session opens within 24 hours).
- CV 21–40: Trial start initialized (categorized by plan selection or trial length).
- CV 41–63: Direct instant purchase or immediate paid upgrade.
By mapping early engagement along with conversion milestones, networks receive programmatic signals even when users do not complete the payable CPA action within the 48-hour Window 1 timeframe.
Utilizing LockWindow to Reduce Attribution Latency
One of the largest hurdles in SKAN 3.0 was the mandatory delay: postbacks were held for 24 to 48 hours after a conversion value timer expired, creating a 72+ hour delay before performance data reached ad networks. SKAN 4.0 solves this with the lockWindow parameter.
When an app registers a critical CPA event—such as a user starting a paid subscription or making an initial deposit—you can explicitly lock the measurement window. Locking the window stops further tracking for that specific measurement period and instructs the OS to finalize the postback. The postback is then sent after a random delay of 24 to 48 hours from the lock timestamp, rather than waiting for the entire window to elapse.
For CPA media buyers, setting lockWindow properly dramatically speeds up campaign optimization:
// Example JavaScript SKAdNetwork Lock Window Call
const conversionValue = 42; // Corresponds to target CPA conversion milestone
const coarseValue = 'high';
if (userCompletedCPATarget) {
StoreKit.updatePostbackConversionValue(
conversionValue,
coarseValue,
true // lockWindow set to true
).then(() => {
console.log("SKAN 4.0 postback locked successfully.");
});
}
However, locking early comes with a tradeoff. If a user completes a $10 registration on hour 6 and you lock Window 1, but that same user spends $200 on hour 30, that additional $200 is lost to SKAN reporting. Use early window locking strictly when your primary conversion event is binary or represents the highest achievable value tier within that 48-hour period.
To prevent data loss between SKAN, Mobile Measurement Partners (MMPs), and internal analytics, ensure your mobile app architecture incorporates a robust server-to-server postback tracking setup alongside StoreKit API integrations.
Windows 2 and 3: Strategic Coarse Value Mapping
Windows 2 (3 to 7 days) and 3 (8 to 35 days) do not support fine conversion values. They accept only three coarse string values: low, medium, and high (or null if crowd anonymity criteria are not met).
Because these windows cover extended timeframes, they are ideal for capturing subscription conversions, retention, and subscription renewals after standard 7-day free trials.
| Coarse Value | Window 2 Mapping (Days 3–7) | Window 3 Mapping (Days 8–35) |
|---|---|---|
When mapping coarse values in Windows 2 and 3, apply lockWindow on the highest value state (e.g., when a user converts from trial to paid). This minimizes the postback delay in later windows, reducing attribution latency from up to 35 days down to roughly 9–10 days post-install.
Navigating Crowd Anonymity Tiers and Null Values
Apple uses crowd anonymity to safeguard user identity by dynamically altering postback payload resolution based on install volume. Apple evaluates install density per source identifier and categorizes campaigns into four tiers (0, 1, 2, and 3):
- Tier 0 (Lowest volume): Returns a 2-digit source ID. Conversion values in all windows are returned as
null. - Tier 1: Returns a 2-digit source ID. Window 1 returns a coarse value; Windows 2 and 3 return
null. - Tier 2: Returns a 3-digit source ID. Window 1 returns fine conversion values; Windows 2 and 3 return coarse values.
- Tier 3 (Highest volume): Returns a 4-digit source ID. Window 1 returns fine conversion values; Windows 2 and 3 return coarse values.
To avoid receiving useless null postbacks or degraded coarse values in Window 1, avoid over-segmenting your ad campaigns. Consolidate budgets into fewer, higher-volume ad sets or campaigns. A media buyer managing iOS campaigns should aim for at least 100 to 1,000 installs per campaign ID per day depending on channel mechanics.
If you observe high rates of missing postback values despite high install counts, consider auditing S2S postback discrepancies across your ad network parameters and MMP setup to ensure conversion signals aren't dropping before reaching your server logs.
frequently Asked Questions
What is the main difference between fine and coarse conversion values in SKAN 4.0?
Fine conversion values are 6-bit integers ranging from 0 to 63, allowing for up to 64 precise mapping tiers during Window 1 (0–48 hours). Coarse conversion values offer only three distinct string levels—low, medium, and high—and are used in Windows 2 and 3, or in Window 1 when campaign install volume is too low to meet high crowd anonymity thresholds.
How does lockWindow affect campaign postback timing?
Applying the lockWindow property to a conversion update stops further tracking for that specific measurement window and forces the operating system to send the postback. The postback is delivered after a random delay of 24 to 48 hours from the time of the lock, cutting days off optimization feedback loops for high-value CPA conversions.
Why am I receiving null conversion values in my SKAN 4.0 postbacks?
Null conversion values occur primarily when an ad campaign fails to achieve Apple's required crowd anonymity thresholds (Tier 0). If your campaign or source identifier delivers too few installs in a given window, Apple suppresses conversion data to protect user privacy. Consolidating budget into fewer, higher-volume campaigns helps eliminate null outputs.
Can I update conversion values in Window 2 and Window 3?
Yes, SKAN 4.0 allows postback tracking in Window 2 (Days 3–7) and Window 3 (Days 8–35). However, these windows only accept coarse conversion values (low, medium, high), and values cannot decrease; they can only stay the same or increase in rank as user engagement progresses.