Migrate from AppsFlyer
This guide walks through migrating your deep linking infrastructure from AppsFlyer OneLink to Tolinku.
Overview
Section titled “Overview”| AppsFlyer concept | Tolinku equivalent |
|---|---|
| App (AppsFlyer dashboard) | Appspace |
OneLink domain (xxx.onelink.me) | Tolinku subdomain or custom domain |
| Dev key | API key (tolk_pub_ / tolk_sec_) |
| OneLink template | Route (static or dynamic) |
| OneLink URL | Tolinku deep link URL |
| AppsFlyer SDK | Tolinku SDK |
| In-app events (revenue) | Ecommerce events via ecommerce/track |
| In-app events (other) | Custom events via analytics/track |
| Smart banners | Smart banners |
Migration steps
Section titled “Migration steps”-
Create your Appspace
Sign up at app.tolinku.com and create an Appspace. Configure your iOS settings (Bundle ID, Team ID) and Android settings (package name, SHA-256 fingerprint).
-
Set up your domain
Use your Tolinku subdomain (e.g.
myapp.tolinku.com) or add a custom domain. If you used a branded domain with AppsFlyer, you can repoint it to Tolinku. -
Map your OneLink templates to routes
For each OneLink template, create a corresponding Tolinku route:
- OneLink templates with static deep link values become static routes.
- OneLink templates with dynamic parameters (e.g.
deep_link_value,deep_link_sub1) become dynamic routes with path parameters. - AppsFlyer’s
af_dpanddeep_link_valueparameters map to your route’s prefix and token.
Example:
// AppsFlyer OneLinkhttps://myapp.onelink.me/abc123?deep_link_value=product_456// Tolinku equivalenthttps://myapp.tolinku.com/product/456 -
Swap the SDK
Remove the AppsFlyer SDK and install the Tolinku SDK:
Platform Remove Install iOS AppsFlyerLibTolinkuSDKvia SPMAndroid com.appsflyer:af-android-sdkcom.tolinku:sdkReact Native react-native-appsflyer@tolinku/react-native-sdkFlutter appsflyer_sdktolinkuWeb AppsFlyer Web SDK @tolinku/web-sdk -
Update initialization
// Before (AppsFlyer)AppsFlyerLib.shared().appsFlyerDevKey = "your_dev_key"AppsFlyerLib.shared().appleAppID = "123456789"AppsFlyerLib.shared().start()// After (Tolinku)try Tolinku.configure(apiKey: "tolk_pub_your_key") -
Update deep link handling
// Before (AppsFlyer)func onConversionDataSuccess(_ data: [AnyHashable: Any]) {if let deepLinkValue = data["deep_link_value"] as? String {// Navigate}}// After (Tolinku)if let result = Tolinku.handleUniversalLink(url) {navigateTo(path: result.path)}For deferred deep linking:
// Before: AppsFlyer handled deferred links via onConversionDataSuccess// After (Tolinku)if let link = try await Tolinku.shared?.deferred.claimBySignals(appspaceId: "your_appspace_id") {navigateTo(path: link.deep_link_path)} -
Migrate event tracking
Replace AppsFlyer in-app events with Tolinku ecommerce tracking (paid plans) or custom events:
// Before (AppsFlyer)AppsFlyerLib.shared().logEvent(AFEventPurchase, withValues: [AFEventParamRevenue: 29.99,AFEventParamCurrency: "USD"])// After (Tolinku) - ecommerce tracking (recommended)await tolinku.ecommerce.purchase(transactionId: "order_456",revenue: 29.99,currency: "USD",items: [TolinkuItem(itemId: "sku_1", itemName: "Sneakers", price: 29.99, quantity: 1)])// Or custom events for non-ecommerce trackingawait Tolinku.shared?.track("custom.signup_complete")Tolinku’s ecommerce module supports 13 event types with revenue attribution, conversion funnels, and cohort analysis. See Ecommerce Analytics for details.
-
Replace Smart Banners
If you used AppsFlyer Smart Banners, create equivalent banners in Tolinku. Tolinku smart banners support scheduling, segment targeting, priority-based display, and A/B testing.
-
Configure landing pages
Design custom landing pages for your routes using the visual builder. This replaces AppsFlyer’s link preview pages.
-
Test and verify
- Test Universal Links (iOS) and App Links (Android).
- Test deferred deep linking on fresh installs.
- Verify custom events appear in the analytics dashboard.
- Confirm referral attribution works (if using the referral system).
Key differences from AppsFlyer
Section titled “Key differences from AppsFlyer”- Attribution model. Tolinku uses first-party, last-click attribution based on your own deep links. It does not use IDFA/GAID fingerprinting or third-party attribution networks.
- Pricing. Tolinku charges per Appspace (flat monthly fee with usage tiers), not per conversion or per event. No per-install pricing.
- Data ownership. All analytics data is stored in your Appspace. You can export it as CSV or query it via the API at any time.