Skip to the page

Links

Deferred deep linking

Keep the destination through an install, and what each platform can do.

A deferred deep link remembers where a visitor wanted to go while they install the app. Someone taps a link, has no app, installs it from the store, opens it, and lands on the linked screen instead of the home screen.

What each platform can do#

Every match says how it was made (matchMethod) and how sure it is (confidence). Beck Links never fingerprints devices and never reads an advertising ID.

PlatformHowConfidenceWhen it works
AndroidGoogle Play Install Referrer (install_referrer)certainThe app was installed from Google Play after the click. Not for sideloads or other stores
iOSA click URL copied to the pasteboard by the landing page, read once by the app (pasteboard)certainYou turned it on in the dashboard and in the app (enablePasteboard: true), the visitor tapped Get the app, and allowed the paste prompt
BothAnything elsenoneThe install is organic and no deferred link is delivered

How it works#

  1. The visitor taps the link. Beck Links records a click and, for a store-bound visit, keeps what the app will need: the link, its path, data, parameters and, for an item pattern, the item. On Android the Play URL carries a click ID as the install referrer; on iOS the landing page's button copies a click URL.
  2. The visitor installs and opens the app. The SDK reports the first open with the evidence the platform gave it (the referrer, or the pasteboard click URL).
  3. Beck Links matches the click, within the project's window (7 days by default), and answers with a LinkEvent (isDeferred: true). A click matches one install only.
  4. The app receives it on onLink, like any link.

The deferred link is delivered once per install, also for a reinstall. getInitialLink() waits at most firstOpenTimeout (3 seconds by default); a match that arrives later updates attribution, but is not delivered as a link.

Turn it on#

Android. Nothing besides the platform setup. Install the app from Play.

iOS. Pasteboard deferred linking is on by default in the dashboard (Settings, environment card, iOS pasteboard matching; switch it off there if you do not want it). The app opts in in code, which is the step that is easy to forget:

Dart

The SDK reads the pasteboard only on the first run, only when iOS reports it probably holds a web URL, and only uses a click URL of your project environment. It never writes or clears the pasteboard.

Verify it works#

  • Android: upload a build to a Play internal testing track and join as a tester. Uninstall the app, tap a link (it opens the Play Store), install from Play, open the app. Builds installed with adb install or flutter run have no install referrer.
  • iOS: turn on pasteboard deferred linking, uninstall the app, tap a link in Safari, tap Get the app, install your build (TestFlight or Xcode), open it and allow the paste.

If the match is missing, see Troubleshooting.