Deeplinking is het gebruik van een link die een specifiek scherm in een mobiele app opent, in plaats van het startscherm van de app of een webpagina. Een deeplink (vaak als één woord geschreven, "deeplink") is de link zelf: een URL die genoeg informatie bevat zodat de telefoon de juiste app opent en de app de juiste content toont.
Zo ziet het verschil er in de praktijk uit, met een verzonnen recepten-app als voorbeeld:
| Link | Wat er gebeurt als je erop tikt |
|---|---|
https://apps.apple.com/app/id0000000000 | Opent de pagina van de app in de store. Er gebeurt niets in de app zelf. |
https://recipes.example.com/ | Opent de homepage van de website in een browser. |
https://recipes.example.com/recipes/lemon-tart | Met deeplinking ingesteld opent dit de app direct op het recept voor citroentaart. Zonder de app opent hetzelfde recept op de website. |
recipeapp://recipes/lemon-tart | Opent de app op het recept voor citroentaart, maar alleen als de app geïnstalleerd is. |
De laatste twee rijen zijn deeplinks.
Wat is deeplinking, en wat betekent "deeplink"?
Op het web heeft elke pagina een eigen adres. Apps begonnen niet zo: tik je op een app-icoon, dan kom je binnen via de voordeur en zoekt de gebruiker vanaf daar zelf zijn weg. Deeplinking geeft schermen in een app hun eigen adres. "Deep" verwijst naar de bestemming: content voorbij het startscherm. Deep link en deeplink betekenen allebei de link, en deeplinking is de techniek.
Een deeplink heeft twee taken:
- De telefoon de juiste app laten openen. Het besturingssysteem moet herkennen dat deze URL bij jouw app hoort en niet bij de browser.
- De app vertellen waar hij heen moet. Het pad en de parameters in de URL (bijvoorbeeld
/recipes/lemon-tartof?code=SPRING) vertellen je app welk scherm hij moet tonen en welke data hij moet laden.
iOS en Android regelen de eerste taak. De tweede is altijd je eigen code: de app ontvangt de URL, leest hem en navigeert.
Hoe werken deeplinks op iOS?
iOS biedt je twee manieren om een link je app te laten openen: custom URL schemes en Universal Links.
Custom URL schemes
Een custom URL scheme is een prefix die je zelf bedenkt en registreert voor je app, zoals recipeapp://. Elke link die met die prefix begint, wordt aan je app doorgegeven.
Custom schemes zijn snel ingesteld, maar beperkt. Apple's documentatie over het definiëren van een custom URL scheme zegt dat custom schemes "een acceptabele vorm van deeplinking" zijn, maar dat universal links "sterk aanbevolen" worden. Twee redenen springen eruit:
- Niets houdt een andere app tegen om hetzelfde scheme te registreren. Als twee apps het claimen, is volgens Apple niet gedefinieerd welke app het systeem kiest.
- Een URL met een custom scheme is geen webadres, dus er is niets om op terug te vallen. Als de app niet geïnstalleerd is, mislukt de link, en op iOS kan de gebruiker een foutmelding zien dat Safari de pagina niet kan openen.
Universal Links
Een Universal Link is een gewone https://-link naar je eigen website die iOS in plaats daarvan in je app opent. Apple's handleiding over apps en websites laten linken naar je content beschrijft het gedrag: als iemand op een universal link tikt, stuurt het systeem die direct naar je app zonder via de browser te gaan, en als die persoon je app niet geïnstalleerd heeft, opent dezelfde URL in de browser zodat je website hem kan afhandelen. Eén URL werkt voor allebei.
Om aan te tonen dat de app en de website dezelfde eigenaar hebben, stel je een koppeling in twee richtingen in:
- Op je website host je een bestand met de naam
apple-app-site-associationin de map.well-known. Daarin staan de identifier van je app en de URL-paden die de app afhandelt. - In je app voeg je in Xcode de capability Associated Domains toe met een regel zoals
applinks:recipes.example.com.
Wanneer de app geïnstalleerd wordt, downloadt iOS het bestand en controleert of beide kanten overeenkomen. De details staan in Apple's handleiding over het ondersteunen van associated domains.
Hoe werken deeplinks op Android?
Android gebruikt dezelfde twee ideeën, allebei gebouwd op intent filters.
Intent filters en custom schemes
Een intent filter is een regel in de AndroidManifest.xml van je app die Android vertelt welke links een activity kan openen. Google's handleiding over het maken van deeplinks somt op wat de filter nodig heeft: de action VIEW, de categorieën DEFAULT en BROWSABLE (zonder BROWSABLE kan een link waarop in een browser getikt wordt je app niet bereiken), en een of meer <data>-tags die de URL's beschrijven, met minimaal een scheme.
Een filter met het scheme recipeapp zorgt dat recipeapp://...-links je app openen. Je kunt op deze manier ook https-links declareren, maar Google merkt op dat gewone deeplinks onderhevig zijn aan het keuzevenster van het systeem: de prompt "Openen met" die de gebruiker laat kiezen tussen jouw app en andere apps die de link kunnen afhandelen.
Android App Links
Android App Links zijn de geverifieerde versie, en het Android-equivalent van Universal Links. Volgens Google's App Links-documentatie leggen ze een vertrouwde koppeling tussen je app en je website, zodat geverifieerde links direct in je app openen, zonder keuzevenster. Ze worden ondersteund op Android 6 en hoger, op apparaten met Google-services.
De setup lijkt op die van iOS:
- Voeg
android:autoVerify="true"toe aan de intent filter voor jehttps-links. - Host een Digital Asset Links-bestand op
https://your-domain/.well-known/assetlinks.jsonmet daarin je app en het bijbehorende signing certificate.
Wanneer de app geïnstalleerd wordt, haalt Android voor elk domein in je intent filters het bestand op en verifieert het. Als de verificatie niet slaagt, werken je links nog steeds als gewone deeplinks, maar kunnen ze de browser openen of de kiezer tonen.
Wat zijn de belangrijkste soorten deeplinks?
| Type | Ziet eruit als | Als de app geïnstalleerd is | Als de app niet geïnstalleerd is |
|---|---|---|---|
| Custom URL scheme (iOS en Android) | recipeapp://recipes/lemon-tart | Opent de app | Mislukt, vaak met een foutmelding |
| Universal Link (iOS) | https://recipes.example.com/recipes/lemon-tart | Opent de app direct | Opent de webpagina |
| App Link (Android) | https://recipes.example.com/recipes/lemon-tart | Opent de app direct, zonder kiezer | Opent de webpagina |
| Deferred deeplink | Meestal een https://-link van een linkplatform | Opent de app op het juiste scherm | Stuurt de gebruiker naar de store en levert de bestemming bij de eerste keer openen |
| Contextuele deeplink | Een van de bovenstaande plus parameters, zoals ?ref=MIKEYB | Opent de app en geeft de extra data door | Hangt af van het onderliggende type |
Universal Links en App Links staan niet los van deeplinks. Ze zijn de aanbevolen manier om ze op elk platform te bouwen. "Deferred" en "contextueel" beschrijven wat een link kan doen, dus één link kan tegelijk een Universal Link, deferred en contextueel zijn.
Voor de afwegingen in meer detail, zie onze vergelijking van deeplinks, Universal Links en deferred deeplinks.
Wat is deferred deeplinking, en wanneer heb je het nodig?
Deferred deeplinking is deeplinking die een installatie overleeft. Als de persoon die op de link tikt de app nog niet heeft, wordt die eerst naar de App Store of Google Play gestuurd, en wordt de oorspronkelijke bestemming aan de app geleverd zodra die voor het eerst opent. De link heet "deferred" (uitgesteld) omdat zijn taak wordt uitgesteld tot na de download.
Universal Links en App Links doen dit geen van beide op zichzelf. Allebei vallen ze terug op de website als de app ontbreekt, en na een installatie opent de app op het startscherm zonder iets van de link te weten.
Hoe een deferred deeplink werkt
- De gebruiker tikt op de link. Die gaat naar een server van jou of van je linkplatform, die de bestemming en eventuele parameters vastlegt.
- De server controleert het apparaat. Als de app geïnstalleerd is, opent de link hem direct. Zo niet, dan wordt de gebruiker doorgestuurd naar de juiste store.
- De gebruiker installeert de app en opent hem.
- Bij de eerste keer opstarten vraagt een SDK in de app welke link tot deze installatie heeft geleid en ontvangt de bestemming en parameters.
- Je app stuurt de gebruiker naar dat scherm.
Stap 4 is het lastige deel, en die verschilt per platform. Op Android biedt Google Play de Play Install Referrer API, waarmee een app de referrer-URL van zijn eigen installatie kan ophalen, samen met de tijdstippen van de klik en het begin van de installatie. Op iOS geeft de App Store niet op dezelfde manier een referrer-string aan de app door, dus bewaren linkplatforms de linkgegevens op hun eigen servers en geven ze die terug wanneer de net geïnstalleerde app zich meldt.
Wanneer je er een nodig hebt
Je hebt deferred deeplinking nodig wanneer veel mensen die op je links tikken de app nog niet hebben, en waar ze na de installatie terechtkomen het resultaat bepaalt:
- Referral- en uitnodigingslinks. De nieuwe gebruiker moet zien wie hem heeft uitgenodigd en de beloning ontvangen.
- Affiliate- en creatorlinks. De verkoop moet worden toegekend aan de persoon die de link heeft gedeeld.
- Promoties en gedeelde content. Iemand die op een link naar een specifieke aanbieding, product of artikel tikte, moet daar na de installatie op uitkomen.
Als je links alleen naar bestaande gebruikers gaan, zijn standaard Universal Links en App Links genoeg. Onze gids over deferred deeplinks voor app-marketing gaat dieper in op de marketingtoepassingen. Als je hiervoor Firebase Dynamic Links gebruikte: die dienst is in augustus 2025 gestopt; zie wat Firebase Dynamic Links vervangt.
Waarom gaan deeplinks kapot?
Deeplinks zijn afhankelijk van overeenstemming tussen je website, je app en het besturingssysteem, dus er zijn meerdere plekken waar het mis kan gaan.
Het koppelingsbestand ontbreekt of klopt niet
De meeste problemen met Universal Links en App Links komen terug op het bestand op je webserver. Apple stelt dat het apple-app-site-association-bestand via https:// moet worden geserveerd, met een geldig certificaat en zonder redirects. Apple vereist ook dat elk subdomein een eigen vermelding heeft en een eigen bestand serveert. Op Android is een verkeerde certificaat-fingerprint in assetlinks.json een veelvoorkomende boosdoener.
De verificatie op Android is niet geslaagd
Als de verificatie van App Links niet lukt, behandelt Android je links als gewone weblinks, dus krijgt de gebruiker de browser of een kiezer. Google's documentatie merkt op dat het systeem op Android 11 en lager je app alleen de standaard-handler maakt als het voor elke host in het manifest een passend bestand vindt, dus één verkeerd ingesteld domein kan de andere beïnvloeden.
Er werd getikt op een plek waar links zich anders gedragen
Apple documenteert één verrassend geval: als een gebruiker je website in Safari bekijkt en op een universal link naar hetzelfde domein tikt, houdt iOS hem in Safari, in de veronderstelling dat hij in de browser wil blijven. Links naar een ander domein openen de app. Het gedrag kan ook verschillen als een link wordt geopend in de ingebouwde browser van een andere app, of als een e-mailtool je link herschrijft zodat die via zijn eigen domein voor klikmeting loopt, omdat het domein dat wordt geopend dan niet meer het domein is dat aan je app gekoppeld is. Test links op de plekken waar je publiek er echt op tikt.
De app opent maar komt uit op het startscherm
Het besturingssysteem heeft zijn werk gedaan, je app niet. Ofwel handelt de app dat URL-pad niet af, ofwel draait de handler voordat de app klaar is om te navigeren (bijvoorbeeld voordat de gebruiker is ingelogd). Bewaar de bestemming tot de app die kan tonen.
Wat doet een deeplinkplatform?
Een deeplinkplatform is een dienst die deeplinks voor je maakt en beheert, zodat één link zich op elk apparaat correct gedraagt. Insert Links, de deeplinks die in Insert Affiliate zijn ingebouwd, zijn een voorbeeld, en Branch en AppsFlyer zijn er nog twee. Basis-deeplinking kun je zelf bouwen met de functies hierboven. Een platform bewijst zijn waarde wanneer je iets nodig hebt wat de besturingssystemen niet bieden:
- Eén link voor elke situatie. Het platform detecteert iOS of Android, app geïnstalleerd of niet, en stuurt door op basis daarvan.
- Deferred deeplinking. Het slaat de linkgegevens op op het moment van tikken en geeft ze via de SDK terug aan de app bij de eerste keer openen.
- Gehoste koppelingsbestanden. Het serveert de bestanden
apple-app-site-associationenassetlinks.jsonop een linkdomein, zodat je ze niet zelf hoeft te onderhouden. - Parameters en rapportage. Het draagt campagne-, referral- of affiliatedata mee door de installatie heen en rapporteert over klikken en openingen.
Hoe dit past bij affiliatelinks voor apps
Een creator deelt een link, een volger tikt erop, installeert de app en neemt een paar dagen later een abonnement. Tenzij de identifier van de affiliate mee door de installatie reist, kan niemand zeggen wie de commissie heeft verdiend.
Insert Affiliate regelt dit met eigen deferred deeplinks, Insert Links genaamd. Elke affiliate krijgt een link die detecteert of de gebruiker op iOS of Android zit en of de app al geïnstalleerd is. Zo ja, dan opent de link de app en worden toekomstige aankopen aan die affiliate toegekend. Zo niet, dan gaat de gebruiker naar de App Store of Google Play, en bij de eerste keer openen weet de SDK welke affiliate hem heeft doorverwezen. Insert Links kan alleen op een custom URL scheme draaien, met Universal Links en App Links als optionele, aanbevolen upgrade. De setupgids voor Insert Links loopt elke stap met je door. Gebruik je al Branch, AppsFlyer of een ander deeplinkplatform, dan kan Insert Affiliate de affiliate in plaats daarvan uit die links lezen, zodat je niets hoeft te vervangen.
Veelgestelde vragen
Wat is het verschil tussen een deeplink en een gewone link?
Een gewone link opent een webpagina in een browser, of opent in het beste geval een app op het startscherm. Een deeplink opent een specifiek scherm in een app, zoals een product, een profiel of een aanbieding. De beste deeplinks zijn ook gewone https://-links, zodat één URL zowel de app als de website bedient.
Wat is het verschil tussen deeplinking en deferred deeplinking?
Standaard deeplinking werkt alleen als de app al geïnstalleerd is. Deferred deeplinking werkt ook voor mensen die de app niet hebben: het stuurt ze naar de store en levert daarna de oorspronkelijke bestemming wanneer ze de app voor het eerst openen. Je hebt het nodig voor referral-, affiliate- en advertentielinks.
Zijn Universal Links en App Links hetzelfde?
Ze doen hetzelfde werk op verschillende platforms. Universal Links zijn Apple's geverifieerde https://-deeplinks voor iOS, en App Links zijn Google's equivalent voor Android. Allebei zijn ze afhankelijk van een bestand op je website dat aantoont dat het domein en de app van jou zijn, en de meeste apps stellen ze allebei in.
Heb ik een deeplinkplatform nodig?
Niet altijd. Als je alleen links nodig hebt die een geïnstalleerde app op het juiste scherm openen, dekken Universal Links en App Links dat af zonder derde partij. Een platform wordt de moeite waard wanneer je deferred deeplinking nodig hebt, één link die per apparaat doorstuurt, of data die door de installatie heen wordt meegenomen, omdat de besturingssystemen dat niet standaard bieden.
Waar te beginnen
Heeft je app nog geen deeplinks, kies dan de paar schermen die mensen het vaakst moeten bereiken, geef ze nette https://-URL's en stel Universal Links en App Links in met een fallback naar het web. Voeg deferred deeplinking toe zodra je links gaat sturen naar mensen die de app niet hebben, en dat is het moment waarop referral- en affiliateprogramma's beginnen. Insert Affiliate is gratis om mee te beginnen als je wilt dat die links commissie uitbetalen over de aankopen die ze opleveren.
