Skip to content

Migrate from AppsFlyer

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

AppsFlyer conceptTolinku equivalent
App (AppsFlyer dashboard)Appspace
OneLink domain (xxx.onelink.me)Tolinku subdomain or custom domain
Dev keyAPI key (tolk_pub_ / tolk_sec_)
OneLink templateRoute (static or dynamic)
OneLink URLTolinku deep link URL
AppsFlyer SDKTolinku SDK
In-app events (revenue)Ecommerce events via ecommerce/track
In-app events (other)Custom events via analytics/track
Smart bannersSmart banners
  1. 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).

  2. 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.

  3. 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_dp and deep_link_value parameters map to your route’s prefix and token.

    Example:

    // AppsFlyer OneLink
    https://myapp.onelink.me/abc123?deep_link_value=product_456
    // Tolinku equivalent
    https://myapp.tolinku.com/product/456
  4. Swap the SDK

    Remove the AppsFlyer SDK and install the Tolinku SDK:

    PlatformRemoveInstall
    iOSAppsFlyerLibTolinkuSDK via SPM
    Androidcom.appsflyer:af-android-sdkcom.tolinku:sdk
    React Nativereact-native-appsflyer@tolinku/react-native-sdk
    Flutterappsflyer_sdktolinku
    WebAppsFlyer Web SDK@tolinku/web-sdk
  5. 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")
  6. 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)
    }
  7. 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 tracking
    await 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.

  8. 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.

  9. Configure landing pages

    Design custom landing pages for your routes using the visual builder. This replaces AppsFlyer’s link preview pages.

  10. 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).
  • 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.