Migrate from Branch
This guide walks through migrating your deep linking infrastructure from Branch to Tolinku.
Overview
Section titled “Overview”| Branch concept | Tolinku equivalent |
|---|---|
| App (Branch dashboard) | Appspace |
Branch link domain (xxx.app.link) | Tolinku subdomain or custom domain |
| Branch key | API key (tolk_pub_ / tolk_sec_) |
| Branch link | Route (static or dynamic) |
| Branch SDK | Tolinku SDK |
| Branch commerce events | Ecommerce events via ecommerce/track |
| Branch custom events | Custom events via analytics/track |
| Journeys (web banners) | Smart banners |
Migration steps
Section titled “Migration steps”-
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).
-
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. -
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.
-
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.
-
Swap the SDK
Remove the Branch SDK and install the Tolinku SDK for your platform:
Platform Remove Install iOS pod 'Branch'or SPM BranchTolinkuSDKvia SPMAndroid io.branch.sdk.android:librarycom.tolinku:sdkReact Native react-native-branch@tolinku/react-native-sdkFlutter flutter_branch_sdktolinkuWeb Branch Web SDK @tolinku/web-sdk -
Update your initialization code
Replace Branch initialization with Tolinku:
// Before (Branch)Branch.getInstance().initSession(launchOptions: launchOptions) { params, error inif let path = params?["$deeplink_path"] as? String {// Navigate}}// After (Tolinku)try Tolinku.configure(apiKey: "tolk_pub_your_key") -
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)} -
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.99event.currency = .USDevent.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 trackingawait 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.
-
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.
-
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.
Handling existing Branch links
Section titled “Handling existing Branch 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.