Best 5 SKAN 4.0 Configuration Strategies for Different App Types

The reluctant pantry manager.
Lakshith DineshChristmas Hat

Lakshith Dinesh

Reading: 1 min

Updated on: Jan 30, 2026

Your growth lead just told you that iOS attribution stopped working properly three weeks ago. Campaign-level data disappeared. Meta's iOS ROAS dropped 40% overnight, but your MMP shows roughly the same performance. When you ask what changed, someone mentions "Apple updated something called SKAN."

You're not alone. After iOS 14.5 killed IDFA-based attribution in 2021, Apple introduced SKAdNetwork (SKAN) as the privacy-compliant alternative. SKAN 4.0, released in 2023, added new capabilities but also new complexity. Most marketers set it up once using default configurations and never revisit it.

The problem: default configurations were built for generic app installs, not your specific business model. An eCommerce app optimising for purchase value needs a completely different SKAN configuration than a subscription app optimising for trial conversions or a gaming app optimising for level progression and in-app purchases.

This guide provides five vertical-specific SKAN 4.0 configuration strategies with practical conversion value mapping examples. Implement the right configuration for your app type, and you'll get usable iOS attribution data within 7 days instead of generic install counts.

SKAN 4.0 Complexity: Why One-Size-Fits-All Configs Fail

SKAN 4.0 provides 64 possible conversion values (0-63) to encode user behaviour during an attribution window. These values get sent back to ad networks through postbacks, helping algorithms optimise toward quality users.

The challenge: you need to encode multiple dimensions of user quality into a single number.

What most apps try to encode:

  • Revenue amount (for eCommerce and in-app purchases)

  • Subscription tier (for subscription apps)

  • Level progression (for games)

  • Activation milestones (account creation, KYC completion, first transaction)

  • Engagement depth (session count, feature usage)

  • Time-to-conversion (how quickly users complete valuable actions)

The constraint: You only get 64 values, and you need to decide which signals matter most for your business model.

Default SKAN configurations typically encode a single metric (often revenue or a basic milestone). This works for simple apps with one primary conversion event, but it breaks for apps with multiple monetisation paths or complex user journeys.

Across SKAN audits for apps spending ₹5-20 lakh monthly on iOS campaigns, we consistently see 40-60% of teams using default configurations that don't match their actual optimisation goals. The result: ad networks receive weak quality signals and optimise toward install volume instead of valuable users.

Understanding Coarse vs Fine Conversion Values

SKAN 4.0 introduced two types of conversion values:

Fine Conversion Values

Fine conversion values provide 64 possible values (0-63) with detailed user behaviour encoding. You receive fine conversion values when:

  • The campaign generated enough conversions to preserve user privacy (Apple's crowd anonymity threshold)

  • The source app (where ad was shown) has sufficient active users

Fine values let you encode detailed quality signals like specific purchase amounts, subscription tiers, or level progression paths.

Example fine value mapping for eCommerce:

  • Values 0-9: No purchase

  • Values 10-29: Purchase ₹100-₹999

  • Values 30-49: Purchase ₹1000-₹4999

  • Values 50-63: Purchase ₹5000+

Coarse Conversion Values

Coarse conversion values provide only 3 possible values: low, medium, high. You receive coarse values when:

  • Campaign volume is too small for crowd anonymity

  • The source app has limited active users

  • Apple's privacy thresholds weren't met

Coarse values force you to group users into broad quality buckets.

Example coarse value mapping:

  • Low: No purchase or engagement

  • Medium: Completed profile, browsing behaviour

  • High: Made purchase or started subscription

Configuration Strategy

Configure both fine and coarse mappings. Small campaigns and niche placements will return coarse values, while scaled campaigns on major apps return fine values. Without proper coarse mapping, you'll receive "null" values that provide zero optimisation signal.

Strategy #1: E-Commerce Focus (Purchase Value Brackets)

Business Context

E-commerce apps monetise through product purchases with varying order values. You need to distinguish users who make large purchases from users who make small purchases or browse without buying.

Conversion Value Allocation

Fine Value Mapping (64 values):

  • Values 0-4 (No purchase):

    • 0: Installed, never opened app

    • 1: Opened app, no product viewed

    • 2: Viewed 1-5 products

    • 3: Viewed 6-20 products

    • 4: Added to cart, no purchase

  • Values 5-63 (Purchase brackets):

    • 5-14: ₹1-₹499

    • 15-24: ₹500-₹999

    • 25-34: ₹1000-₹1999

    • 35-44: ₹2000-₹3999

    • 45-54: ₹4000-₹7999

    • 55-63: ₹8000+

Within each bracket, use sub-values to encode timing:

  • First value in bracket: Purchase within 6 hours

  • Middle values: Purchase within 24 hours

  • Last value in bracket: Purchase within 72 hours

Coarse Value Mapping:

  • Low: No purchase, minimal browsing

  • Medium: Added to cart or viewed 10+ products

  • High: Made any purchase

Why This Configuration Works

This setup helps Meta and Google identify:

  1. High-value purchasers (values 55-63) for bid optimisation

  2. Fast purchasers (early values in each bracket) for urgency-driven creative

  3. Browse-but-don't-buy users (values 2-4) for retargeting exclusion

Without purchase brackets, a ₹100 purchase and a ₹5000 purchase look identical to ad algorithms.

Implementation Example

// iOS SDK Implementation
func updateConversionValue(for purchase: Purchase) {
    let valueMapping: Int
    
    let hoursFromInstall = purchase.timestamp.timeIntervalSince(installDate) / 3600
    let timingOffset: Int
    
    if hoursFromInstall <= 6 {
        timingOffset = 0
    } else if hoursFromInstall <= 24 {
        timingOffset = 3
    } else {
        timingOffset = 6
    }
    
    switch purchase.amount {
    case 0..<500:
        valueMapping = 5 + timingOffset
    case 500..<1000:
        valueMapping = 15 + timingOffset
    case 1000..<2000:
        valueMapping = 25 + timingOffset
    case 2000..<4000:
        valueMapping = 35 + timingOffset
    case 4000..<8000:
        valueMapping = 45 + timingOffset
    default:
        valueMapping = 55 + timingOffset
    }
    
    SKAdNetwork.updatePostbackConversionValue(valueMapping, coarseValue: .high)
}

Strategy #2: Gaming Focus (Level Progression + IAP Signals)

Business Context

Mobile games monetise through in-app purchases and ads, but player retention depends on progression through levels. You need to identify players who progress quickly (high engagement) and convert to payers (high revenue).

Conversion Value Allocation

Fine Value Mapping (64 values):

  • Values 0-9 (Tutorial and early game):

    • 0: Installed, tutorial not started

    • 1: Tutorial started, not completed

    • 2: Tutorial completed

    • 3: Level 1 completed

    • 4: Level 2 completed

    • 5: Level 3 completed

    • 6-9: Levels 4-7 completed

  • Values 10-29 (Mid-game progression, no IAP):

    • 10-19: Levels 8-17 (1 value per level)

    • 20-29: Levels 18-27

  • Values 30-63 (IAP conversion):

    • 30-39: Made first IAP ₹50-₹199

    • 40-49: Made first IAP ₹200-₹499

    • 50-59: Made first IAP ₹500-₹999

    • 60-63: Made first IAP ₹1000+

Within IAP brackets, use sub-values to encode level at first purchase:

  • First values: Purchased before level 5 (whales)

  • Middle values: Purchased levels 5-10

  • Last values: Purchased after level 10

Coarse Value Mapping:

  • Low: Tutorial not completed or churned before level 3

  • Medium: Reached level 5+, no purchase

  • High: Made any in-app purchase

Why This Configuration Works

This setup helps ad networks:

  1. Find engaged players who progress quickly through levels

  2. Identify early spenders (whales who buy before level 5)

  3. Distinguish hardcore players (level 20+) from casual players

  4. Optimise toward players who both progress AND monetise

Attribution Window Recommendation

Use a 3-day attribution window for gaming. Most players who will monetise make their first IAP within 72 hours. Extending to 7 days adds minimal incremental conversions while delaying postback receipt.

Strategy #3: Subscription Focus (Trial Start + Conversion Events)

Business Context

Subscription apps (fitness, productivity, entertainment, education) monetise through recurring subscriptions, often starting with free trials. You need to distinguish users who start trials from users who convert to paying subscribers.

Conversion Value Allocation

Fine Value Mapping (64 values):

  • Values 0-9 (Pre-trial engagement):

    • 0: Installed, never opened

    • 1: Opened app, no account created

    • 2: Account created, no content viewed

    • 3: Viewed 1-3 pieces of content

    • 4: Viewed 4-10 pieces of content

    • 5-9: Active 2-6 days without trial

  • Values 10-29 (Trial started, not converted):

    • 10: Trial started, 0 days of usage

    • 11-17: Trial active, used 1-7 days

    • 18-24: Trial ended, no conversion

    • 25-29: Trial cancelled mid-period

  • Values 30-63 (Paid conversion):

    • 30-39: Monthly subscription started

    • 40-49: Quarterly subscription started

    • 50-63: Annual subscription started

Within paid conversion brackets, encode trial usage intensity:

  • First values: Converted after 1-2 trial days (high intent)

  • Middle values: Converted mid-trial (3-5 days)

  • Last values: Converted on last trial day (price-sensitive)

Coarse Value Mapping:

  • Low: No trial started, minimal engagement

  • Medium: Trial started, not converted

  • High: Converted to paid subscription

Why This Configuration Works

This setup reveals:

  1. High-intent users who convert early in trials (target similar audiences)

  2. Trial abandonment patterns (users who start trials but don't engage)

  3. Subscription tier preferences (monthly vs annual converters)

  4. Free tier quality (users who engage without trials indicate product-market fit)

Without trial versus paid distinction, ad networks optimise toward free trial starts instead of paying subscribers, inflating CAC.

Implementation Consideration

Subscription apps should use 7-day attribution windows minimum, extending to 14 days for annual subscription optimisation. Many users explore the trial period before converting on days 5-7.

Strategy #4: Fintech Focus (Account Activation + Transaction Milestones)

Business Context

Fintech apps monetise through transaction fees, lending interest, or subscription plans. Activation requires KYC completion and regulatory compliance. You need to identify users who complete KYC and make meaningful transactions, not just curious browsers.

Conversion Value Allocation

Fine Value Mapping (64 values):

  • Values 0-9 (Pre-KYC exploration):

    • 0: Installed, never opened

    • 1: Opened app, no account started

    • 2: Started account creation, not completed

    • 3: Account created, KYC not started

    • 4: KYC started, documents not uploaded

    • 5-9: KYC in review (waiting for verification)

  • Values 10-29 (KYC complete, transaction stages):

    • 10: KYC approved, no funding

    • 11: Added payment method

    • 12: Funded account ₹1-₹999

    • 13-17: Funded account ₹1000-₹9999 (5 brackets)

    • 18-24: Funded account ₹10,000+

    • 25-29: Account linked, no transaction

  • Values 30-63 (Transaction completion):

    • 30-39: First transaction ₹1-₹999

    • 40-49: First transaction ₹1000-₹4999

    • 50-59: First transaction ₹5000-₹19,999

    • 60-63: First transaction ₹20,000+

Within transaction brackets, encode speed:

  • Early values: Transaction within 24 hours of KYC approval (high intent)

  • Middle values: Transaction within 3 days

  • Late values: Transaction within 7 days

Coarse Value Mapping:

  • Low: KYC not completed

  • Medium: KYC complete, account funded, no transaction

  • High: Completed first transaction

Why This Configuration Works

Fintech user acquisition is expensive (₹800-₹3000 per install typical). This configuration helps networks:

  1. Avoid KYC drop-off users (35-50% of installs fail KYC)

  2. Find fast transactors (users who transact within 24 hours have 4-6× higher LTV)

  3. Identify high-value users (transaction size predicts repeat usage)

  4. Distinguish browsers from doers (many users explore without funding accounts)

Without KYC and transaction encoding, a user who installs and browses looks identical to a user who installs, completes KYC, funds their account, and makes transactions.

Compliance Note

Ensure your SKAN implementation doesn't leak personally identifiable information (PII) through conversion value timing or amounts. Use bracketed ranges, not exact transaction values.

Strategy #5: Lead Gen Focus (Form Completion + Quality Signals)

Business Context

Lead generation apps (real estate, insurance, loans, automotive, B2B services) monetise by collecting qualified leads for follow-up. Not all leads are equal. A submitted form with fake contact info or unrealistic requirements has zero value.

Conversion Value Allocation

Fine Value Mapping (64 values):

  • Values 0-9 (Pre-lead engagement):

    • 0: Installed, never opened

    • 1: Opened app, browsed homepage

    • 2: Viewed 1-3 listings/options

    • 3: Viewed 4-10 listings/options

    • 4: Used search or filters

    • 5: Saved/bookmarked items

    • 6-9: Engaged 2-5+ sessions, no form

  • Values 10-29 (Form engagement, not submitted):

    • 10: Opened lead form, not started

    • 11: Started form, < 25% complete

    • 12: Form 25-50% complete

    • 13: Form 50-75% complete

    • 14: Form 75-99% complete

    • 15-19: Form completed but validation failed

    • 20-29: Form abandonment at different steps

  • Values 30-63 (Form submitted + quality signals):

    • 30-39: Form submitted, minimal engagement (1 session)

    • 40-49: Form submitted, moderate engagement (2-3 sessions)

    • 50-63: Form submitted, high engagement (4+ sessions, multiple searches, bookmarks)

Within submission brackets, encode verification signals:

  • Early values: Email verified, phone verified

  • Middle values: Email verified only

  • Late values: No verification completed

Coarse Value Mapping:

  • Low: No form started or high abandonment

  • Medium: Form started, significant progress, not submitted

  • High: Form submitted with verification

Why This Configuration Works

Lead gen economics depend on lead quality, not lead volume. This configuration helps identify:

  1. High-intent leads (multiple sessions before submitting = serious buyers)

  2. Form friction points (where users abandon during completion)

  3. Verification completion (verified leads convert 3-5× better than unverified)

  4. Low-quality clicks (users who submit forms in single session with no prior engagement often provide fake info)

Without quality encoding, a user who rage-submits a form with fake data to get rid of your app looks identical to a serious buyer who researched for 3 days before submitting.

Implementation Tip

For lead gen apps, consider using 7-day attribution windows. Serious buyers often research over multiple days before submitting contact forms.

Conversion Value Budget: How to Prioritise 64 Possible Values

You have 64 conversion values but more than 64 possible user behaviours. How do you decide what to encode?

Prioritisation Framework

Priority 1: Revenue Events (Values 40-63, 24 values)

If your app monetises through purchases, subscriptions, or transactions, dedicate 35-40% of your conversion value range to revenue brackets.

Why: Revenue amount is the strongest predictor of user value. Ad networks need granular revenue signals to optimise bids.

Priority 2: Activation Milestones (Values 10-39, 30 values)

Dedicate 45-50% of your range to key activation checkpoints that predict monetisation:

  • Account completion

  • Verification steps (KYC, email confirmation)

  • First core action (first transaction, first match, first level completed)

  • Engagement depth (sessions, feature usage, content consumption)

Why: Not all users monetise immediately. Encoding activation helps networks find users likely to monetise later.

Priority 3: Pre-Activation Behaviour (Values 0-9, 10 values)

Use 15-20% of your range for early-funnel behaviour:

  • App opened vs not opened

  • Onboarding started vs completed

  • Initial browsing vs bouncing

Why: This helps networks identify campaigns that drive users who never engage versus users who complete onboarding.

Common Mistakes

Mistake #1: Encoding too many dimensions

Trying to encode level progression AND purchase amount AND session count into 64 values creates overlapping ranges that confuse ad algorithms.

Fix: Pick 2-3 primary dimensions maximum.

Mistake #2: Uneven value distribution

Using values 0-50 for "no purchase" and values 51-63 for all purchase brackets doesn't give algorithms enough purchase granularity.

Fix: Dedicate roughly 35-40% of values to your primary revenue or activation events.

Mistake #3: Ignoring coarse values

Configuring only fine values means small campaigns return null postbacks.

Fix: Always configure coarse mappings.

Testing Your Configuration: Validation Workflow

Before scaling iOS campaigns with your new SKAN configuration, validate it works correctly:

Step 1: Implement Configuration (1-2 days)

Update your app's SKAN conversion value mapping logic with your chosen strategy. Test locally to confirm:

  • Values are set correctly based on user actions

  • Value updates happen at the right triggers

  • Coarse value mappings align with fine value mappings

Step 2: Run Test Campaigns (3-5 days)

Launch small test campaigns (₹5,000-₹10,000 budget) on Meta or Google targeting your existing high-performing audiences. Let them run for 3-5 days to accumulate postbacks.

Step 3: Check Postback Receipt (Day 5-7)

In your MMP dashboard, verify you're receiving:

  • Postback volume: Are postbacks arriving for your test campaigns?

  • Value distribution: Are you seeing a range of conversion values (0-63), not just a single value?

  • Coarse vs fine ratio: What percentage of postbacks are coarse vs fine?

Step 4: Validate Value Accuracy (Day 7-10)

Compare SKAN conversion values to your app's actual event data:

Example validation:

  • SKAN shows 150 postbacks with values 30-39 (monthly subscription bracket)

  • Your app's analytics show 148 monthly subscription starts in the same cohort

  • Match rate: 98.7% (expected, some postbacks delayed)

If you see major discrepancies (SKAN reports 50 subscriptions, analytics shows 200), your conversion value logic has bugs.

Step 5: Monitor for 14 Days

SKAN postbacks can arrive delayed (0-3 days after conversion). Monitor for 2 weeks to confirm:

  • Postback delivery is consistent

  • Values map to expected user behaviours

  • Ad networks are receiving and processing the data

Only after successful validation should you scale iOS campaign budgets.

Common SKAN Setup Mistakes That Break Attribution

Mistake #1: Not Updating Conversion Values on User Actions

SKAN conversion values must be updated as users progress through your app. If you set the value once at install and never update it, you'll only encode install data, not user behaviour.

Fix: Call SKAdNetwork.updatePostbackConversionValue() every time a user completes a meaningful action (purchase, level complete, subscription start, etc.).

Mistake #2: Setting Conversion Values Too Late

SKAN attribution windows start at ad click or view, not at install. If users complete valuable actions after your attribution window closes, those actions won't be encoded.

Fix: Use 3-day windows for fast-conversion apps (gaming, casual apps) and 7-day windows for considered-purchase apps (fintech, subscriptions). Don't use 1-day windows unless your users convert within hours.

Mistake #3: Ignoring Privacy Thresholds

SKAN only returns postbacks when Apple's crowd anonymity thresholds are met. Campaigns with < 10-20 conversions may never receive postbacks.

Fix: Don't over-segment campaigns. Consolidate small campaigns into larger ones to ensure sufficient conversion volume for postback delivery.

Mistake #4: Using Exact Revenue Values

Encoding exact purchase amounts (₹287, ₹513, ₹842) makes it easier to identify individual users, which Apple blocks to preserve privacy.

Fix: Use bracketed ranges (₹200-₹499, ₹500-₹999) instead of exact amounts.

Mistake #5: Not Configuring Postbacks to Ad Networks

Your MMP receives SKAN postbacks, but Meta and Google need you to forward them via their postback endpoints. Without this, ad networks optimise blindly.

Fix: In your MMP, configure SKAN postback forwarding to Meta, Google, TikTok, and other networks you use for iOS campaigns.

Implementation Timeline: What to Expect

Week 1: Planning and Configuration

  • Choose appropriate conversion value strategy for your app type

  • Map business events to conversion values

  • Document conversion value mappings

  • Update app code with SKAN logic

  • Configure coarse value mappings

Week 2: Testing and Validation

  • Deploy updated app to TestFlight or staged rollout

  • Run small test campaigns (₹5-10K budget)

  • Monitor postback receipt in MMP dashboard

  • Validate conversion values match expected user behaviours

  • Identify and fix bugs in value assignment logic

Week 3-4: Scaling and Optimization

  • Deploy to full user base after validation

  • Gradually scale iOS campaign budgets

  • Compare SKAN data to baseline metrics

  • Adjust conversion value mappings based on learnings

  • Configure ad network optimisation toward high-value SKAN signals

Ongoing: Monitoring and Refinement

  • Review value distribution monthly

  • Adjust mappings as product evolves

  • Monitor for postback delivery issues

  • Keep configurations aligned with business goals

How Linkrunner Simplifies SKAN 4.0 Configuration

Platforms like Linkrunner provide built-in SKAN 4.0 configuration tools that simplify vertical-specific setup. Rather than coding conversion value logic manually for iOS, Android, and web separately, Linkrunner provides:

  • Pre-built configuration templates for eCommerce, gaming, subscription, fintech, and lead gen apps

  • Visual conversion value mapping showing which values encode which behaviours

  • Automated coarse/fine value alignment ensuring privacy fallbacks work correctly

  • SKAN postback validation dashboards showing postback volume, value distribution, and delivery timing

  • Cross-platform attribution unification combining SKAN (iOS) with standard attribution (Android) into unified campaign reports

  • Ad network postback configuration automatically forwarding SKAN data to Meta, Google, TikTok, and other platforms

Starting at ₹0.80 per attributed install, mobile apps can implement production-grade SKAN configuration without the ₹2-8 lakh monthly costs typical of legacy MMPs.

Key Takeaways

SKAN 4.0 attribution requires vertical-specific configurations:

  1. E-Commerce Apps: Encode purchase value brackets (0-₹499, ₹500-₹999, ₹1000+) with timing signals

  2. Gaming Apps: Encode level progression + IAP tiers, identifying both engaged players and early spenders

  3. Subscription Apps: Encode trial starts separately from paid conversions, with subscription tier differentiation

  4. Fintech Apps: Encode KYC completion + transaction milestones, separating browsers from transactors

  5. Lead Gen Apps: Encode form completion + quality signals (engagement depth, verification status)

Dedicate 35-40% of your 64 conversion values to primary revenue events, 45-50% to activation milestones, and 15-20% to pre-activation behaviour.

Validate your configuration with small test campaigns before scaling iOS spend. Monitor postback receipt, value distribution, and data accuracy for 14 days before trusting SKAN data for optimization decisions.

For help implementing vertical-specific SKAN configurations quickly, request a demo from Linkrunner to see how built-in configuration templates and validation dashboards can get iOS attribution running properly in one week instead of months of custom development.

Empowering marketing teams to make better data driven decisions to accelerate app growth!

For support, email us at

Address: HustleHub Tech Park, sector 2, HSR Layout,
Bangalore, Karnataka 560102, India

Empowering marketing teams to make better data driven decisions to accelerate app growth!

For support, email us at

Address: HustleHub Tech Park, sector 2, HSR Layout,
Bangalore, Karnataka 560102, India