Deep links. Open de app. Val soepel terug.
Universal Links- en App Links-manifests, geserveerd vanaf je aangepaste domein. iOS opent je app bij een tik; Android doet hetzelfde. Browserfallback op desktop.
- Universal Links (iOS) en App Links (Android) geserveerd vanaf je domein
- Deferred deep links - context overleeft app-installatie
- Slimme platformdetectie met soepele fallbacks
- Geen SDK vereist - werkt met standaard OS-mechanismen
Universal Links & App Links
Manifestbestanden, automatisch geserveerd vanaf je domein
iOS Universal Links vereisen een apple-app-site-association -bestand. Android App Links vereisen assetlinks.json. Elido genereert en serveert beide automatisch vanaf je aangepaste domein - geen aparte hosting, geen handmatig bestandsbeheer.
- iOS Universal LinksBundle-ID + Team-ID → AASA automatisch geserveerd op /.well-known/
- Android App LinksPackagenaam + SHA-256-vingerafdruk → assetlinks.json, HTTPS afgedwongen
- Fallback voor slimme linksApp niet geïnstalleerd → App Store / Play Store via regelgebaseerde routering
- UTM-doorgifteUTM-parameters behouden tot de store-URL - attributie loopt niet stuk
- Geen SDK in je appAlleen onderschepping op OS-niveau; intent-filter en continueUserActivity
{ "applinks": { "apps": [], "details": [ { "appID": "TEAMID.com.yours.app", "paths": [ "/product/*", "/referral/*", "/invite/*" ] } ] } }
[{ "relation": [ "delegate_permission/ common.handle_all_urls" ], "target": { "namespace": "android_app", "package_name": "com.yourcompany.app", "sha256_cert_fingerprints": [ "AB:12:CD:34:EF:56:..." ] } }]
Automatisch geserveerd vanaf je aangepaste domein. Configureer bundle-ID + Team-ID (iOS) of packagenaam + SHA-256-vingerafdruk (Android) in de domeininstellingen - Elido genereert en host beide bestanden.
Deferred deep links
Context die de installatie overleeft
Als de app niet is geïnstalleerd, gaat de gebruiker naar de store, installeert de app en opent deze. Deferred deep-linking geeft de oorspronkelijke deep-link-context door tijdens die reis, zodat de app de gebruiker na de eerste keer opstarten precies op het juiste scherm kan laten landen.
- 01
Klikt op link
Gebruiker tikt op een korte link van Elido - vanuit e-mail, social, QR.
go.jouwbedrijf.com/p/12345 - 02
Geen app → Store
App niet geïnstalleerd. OS detecteert dit via de AASA-/assetlinks-controle. Valt terug op App Store of Play Store.
iOS → App Store · Android → Play Store - 03
Installeert de app
Gebruiker installeert vanuit de store. De installatieverwijzing draagt de klikcontext als queryparameter.
click_id + UTM behouden in de verwijzings-URL - 04
Opent de app
App opent voor het eerst. MMP leest de installatieverwijzing; koppelt click_id aan de installatiegebeurtenis.
Appsflyer / Adjust / Branch pikt het op - 05
Landt op exact de juiste pagina
App routeert naar het oorspronkelijk gelinkte scherm - product/12345 - alsof de gebruiker de app al had.
product/12345 - context behouden tijdens installatie
De click_id en UTM-parameters van de oorspronkelijke korte link worden als queryparameters doorgegeven aan de store-URL. Mobile Measurement Platforms (MMP's) die de installatieverwijzing vastleggen - Appsflyer, Adjust, Branch - kunnen de installatie koppelen aan de oorspronkelijke klik. Volledige deferred deep-linking (in-app-context doorgeven tijdens installatie) vereist de MMP-SDK in je app; Elido dekt de linklaag.
Slimme platformdetectie
Eén link. Drie redirectpaden.
De edge leest User-Agent- en platformsignalen in de redirectlaag - voordat er enige JS draait. iPhone krijgt Universal Links, Android krijgt App Links, desktop krijgt je webfallback. Geen JavaScript-redirectvertraging; geen client-side platformdetectie.
- UA-parsing bij de edge, in submilliseconden
- iOS → onderschepping van Universal Link door het OS
- Android → onderschepping van App Link via intent-filter
- Desktop → web-URL, geen omweg via de store
- In-app-browsers gedetecteerd en doorgestuurd naar de systeembrowser
- Werkt samen met regels voor slimme links - geo + apparaat + deep-link
Wat je kunt doen
- Apple App Site Association
- Android Asset Links
- Regels voor slimme links voor store-fallback
- Getest met adb en xcrun
Hoe deep links écht werken - en waar ze stuklopen
Universal Links en App Links zijn mechanismen op OS-niveau. De opzet is eenvoudig; de randgevallen zijn dat niet. Dit dekt het volledige plaatje.
apple-app-site-association automatisch geserveerd vanaf je aangepaste domein
Universal Links vereisen een apple-app-site-association-bestand (AASA) op /.well-known/apple-app-site-association op je aangepaste domein. iOS downloadt dit bestand zodra je app is geïnstalleerd; het koppelt je domein aan de bundle-ID en team-ID van je app. Als de koppeling klopt, opent het tikken op een HTTPS-link op je domein in elke iOS-app (Safari, Mail, Twitter, Instagram) rechtstreeks je app in plaats van een browser. Elido genereert en serveert het AASA-bestand automatisch vanaf het well-known-pad van je aangepaste domein, op basis van de bundle-ID en team-ID die je instelt in de domeininstellingen. Je hoeft het bestand niet apart te hosten. iOS cachet het AASA-bestand en downloadt het periodiek opnieuw; als je de bundle-ID-configuratie in de domeininstellingen van Elido wijzigt, is de nieuwe AASA binnen seconden live, maar iOS-toestellen pikken deze pas op bij hun volgende cache-refresh (doorgaans 24-48 uur, of bij herinstallatie van de app). Getest tegen de AASA-validator van Apple bij elke release van Elido.
assetlinks.json automatisch geserveerd - SHA-256-vingerafdruk uit je ondertekeningssleutel
Android App Links vereisen een Digital-Asset-Links-bestand op /.well-known/assetlinks.json op je domein. Het bestand koppelt je domein aan de packagenaam van je app en de SHA-256-vingerafdruk van je ondertekeningscertificaat. Android controleert dit bestand bij het installeren van de app en daarna periodiek opnieuw. Elido serveert het automatisch vanaf je aangepaste domein, op basis van de packagenaam en SHA-256-vingerafdruk die je instelt. Voor Android-verificatie is HTTPS vereist (afgedwongen door de TLS van Elido op het aangepaste domein) en moet het bestand binnen enkele seconden reageren (ook geregeld). Een veelvoorkomend probleem: verschillende ondertekeningssleutels voor debug- versus release-builds hebben andere SHA-256-vingerafdrukken. Configureer beide vingerafdrukken in de domeininstellingen van Elido als je test met een debug-build; productie-builds hebben alleen de release-vingerafdruk nodig. Getest met adb shell pm get-app-links bij elke release.
App geïnstalleerd → deep link. App niet geïnstalleerd → store. Desktop → web. UTM overal behouden.
De fallback-keten wordt per link of per domein ingesteld in de instellingen van Elido. Voor een korte link met deep-link-configuratie: als het besturingssysteem de tik onderschept (app geïnstalleerd, domein geverifieerd), opent de app. Zo niet (app niet geïnstalleerd), opent de link in de browser; de browserbestemming moet je App Store-/Play Store-link of een webfallback zijn. Regels voor slimme links regelen dit netjes: configureer een regel voor iOS → App Store-URL, een regel voor Android → Play Store-URL, en fallback naar de webbestemming. UTM-parameters uit de oorspronkelijke korte link blijven behouden in de fallback-URL's, zodat attributie niet stukloopt wanneer de gebruiker bij de store belandt. Deferred deep linking (een specifiek deep-link-pad doorgeven via een installatie, zodat de app na installatie op het juiste scherm opent) vereist een SDK in de app - Elido biedt dit niet. Voor deferred deep linking heb je nog steeds Appsflyer, Adjust of Firebase App Distribution nodig.
Retargeting na installatie: click-ID doorgegeven aan de bestemming voor attributie
Bij een deep-link-redirect geeft Elido de click_id door als queryparameter aan de fallback-URL. Als de gebruiker in de App Store belandt en de app installeert, staat de click_id in de verwijzings-URL maar wordt deze niet automatisch doorgegeven aan de app na installatie - dat vereist SKAdNetwork op iOS of een deferred-deep-link-SDK op Android. Wat Elido doet: de click_id en UTM-parameters worden doorgegeven aan de store-URL, zodat een mobiel attributieplatform (MMP) dat de installatieverwijzing vastlegt, ze kan oppikken. Dit werkt met Appsflyer en Adjust als je de click_id doorgeeft in de campagneparameter van de store-URL. Gebruik je geen MMP, dan raakt de click_id in de store-URL na installatie feitelijk verloren.
Migreren vanaf Firebase Dynamic Links (uitgefaseerd in 2025)
Firebase Dynamic Links werd in 2025 door Google uitgefaseerd. Elido kan het kernpatroon afhandelen: één HTTPS-korte-link die het juiste scherm opent in een geïnstalleerde app, terugvalt op de store, en op desktop terugvalt op web. Configureer de AASA en assetlinks.json in de domeininstellingen van Elido (vervangt de Firebase-hosting van deze bestanden), werk je deellinks bij zodat ze naar Elido-korte-links wijzen in plaats van page.link-URL's, en configureer de fallback-keten via regels voor slimme links. Wat Elido niet nabootst: de deferred deep-linking van Firebase (post-install-deep-link-context via de Firebase-SDK) en Firebase's App-Distribution-deep-links. Als je app sterk leunt op deferred deep-linking, heb je naast Elido nog Appsflyer, Adjust of Branch nodig voor de attributielaag. Voor apps die alleen 'open het juiste scherm als geïnstalleerd, anders naar de store' nodig hebben, vervangt Elido Firebase Dynamic Links volledig.
Mobiele teams die deep links van Elido gebruiken
Namen zijn voorlopig placeholders - echte klantnamen komen hier zodra casestudies worden gepubliceerd.
“We migreerden weg van Firebase Dynamic Links in de week dat de uitfasering werd aangekondigd. De AASA- en assetlinks.json-opzet in Elido kostte een halve dag. De fallback-keten van slimme links verving de Firebase-SDK-logica die we in de app hadden voor store-routering.”
“Klikanalytics per link op deep links lieten zien dat 35% van onze deellinks op desktop werd aangeklikt - we hadden geen webfallback ingesteld. De fallback toevoegen kostte 10 minuten; het conversiepercentage van deellinks steeg omdat gebruikers die vanaf desktop klikten nu de actie konden voltooien.”
“We gebruiken Elido-korte-links met deep-link-configuratie voor doorverwijzingsprogramma's. Doordat UTM wordt doorgegeven aan de App Store-URL, pikt onze MMP de installatieverwijzing correct op - attributie werkt zonder dat wij zelf SDK-werk hoeven te doen.”
Deep links van Elido versus Branch.io versus Adjust versus Firebase Dynamic Links (uitgefaseerd)
Branch en Adjust zijn volwaardige mobiele attributieplatforms - krachtiger voor deferred deep-linking en MMP-attributie. Elido is de juiste tool wanneer deep links onderdeel zijn van een bredere shortener-opzet, niet het hoofdproduct.
| Feature | Elido | Branch.io | Adjust |
|---|---|---|---|
| Universal Links (iOS) | Automatisch geserveerde AASA vanaf je domein | Volledig beheerd op schaal | Nee - alleen MMP, geen deep-link-host |
| App Links (Android) | Automatisch geserveerde assetlinks.json vanaf je domein | Volledig beheerd | Nee |
| SDK vereist in de app | Nee - onderschepping op OS-niveau | Ja - Branch-SDK | Ja - Adjust-SDK |
| Deferred deep-linking | Nee - vereist SDK in de app | Ja - kernfunctie | Ja - met Adjust-SDK |
| Mobiele attributie (MMP) | Click-ID-doorgifte; MMP-koppeling handmatig | Native MMP - integraties met Appsflyer, Kochava | Volwaardig MMP-platform |
| UTM-doorgifte naar de store | Ja - via queryparameter op de fallback-URL | Ja, met attributiecontext | Ja |
| Analytics op linkklikken | Analyticsopslag - geo, apparaat, per link | Diepgaande mobiele attributieanalytics | Installatie- en eventattributiedata |
| Vervanging van Firebase Dynamic Links | Ja voor het basispatroon; geen deferred deep-link | Volledige vervanging, inclusief deferred | Gedeeltelijk - alleen MMP-kant |
Vragen over deep links
Heb ik een Branch-SDK of enige SDK in mijn app nodig om deep links van Elido te gebruiken?
Nee. Deep links van Elido gebruiken iOS Universal Links en Android App Links - mechanismen op OS-niveau. Je app hoeft alleen de binnenkomende URL af te handelen op de standaard iOS-manier (scene:openURLContexts of application:continueUserActivity) of Android-manier (intent-filter in het manifest). Er wordt geen SDK van derden geïnstalleerd; het besturingssysteem handelt de onderschepping af op basis van de AASA- en assetlinks.json-bestanden die Elido vanaf je domein serveert.
Hoe verloopt de AASA-opzet?
In de domeininstellingen van Elido → Deep links: voer de bundle-ID van je iOS-app in (bijvoorbeeld com.jouwbedrijf.app) en het Apple Team ID (tekenreeks van 10 tekens uit je Apple Developer-account). Elido genereert de AASA-JSON en serveert deze op /.well-known/apple-app-site-association op je aangepaste domein. Controleer met curl of het bereikbaar is voordat je je app indient bij TestFlight of de App Store. iOS downloadt het AASA-bestand tijdens de app-installatie op toestellen met iOS 9 en hoger.
Kan ik meerdere apps op één domein hebben?
Ja - het AASA-bestand ondersteunt meerdere app-vermeldingen. Configureer de bundle-ID en het Team ID van elke app in de domeininstellingen; Elido genereert een gecombineerde AASA met alle apps vermeld. De assetlinks.json van Android ondersteunt ook meerdere combinaties van packagenaam + vingerafdruk. Veelvoorkomende toepassing: hoofdapp en een App Clip, of hoofdapp en een widget-extensie.
Firebase Dynamic Links uitgefaseerd - wat is het migratiepad?
Vervang korte page.link-URL's door Elido-korte-links (je aangepaste domein of het gedeelde Elido-domein). Configureer AASA en assetlinks.json in de domeininstellingen van Elido. Stel de fallback-keten in via regels voor slimme links (iOS-regel → App Store, Android-regel → Play Store, fallback → web). Werk het genereren van deellinks in je app bij zodat het de create_link-API van Elido aanroept in plaats van Firebase. Wat niet migreert: als je app leunt op de deferred deep-linking van Firebase (post-install-intentdoorgifte), heb je Branch of Adjust nodig voor dat onderdeel.
Hoe test ik Universal Links voordat ik publiceer naar de App Store?
Gebruik xcrun simctl openurl booted 'https://go.jouwbedrijf.com/test-slug' met je app geïnstalleerd op een simulator. Op een fysiek toestel met een debug-build houd je een link in Safari lang ingedrukt en kijk je of 'Open in jouw app' verschijnt. Apple biedt ook de App Association File Validator op developer.apple.com - plak je AASA-URL en deze controleert bereikbaarheid, Content-Type en JSON-geldigheid. De AASA van Elido doorstaat alle drie de controles.
Wat is deferred deep-linking en waarom doet Elido dit niet?
Deferred deep-linking geeft context door (bijvoorbeeld 'gebruiker bekeek product-ID 123') van de linkklik, door een app-installatie heen, tot in de eerste keer opstarten van de app. Dit vereist een fingerprinting- of attributie-SDK in de app (Branch, Appsflyer, Adjust) die de installatie tijdens het installatieproces koppelt aan de klik. Elido installeert geen SDK-code in je app; we serveren alleen de AASA en assetlinks.json. Zonder de SDK is er geen mechanisme om context door een installatie heen door te geven. Voor het basisgeval 'open het juiste scherm als geïnstalleerd' volstaat Elido. Om intentie door een installatie heen door te geven, heb je een MMP nodig.
Kan ik deep links gebruiken op het gedeelde domein van Elido (s.elido.me)?
Nee. Universal Links en App Links vereisen je eigen domein - je kunt *.elido.me niet claimen als Universal-Link-domein voor je app. Deep links vereisen een aangepast domein bij Pro of Business. Het aangepaste domein is wat je configureert in je AASA en assetlinks.json, en Elido serveert die bestanden ervanaf.
Hoe ga ik om met het geval waarin de browser van de gebruiker de app-onderschepping blokkeert?
Sommige browsers (met name Chrome op Android vóór 6.0, en sommige in-app-browsers zoals die van Instagram) blokkeren onderschepping door App Links of Universal Links. De fallback-URL is wat ze te zien krijgen. Voor in-app-browsers: leid eerst door naar de systeembrowser met een intent-URL (Android) of een gebruikersprompt. Voor de in-app-browsers van Instagram/TikTok: de standaardaanpak is het tonen van een prompt 'tik om te openen in je browser'. Elido injecteert deze prompt niet automatisch - de fallback-URL is jouw bestemming, en jij bepaalt wat daar gebeurt.
Verder lezen
Configuratie van aangepast domein - vereist voor deep links; AASA en assetlinks.json geserveerd vanaf je hostnaam.
iOS → App Store, Android → Play Store, desktop → web - de fallback-keten met regels voor slimme links.
Hoe productteams deep links gebruiken naast A/B-varianten en regels voor slimme links.
MMP-integraties - Appsflyer, Adjust en Branch voor deferred deep-linking naast Elido.
Klaar om het te proberen?
Begin met het gratis plan, upgrade wanneer je een custom domain nodig hebt.