Overview

Branch is a mobile measurement and engagement platform designed to help developers and marketers manage the end-to-end user journey within and across mobile applications. The platform provides tools for deep linking, mobile attribution, personalized onboarding, and referral program management. Its core functionality revolves around Universal Links for iOS and App Links for Android, which allow developers to create links that reliably direct users to specific content within an app, even if the app is not yet installed.

For user acquisition, Branch provides mobile attribution capabilities, allowing app developers to track the source and effectiveness of installs and re-engagements. This includes identifying which marketing channels, campaigns, and creative assets are driving the most valuable users. The platform supports various attribution models and integrates with major advertising networks to provide a consolidated view of marketing performance.

Beyond acquisition, Branch focuses on enhancing user engagement and retention. Its deep linking technology facilitates personalized user experiences, from guiding new users through tailored onboarding flows to re-engaging existing users with relevant content via email or web-to-app banners. The platform also offers features for building and managing in-app referral programs, allowing users to invite others and track associated rewards.

Branch is suitable for mobile app developers, product managers, and marketing teams looking to optimize their user acquisition strategies, improve user retention, and create seamless cross-platform user journeys. Its SDKs are available for a range of platforms, including iOS Universal Links, Android App Links, React Native, and Flutter, enabling consistent implementation across different development environments. The platform's compliance with regulations such as SOC 2 Type II, GDPR, and CCPA addresses data privacy and security requirements for global operations.

Developers integrating Branch can expect a well-documented SDK experience. The process typically involves initializing the SDK, configuring universal or app links, and then tracking events. Branch provides tools for debugging link behavior, ensuring that deep links function as intended across different devices and scenarios. The platform's emphasis on deferred deep linking ensures that even users who install an app after clicking a link are directed to the intended content upon first launch, contributing to a more continuous user experience.

Key features

  • Deep Linking: Creates Universal Links (iOS) and App Links (Android) that direct users to specific in-app content, even if the app needs to be installed first (deferred deep linking).
  • Mobile Attribution: Tracks the source of app installs, re-engagements, and in-app events, providing insights into marketing campaign performance across various channels.
  • Personalized Onboarding: Delivers customized first-time user experiences by directing new users to relevant content based on their initial entry point.
  • Referral Programs: Provides tools to build, manage, and track in-app referral programs, enabling users to invite others and earn rewards.
  • Universal Email: Transforms email links into deep links, seamlessly taking users from email campaigns directly into the app.
  • Web to App Banners: Implements smart banners on websites to promote app installs and direct existing users to the app with context.
  • Cross-Platform SDKs: Offers SDKs for major mobile development platforms, including iOS, Android, React Native, Flutter, Unity, Cordova, and Xamarin.
  • Analytics and Reporting: Provides dashboards and reports to visualize attribution data, user behavior, and the performance of deep links and campaigns.
  • Fraud Detection: Incorporates mechanisms to identify and filter out fraudulent installs and engagement, ensuring data integrity.

Pricing

Branch offers a tiered pricing structure, including a free tier for smaller applications and paid plans with escalating features and usage limits. Pricing is generally based on Monthly Active Users (MAU).

Branch Pricing Tiers (as of 2026-05-08)
Tier Name MAU Limit Key Features Price (Monthly)
Launch Tier Up to 10,000 Core deep linking, attribution, basic analytics Free
Starter Tier Up to 50,000 Launch Tier features + advanced attribution, custom links, web-to-app $200
Business Tier Custom Starter Tier features + premium support, advanced fraud, custom integrations Custom Enterprise Pricing

For detailed pricing information and specific feature breakdowns, refer to the official Branch pricing page.

Common integrations

  • Advertising Platforms: Integrates with major ad networks (e.g., Google Ads, Facebook Ads) for mobile attribution and campaign optimization.
  • Analytics Tools: Connects with analytics platforms like Google Analytics and Firebase Analytics for consolidated data insights (Firebase Analytics documentation).
  • CRM Systems: Syncs user data with CRM platforms for personalized marketing and customer segmentation.
  • Email Service Providers: Enables deep linking from email campaigns to specific app content.
  • MMP SDKs: Can often work alongside or replace other Mobile Measurement Partner (MMP) SDKs, though direct comparison should be made regarding feature overlap with platforms like AppsFlyer's mobile attribution tools.

Alternatives

  • AppsFlyer: A mobile attribution and marketing analytics platform that helps app developers measure the performance of their marketing campaigns.
  • Adjust: An analytics and measurement platform for mobile apps, offering attribution, fraud prevention, and audience segmentation.
  • Singular: A unified marketing intelligence platform that combines attribution, cost aggregation, and analytics to provide a holistic view of marketing ROI.

Getting started

To integrate Branch into an iOS application using Swift, you typically begin by installing the SDK and then initializing it within your AppDelegate. This example demonstrates basic setup and how to create a Branch Universal Object (BUO) for deep linking.

import UIKit
import Branch

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Initialize the Branch SDK
        Branch.setBranchKey("key_live_YOUR_BRANCH_KEY") // Replace with your actual Branch Live Key
        Branch.getInstance().initSession(launchOptions: launchOptions) { (params, error) in
            // Optional: Handle deep link parameters here
            if let params = params as? [String: Any],
               let deepLinkData = params["~referring_link"] as? String {
                print("Deep link data received: \(deepLinkData)")
                // Navigate to specific content based on deepLinkData
            }
        }

        return true
    }

    // Required for Universal Links
    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        Branch.getInstance().continue(userActivity)
        return true
    }

    // Required for Custom URI schemes (if used)
    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        Branch.getInstance().handleDeepLink(url)
        return true
    }

    // Example: Creating a Branch Universal Object for sharing
    func createShareLink() {
        let buo = BranchUniversalObject(canonicalIdentifier: "content/12345")
        buo.title = "My Awesome Content"
        buo.contentDescription = "Check out this amazing content!"
        buo.imageUrl = "https://example.com/image.png"
        buo.addMetadataKey("product_id", value: "PROD-XYZ")

        let linkProperties = BranchLinkProperties()
        linkProperties.feature = "share"
        linkProperties.channel = "facebook"
        linkProperties.campaign = "summer_promo"

        buo.get     ShortUrl(linkProperties: linkProperties) { (url, error) in
            if error == nil {
                print("Generated deep link: \(url ?? "")")
                // Present a UIActivityViewController to share the URL
            }
        }
    }
}

This code snippet initializes the Branch SDK and sets up the necessary AppDelegate methods to handle Universal Links and custom URI schemes. It also includes an example of how to create a BranchUniversalObject to define content for a deep link and generate a short URL for sharing. For a complete guide, including provisioning profiles and domain setup, refer to the Branch iOS SDK integration documentation.