The destination survives the install
The gap between a click and a first launch is the one place the operating systems cannot help you. Closing it honestly is the entire product.
The missing layer between user intent and the experiences brands promise.
A click. A scan. A shared link. The destination exists before the app does.
Take me exactly there. Nothing in that promise mentions an app store.
Browsers, stores, devices, apps. The terrain shifts at every boundary.
The platforms hand off cleanly. What the user wanted does not survive the handoff.
Scale is not the hard part. Precision at scale is the hard part.
The seconds between the click and the open decide whether the journey survives.
Infrastructure is judged at street level, by one person holding one device.
The journey resolves exactly where it was promised to go.
Someone taps a link to one specific thing — a product, a playlist, a checkout that is already half finished. The app isn't installed yet, so the phone sends them to the store. They wait. They install. They open. And they land on a home screen that has never heard of them.
A person decides where they want to go.
The phone passes them to the store. The destination has nowhere to live.
Minutes pass. The click and the open are now strangers.
A generic home screen. The promise is gone, and so is the attribution.
the breakThe operating system has nowhere to put the destination while the app does not exist. Everything after this point is a guess — unless something recorded the click.
Nobody involved did anything wrong. The platforms simply have nowhere to keep a destination while an app is being installed.
Optolink holds the intent from the moment of the click, and hands it back the instant the app opens — however many minutes, screens and store pages happened in between. When it cannot be certain, it says so rather than guessing quietly.
A one-time token written on a real tap and read on first launch. Not an inference — this is the same journey, and we can prove it.
On Android, Google Play carries the referrer through the install. Signed by the store rather than reconstructed by us.
Model, OS build, screen, locale, timezone and network all agree between the click and the open.
They changed networks, or updated the OS while they waited. What still matches is weighed rather than thrown away.
A network-level match. It is a guess, it is labelled as a guess, and it still beats a home screen.
Every resolution arrives with its own confidence attached. You are never told a match happened without being told how much to trust it.
Five ways in. One destination each — the exact screen the link named, and the method that got it there.
A paid click lands on a domain that carries your name. The destination survives the store, and the install is credited to the work that earned it.
The install carries the referrer through the store itself. Signed by Google Play, not inferred by us.
The gap between a click and a first launch is the one place the operating systems cannot help you. Closing it honestly is the entire product.
When the preferred path is unavailable, the journey still ends somewhere deliberate — the store, the web page, the sensible second choice. Never a blank screen.
Routing and attribution are the same record, written once. The link that earned the install is a fact you can query, not a model you have to believe.
Deep linking is easy to demonstrate and hard to operate. These decide whether it survives a real customer, a real security review, and a real Monday morning.
Point a CNAME and Optolink provisions and renews the certificate. The links people click carry your name, not a shortener's.
Apple's and Android's association files are produced from your app configuration and served on your domain. One less file for someone to forget to redeploy.
Every link, domain, key and match belongs to an organisation. Two customers can both own /summer and never collide.
Stored hashed, listed by prefix, revoked individually. A leaked key is a rotation, not an incident.
Immutability enforced by the database, not by convention. It survives a compromised application server, which is the only time anyone reads it.
The endpoint that resolves identity is rate-limited at the edge. That is the one worth protecting, so it is the one protected.
An attribution number that arrives without its method invites you to assume it is exact. Optolink records how each match was made and how sure it is, so you can tell a deterministic install from a network-level guess. That distinction is the difference between reporting a result and defending one.
The link, the campaign, the code, the message.
Captured with what the device offered at that moment.
One method answers. Its confidence travels with it.
The install, tied back to the thing that caused it.
Direct opens and recovered journeys arrive through the same handler, carrying the same shape. There is very little surface area here, which is the point — the complexity belongs on our side of the boundary.
// main.dart — before runApp()
await OptoLink.initialize(
OptoLinkConfig(
apiKey: 'ol_live_…',
orgKey: 'acme',
clipboardEnabled: true, // false skips the iOS 16+ paste banner
),
);
// One stream. Direct opens and deferred installs arrive the same way.
OptoLink.instance.onLink.listen((OptoLinkData link) {
if (link.confidence == 'exact') {
grantReferralCredit(link.params['ref']);
}
router.go(link.path, extra: link.params);
});
Infrastructure is judged at street level. One person. One device.
Cross a limit on any paid plan and eligible links keep resolving. If your accepted checkout or order includes overage, those terms apply on the invoice rather than interrupting users. The billing model is designed around continuity rather than an upgrade wall.
Starter
Free
free, every month
Growth
EGP 2,450
per month
Scale
EGP 7,500
per month
For users who already have your app installed, it isn't — Optolink lets the platform handle that path directly and adds nothing to it. The difference is the user who doesn't have the app yet. iOS and Android have no mechanism to carry a destination through an App Store install, so the payload is lost. Recovering it is the entire job of the deferred matching chain.
It covers the same core need: deep links, deferred deep links, custom domains, and QR codes. Firebase was free and unlimited. Optolink uses a different commercial model: a free quota that renews monthly, with paid plans starting at EGP 950 per month.
It depends which method answers, and Optolink tells you which one did. A clipboard token or a Play Install Referrer is deterministic — that is a match, not a probability. An exact device fingerprint is high confidence. A weighted fingerprint is medium. An IP-only match is low, and is reported as low. Deferred matching is not exact in every case; Optolink reports which kind of result you received.
Yes. On iOS 16 and later, reading the clipboard shows the user a paste notification. Some teams accept it because it buys deterministic matching; others will not ship it. Set clipboardEnabled: false and the chain simply starts at the next method — the SDK is designed for that to be a normal configuration rather than a degraded mode.
The Flutter SDK, and your app configuration in the portal — bundle ID, team ID, SHA-256 fingerprints, store URLs, URI scheme, and a web fallback. Optolink generates and serves the apple-app-site-association and assetlinks.json files from those values, so the platform manifests stop being a file someone has to remember to redeploy.
Flutter today, covering iOS 13+ and Android API 21+. Native iOS, Android, and React Native SDKs are on the roadmap and not shipped — if you are not on Flutter, that is a real constraint you should weigh now rather than discover during integration.
Yes. Add the domain in the portal, point a CNAME, and Optolink verifies it and provisions the certificate. Renewal is automatic, and resolved links can carry your own domain rather than a generic shortener domain.
On any paid tier, eligible links keep resolving and excess usage is billed under the overage terms shown before purchase in your checkout or order. The free quota is the exception: it stops at its limit so that production traffic moves onto a paid plan with continuity built in.
Bring us the journey that keeps breaking — the campaign that can't prove its installs, the printed code that lands on a home screen, the checkout link that only works for people who already have the app.
Optolink is built and operated by Optomatica