Documentation

Build with LinkTrail

Everything you need to ship deferred deep links, smart routing, and privacy-first attribution across iOS, Android, and web.

Get started

Platforms

Consent & privacy

Verify & troubleshoot

Guides

API

Frequently asked questions

How do I integrate the LinkTrail SDK?

Four calls. Configure with your API key at launch, register an onLink handler to route incoming links, forward OS links with handleDeepLink, and call setConsent when your consent prompt resolves — the install is held until you do, and grant sends it attributed while deny only routes the deferred link. The Quickstart guide walks through both the dashboard setup and the app code in about five minutes.

Which SDKs does LinkTrail provide?

Four: iOS via Swift Package Manager or CocoaPods (iOS 15+), Android via Maven Central (minSdk 26), React Native as a New Architecture TurboModule, and Flutter as a pub.dev plugin. The React Native and Flutter packages wrap the same native SDKs, so behaviour is consistent across all of them.

Why do my deep links open the browser instead of my app?

Almost always domain verification rather than SDK code — a signing-fingerprint mismatch or a stale cache in the AASA or assetlinks.json file. Note that typing a URL in the address bar never opens an app on either platform by design; test by tapping a link from another app instead.

Do I need to obtain user consent before the SDK collects data?

Yes, and the SDK is built for it. Consent gating is on by default on every platform and holds the install: nothing is sent and no deferred link routes until your app calls setConsent(true) or setConsent(false). Grant sends the install attributed; deny sends one uncounted install that only resolves the deferred link, so the user still reaches the right screen. Re-engagement links route regardless. As the controller, obtaining that consent is your responsibility.

Does the LinkTrail SDK collect the IDFA or Google Advertising ID?

No. The SDK never accesses the Apple IDFA, with or without App Tracking Transparency permission, and never reads the Google Advertising ID. On iOS it generates a random, app-scoped per-install UUID (no IDFV); on Android it uses the App Set ID, with a random UUID as fallback — identifiers scoped to you as the developer and not shared across companies.