Branch.io: what it is, how it works and is used in development

Author: IT Sectr Published: 2026-05-14 Reading time: 8 min

Branch.io is a commercial deep linking and attribution platform that provides a unified link infrastructure for mobile applications on iOS and Android. According to Branch Documentation, the platform tracks the full user interaction cycle from link click to target action within the app. Deep linking in Branch.io works across all platforms with support for deferred deep linking and install attribution.

Key Takeaways

  • Branch.io is a SaaS platform for deep linking, install attribution and cross-channel marketing analytics in mobile applications.
  • Deferred deep link — Branch preserves the click context when the app is not installed and restores it after installation from the store.
  • Attribution — the platform determines the install source (ad, referral, email, social network) with accuracy down to specific campaign and creative.
  • Universal link — a single Branch link works correctly on iOS, Android, web and desktop browsers without additional configuration.
  • SDK — Branch provides native SDKs for iOS, Android, React Native, Flutter and Unity with a minimal entry threshold.

What is Branch.io?

Branch.io is a platform that combines deep linking, mobile install attribution and marketing analytics in a single solution. It allows developers and marketers to create smart links that direct users to the app or web page depending on platform, install status and other parameters. Additionally, Branch automatically links each install to its source of origin.

The platform was founded in 2014 and is one of the leaders in the mobile measurement (MMP) market alongside AppsFlyer and Adjust. Branch's main advantage is the full integration of deep linking and attribution in one SDK, eliminating the need to use separate solutions for links and analytics.

Difference from Firebase Dynamic Links

Firebase Dynamic Links is a free service with basic functionality, while Branch.io is a commercial platform with advanced attribution supporting over 50 integrations with ad networks. Branch provides end-to-end analytics for every user touchpoint, including last-click, first-click and multi-touch attribution models.

Key Features of Branch.io

Branch.io provides a wide range of tools for working with mobile links. Key capabilities include Deepview — a preview of app content in a web browser before installation, automatic generation of Universal Links for iOS and App Links for Android, and support for referral programs with rewards.

The platform also supports Journeys — a visual engagement funnel builder that shows users a banner inviting them to install the app when visiting a mobile website. Journeys can be configured without coding through the Branch web interface and support A/B testing of creatives.

Main Platform Capabilities

FeatureDescriptionUse Case
Deep LinkingSmart links with deferred supportNavigate to content
AttributionInstall and event attributionMarketing analytics
JourneysWeb banners for installUser acquisition
DeepviewApp preview in browserContent demonstration
SegmentsUser segmentationPersonalization

How Attribution Works in Branch.io

Install attribution in Branch works by linking the click identifier (click ID) with the device identifier upon first app launch. When a user clicks a Branch link, the system generates a unique identifier and stores it in the browser or system clipboard. After installation and first launch, the Branch SDK reads this identifier and links the install to the source of the click.

Branch supports attribution across various models. Last-click attribution determines the last click source before install as the cause. Multi-touch attribution distributes the install value among all user touchpoints according to specified weights. The platform also supports view-through attribution for ad impressions without a click.

Integration with Ad Networks

Branch integrates with over 50 advertising platforms, including Facebook Ads, Google Ads, TikTok Ads and Snapchat. Each integration uses the native attribution mechanisms of the ad network for maximum accuracy. Configuration is done through the Branch Dashboard without the need to modify app code after the initial SDK integration.

Setting Up Branch.io in iOS

Integrating Branch SDK into an iOS app starts with installing the package via CocoaPods, SPM or Carthage. After installation, the SDK must be initialized with the app key from the Branch Dashboard in the didFinishLaunchingWithOptions method of AppDelegate. The SDK automatically registers Universal Links for the Branch domain.

For deep links to work correctly, Associated Domains must be configured in Xcode Capabilities with an entry like applinks:bnc.lt. Branch also supports URL Scheme as a fallback in case Universal Links do not work on a specific iOS version. All incoming link handling happens automatically through the SDK without needing to write a custom handler.

SDK Integration

Example of Branch SDK initialization in AppDelegate using Swift. The SDK starts a session at app launch and automatically processes all deep links.

swift
import BranchSDK

class AppDelegate: UIResponder,
    UIApplicationDelegate {

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions
        launchOptions: [UIApplication
            .LaunchOptionsKey: Any]?
    ) -> Bool {
        Branch.getInstance()
            .initSession(launchOptions: launchOptions)
        return true
    }
}

The initSession method starts a Branch session and automatically checks for an incoming deep link. The result is handled through the BranchDelegate or a completion handler. The Branch SDK automatically determines whether the link was opened from a cold start or from an already running app.

Setting Up Branch.io in Android

On Android, Branch integration starts by adding the dependency to build.gradle and specifying the app key in AndroidManifest.xml. Branch uses an Intent Filter to receive deep links, which is automatically added via the Gradle plugin at build time. The SDK also registers a BroadcastReceiver to obtain referral data after installation and supports automatic handling of the Install Referrer API for accurate source attribution.

For correct install attribution from Google Play, Branch uses the Install Referrer API, which provides information about the install source even if the user did not click a link. On devices without Google Play Services, a referral BroadcastReceiver is used.

Android Configuration

Example of Branch SDK initialization in MainActivity using Kotlin with handling of incoming deep link data.

kotlin
class MainActivity : AppCompatActivity() {

    override fun onStart() {
        super.onStart()
        Branch.getInstance()
            .initSession { params, error ->
                if (error == null) {
                    val data = params.optString(
                        "$deeplink_path", ""
                    )
                    navigateToScreen(data)
                }
            }
    }
}

The completion handler in the initSession method returns a JSONObject with deep link parameters and an error. The $deeplink_path parameter contains the target path, and the remaining parameters are passed in an arbitrary format defined when creating the link in the Branch Dashboard. Handling is performed in onStart for correct operation when restarting the Activity and when transitioning from another app.

Tracking and Analytics in Branch.io

Branch Dashboard provides visual reports on all key metrics: link clicks, installs, conversions, revenue and retention. Data is available in real-time with the ability to export to CSV and integrate with external analytics systems via API.

The platform supports custom Events that the app sends to Branch through the SDK. Each event can contain arbitrary metadata: purchase amount, product category, user level. Branch automatically links events to the install source, allowing ROI assessment for each marketing channel.

Dashboard and Reports

Branch Dashboard includes several preset reports — Summary, Sources, Cohorts and Funnels. Summary shows the overall picture of installs and clicks, Sources breaks down by channel, Cohorts tracks user retention by day, and Funnels builds conversion funnels based on specified events. All reports support filtering by date, platform, country and ad campaign.

For more detailed analysis, Branch provides the Export API, which allows exporting raw click and install data into custom analytics systems. The API supports filtering by time range, event type and source. Export is available in CSV and JSON formats with the ability to schedule automatic exports via webhook.

Segment Builder in Branch Dashboard allows creating dynamic user segments based on any set of events and attributes. For example, you can create a segment of users who installed the app from a specific ad campaign and made a purchase within 7 days. Segments update in real-time and are available for export or integration via API. Branch also supports anonymized aggregated exports — anonymized segment summaries for sending to ad networks and optimizing targeting.

Frequently Asked Questions

How much does Branch.io cost?

Branch offers a free tier with a limit on the number of events per month. For commercial use, paid plans are available with expanded attribution, unlimited events and priority support. Prices range from $500 to several thousand dollars per month.

How is Branch different from AppsFlyer?

The main difference is that Branch combines deep linking and attribution in one SDK, whereas AppsFlyer focuses only on attribution. Branch also provides Deepview and Journeys which are not available in AppsFlyer. The choice depends on project needs.

Does Branch.io support cross-platform frameworks?

Yes, Branch provides SDKs for React Native, Flutter, Unity, Cordova and Xamarin. All cross-platform SDKs support the full feature set: deep linking, attribution, event analytics and Journeys.

How does Branch handle ATT (App Tracking Transparency) limitations?

Branch fully supports ATT on iOS 14+. The SDK requests tracking permission through the standard dialog. If the user declines, Branch uses SKAdNetwork for attribution without IDFA, preserving accuracy at the campaign level.

Can Branch.io be used for web links?

Yes, Branch links work correctly in web browsers. On desktop, the link opens the specified URL; on mobile devices, it opens the app or a fallback page. Branch also supports Quick Links for websites without SDK installation.

Summary

  • Branch.io is a commercial deep linking and attribution platform with a unified SDK for iOS and Android.
  • Deferred deep link — a key capability that preserves click context when the app is not installed and restores it after installation.
  • Attribution — Branch determines the install source through various models with integration of over 50 ad networks.
  • Deepview — preview of app content in the browser before installation, increasing install conversion.
  • Journeys — a visual web banner builder for engaging users and increasing installs.
  • Analytics — Dashboard with reports on clicks, installs, conversions and retention with export and API integration.
  • Cross-platform — SDK is available for native iOS/Android, React Native, Flutter, Unity and other frameworks.

We will develop a mobile application turnkey

IT Sectr creates iOS and Android applications for startups and businesses since 2017. We will advise you and propose the best solution.

Discuss the project

Read also