Back to Blog
Analytics
14 min read
December 10, 2024

Mobile Install Attribution: Complete Guide

Learn how to properly track and attribute mobile app installs. Covers attribution models, platform-specific APIs, privacy considerations, and best practices.

What is Mobile Install Attribution?

Definition

Mobile install attribution is the process of determining which marketing channel, campaign, or user action led to an app installation. It tracks the source of installs and attributes them to specific marketing efforts.

Why It Matters

  • • Measure marketing ROI
  • • Identify best channels
  • • Optimize spend allocation
  • • Track campaign performance
  • • Understand user sources

Key Metrics

  • • Install source
  • • Campaign name
  • • Ad network
  • • Attribution window
  • • Cost per install

Challenges

  • • Privacy regulations
  • • Device fingerprinting
  • • Cross-device tracking
  • • Attribution windows
  • • Data accuracy

Attribution Models Explained

Different attribution models assign credit to marketing touchpoints in different ways. Here are the most common:

1. First-Touch Attribution

Credits the first marketing touchpoint a user encounters. All install credit goes to the first interaction.

Example:

User sees Facebook ad → clicks → waits 3 days → sees Google ad → installs app

Attribution: Facebook gets 100% credit

Best for: Awareness and top-of-funnel campaigns

Limitation: Ignores later touchpoints that may have driven conversion

2. Last-Touch Attribution

Credits the last marketing touchpoint before the install. Most common model in mobile marketing.

Example:

User sees Facebook ad → clicks → waits 3 days → sees Google ad → installs app

Attribution: Google gets 100% credit

Best for: Conversion and performance marketing

Limitation: Ignores earlier touchpoints that may have influenced decision

3. Multi-Touch Attribution

Distributes credit across multiple touchpoints. Can use various weights (linear, time-decay, algorithmic).

Example (Linear):

User sees Facebook ad → clicks → waits 3 days → sees Google ad → installs app

Attribution: Facebook 50%, Google 50%

Best for: Holistic ROI analysis and comprehensive reporting

Limitation: More complex, requires data infrastructure

4. Time-Decay Attribution

Gives more credit to touchpoints closer to the install. Earlier interactions receive less credit.

Example:

User sees Facebook ad → clicks → waits 3 days → sees Google ad → installs app

Attribution: Facebook 30%, Google 70%

Best for: Short conversion windows and retargeting

Limitation: May undervalue awareness efforts

Google Play Referrer API

The Google Play Referrer API is Google's official method for tracking installs on Android. It captures referral information when a user installs your app from the Google Play Store.

How It Works

When a user clicks an ad and installs your app, Google Play captures referral information:

json
{
  "referrer": "utm_source=google_play&utm_medium=cpc&utm_campaign=spring_sale",
  "referrer_click_timestamp_seconds": 1702000000,
  "install_begin_timestamp_seconds": 1702000060,
  "install_timestamp_seconds": 1702000120,
  "google_play_instant": false
}

Implementation Example

kotlin
import com.android.installreferrer.api.InstallReferrerClient
import com.android.installreferrer.api.InstallReferrerStateListener

class AttributionHelper : InstallReferrerStateListener {
  private lateinit var referrerClient: InstallReferrerClient

  fun getInstallReferrer(context: Context) {
    referrerClient = InstallReferrerClient.newBuilder(context).build()
    referrerClient.startConnection(this)
  }

  override fun onInstallReferrerSetupFinished(responseCode: Int) {
    when (responseCode) {
      InstallReferrerClient.InstallReferrerResponse.OK -> {
        val response = referrerClient.installReferrer
        val referrerUrl = response.installReferrer
        val clickTime = response.referrerClickTimestampSeconds
        val installTime = response.installBeginTimestampSeconds

        logAttribution(referrerUrl, clickTime, installTime)
      }
      InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> {
        // API not available
      }
      InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE -> {
        // Service not available
      }
    }
    referrerClient.endConnection()
  }

  override fun onInstallReferrerServiceDisconnected() {
    // Try again later
  }

  private fun logAttribution(referrer: String, clickTime: Long, installTime: Long) {
    // Send to your backend or attribution service
  }
}

Limitations

  • Attribution window: Limited to 90 days from install
  • Organic installs: No referral data for users who directly visit Play Store
  • Side-loaded installs: Does not work for apps installed outside Play Store
  • Device ID access: Restricted by Play Services policies

iOS SKAN Attribution

SKAdNetwork (SKAN) is Apple's privacy-focused attribution framework introduced with iOS 14.5. It replaces IDFA-based tracking with aggregated, privacy-preserving measurement.

Key Differences from Traditional Attribution

  • No user-level data: Only aggregated conversion data across users
  • Short attribution window: 0-7 days for iOS 16+, 24 hours for iOS 14-15
  • Limited conversion data: Only 6 bits of conversion value (64 possible values)
  • Delayed reporting: 24-48 hour delay before data is available

Implementing SKAN

swift
import StoreKit

// Configure conversion values
func configureConversionTracking() {
  // Update conversion value as user engages with app
  if #available(iOS 15.4, *) {
    try? updatePostbackConversionValue(
      conversionValue: 25, // 0-63 value
      coarseValue: .medium, // low, medium, high
      lockWindow: false
    )
  } else if #available(iOS 14.5, *) {
    SKAdNetwork.updateConversionValue(25)
  }
}

// Report SKAN postback
func reportSKANEvent() {
  if #available(iOS 15.1, *) {
    Task {
      do {
        try await requestPostbackOverride()
      } catch {
        print("SKAN postback override failed: \(error)")
      }
    }
  }
}

Privacy & Tracking Changes

iOS: App Tracking Transparency (ATT)

iOS 14.5+ requires explicit user consent to track activity across apps and websites using IDFA (Identifier for Advertisers).

  • Low consent rates: Industry average is 25-30% users opt-in to tracking
  • SKAN requirement: Advertisers must use SKAN for privacy-compliant attribution
  • Contextual alternatives: Consider contextual attribution and on-device measurement

Android: Privacy Sandbox

Google is phasing out third-party cookies and moving toward privacy-preserving measurement:

  • Topics API: Advertising categories based on user behavior (not individual browsing)
  • Aggregation API: Aggregated reporting instead of individual-level data
  • Google Play Referrer: Still available but limited data in future

Best Practices for Privacy-Compliant Attribution

  • Implement transparent privacy policies
  • Obtain explicit user consent before tracking
  • Use aggregated data for analytics and reporting
  • Comply with GDPR, CCPA, and regional privacy laws
  • Minimize personal data collection

Implementation Best Practices

1. Multi-Platform Strategy

Different platforms require different attribution approaches. Implement a comprehensive strategy that works across iOS and Android.

2. Server-Side Tracking

Send attribution data to your backend for processing and storage, reducing dependency on client-side tracking.

3. Use Attribution Services

Consider using services like Redirectly that handle platform-specific APIs and provide unified attribution across iOS and Android.

4. Monitor Attribution Quality

Regularly audit attribution data for accuracy. Check for discrepancies between app-level and platform-level attribution.

Start Tracking Attribution Today

Redirectly makes mobile install attribution simple and privacy-compliant across iOS and Android platforms.

Related Articles