Skip to content

Migrate from Branch

This guide walks through migrating your deep linking infrastructure from Branch to Tolinku.

Branch conceptTolinku equivalent
App (Branch dashboard)Appspace
Branch link domain (xxx.app.link)Tolinku subdomain or custom domain
Branch keyAPI key (tolk_pub_ / tolk_sec_)
Branch linkRoute (static or dynamic)
Branch SDKTolinku SDK
Branch commerce eventsEcommerce events via ecommerce/track
Branch custom eventsCustom events via analytics/track
Journeys (web banners)Smart banners
  1. Create your Appspace

    Sign up at app.tolinku.com and create an Appspace for your app. Configure your iOS settings (Bundle ID, Team ID) and Android settings (package name, SHA-256 fingerprint).

  2. Set up your domain

    You can use your Tolinku subdomain (e.g. myapp.tolinku.com) or add a custom domain. If you used a custom domain with Branch, you can point it to Tolinku instead.

  3. Recreate your link routes

    For each Branch link type, create a corresponding Tolinku route:

    • Branch quick links with static paths become static routes.
    • Branch links with dynamic data (e.g. product IDs) become dynamic routes with path parameters.
    • Branch deep link data ($deeplink_path, $canonical_url) maps to your route’s prefix and token.
  4. Configure landing pages

    Recreate your Branch Journeys or link pages as Tolinku landing pages using the visual builder. Tolinku landing pages support OG metadata, app store buttons, and web fallback links.

  5. Swap the SDK

    Remove the Branch SDK and install the Tolinku SDK for your platform:

    PlatformRemoveInstall
    iOSpod 'Branch' or SPM BranchTolinkuSDK via SPM
    Androidio.branch.sdk.android:librarycom.tolinku:sdk
    React Nativereact-native-branch@tolinku/react-native-sdk
    Flutterflutter_branch_sdktolinku
    WebBranch Web SDK@tolinku/web-sdk
  6. Update your initialization code

    Replace Branch initialization with Tolinku:

    // Before (Branch)
    Branch.getInstance().initSession(launchOptions: launchOptions) { params, error in
    if let path = params?["$deeplink_path"] as? String {
    // Navigate
    }
    }
    // After (Tolinku)
    try Tolinku.configure(apiKey: "tolk_pub_your_key")
  7. Update deep link handling

    Replace Branch’s callback-based deep link handling with Tolinku’s approach:

    // Before (Branch)
    // Deep link data comes through initSession callback
    // After (Tolinku)
    if let result = Tolinku.handleUniversalLink(url) {
    navigateTo(path: result.path)
    }
  8. Migrate event tracking

    Replace Branch standard events with Tolinku ecommerce tracking (paid plans) or custom events:

    // Before (Branch)
    let event = BranchEvent.standardEvent(.purchase)
    event.revenue = 49.99
    event.currency = .USD
    event.logEvent()
    // After (Tolinku) - ecommerce tracking (recommended)
    await tolinku.ecommerce.purchase(
    transactionId: "order_456",
    revenue: 49.99,
    currency: "USD",
    items: [TolinkuItem(itemId: "sku_1", itemName: "T-Shirt", price: 24.99, quantity: 2)]
    )
    // Or custom events for non-ecommerce tracking
    await Tolinku.shared?.track("custom.signup_complete")

    Tolinku’s ecommerce module supports 13 event types (view_item, add_to_cart, purchase, refund, etc.) with built-in revenue attribution, conversion funnels, and cohort analysis. See Ecommerce Analytics for details.

  9. Update web banners

    Replace Branch Journeys with Tolinku smart banners. Create banners in the dashboard and embed the banner script or use the Web SDK.

  10. Test and verify

    • Test Universal Links (iOS) and App Links (Android) with the new domain.
    • Verify deferred deep linking works on fresh installs.
    • Check analytics are flowing in the Tolinku dashboard.
    • Monitor for any 404s or broken links.

If you have Branch links shared in emails, social media posts, or other places that you cannot update:

  • Custom domain: If you move your custom domain to Tolinku, existing links on that domain will be handled by Tolinku. You need matching routes for the paths.
  • Branch domain (xxx.app.link): Links on Branch’s domain will continue working as long as your Branch account is active. Gradually phase them out by using Tolinku links for all new campaigns.
  • Redirect approach: Set up server-side redirects from your old Branch link patterns to the equivalent Tolinku links.