Deeplinks vs Universal Links vs App Links vs deferred deeplinks: welke moet je gebruiken?

Deeplinks vs Universal Links vs App Links vs deferred deeplinks: welke moet je gebruiken?

Universal Links en Android App Links zijn geverifieerde deeplinks, custom URL schemes zijn de oudere niet-geverifieerde variant, en deferred deeplinks overleven een installatie. Deze vergelijking laat zien hoe ze verschillen en welke je voor elke taak gebruikt.

"Deeplink" is de algemene term voor elke link die een specifiek scherm in een app opent. Universal Links (iOS) en Android App Links zijn de geverifieerde https://-manier om deeplinks te bouwen, custom URL schemes zijn de oudere, niet-geverifieerde manier, en deferred deeplinks zijn de links die ook nog werken als iemand de app eerst moet installeren. De echte keuze is welk mechanisme je app opent, en of de link een installatie moet overleven.

Zo verhouden de vier zich tot elkaar:

Custom URL schemeUniversal LinksAndroid App LinksDeferred deeplinks
PlatformiOS en AndroidApple-platformsAndroid 6 en hogeriOS en Android
Ziet eruit alsmyapp://offer/42https://example.com/offer/42https://example.com/offer/42Meestal een https://-link op een linkdomein
Bewijs dat de link van jou isGeenapple-app-site-association-bestand op je domeinassetlinks.json-bestand op je domeinHangt af van het onderliggende mechanisme
App geïnstalleerdOpent de appOpent de app directOpent de app direct, zonder keuzemenuOpent de app
App niet geïnstalleerdMislukt, vaak met een foutmeldingOpent dezelfde URL op je websiteOpent dezelfde URL op je websiteStuurt de gebruiker naar de store en levert de bestemming bij de eerste keer openen
Server nodigNeeJa, om het bestand te hostenJa, om het bestand te hostenJa, plus een SDK in de app
Het meest geschikt voorOverdrachten tussen apps en als terugvaloptieElke link waarop iemand tikt op iOSElke link waarop iemand tikt op AndroidReferral-, affiliate-, advertentie- en uitnodigingslinks

Voor de basis kun je onze eenvoudige uitleg lezen over wat deeplinking is. Deze post behandelt de verschillen en welke je moet kiezen.

Een universal link is een soort deeplink, dus het zijn geen alternatieven voor elkaar. Elke universal link is een deeplink, maar niet elke deeplink is een universal link. Als mensen zoeken op "universal links vs deep links", bedoelen ze bijna altijd "Universal Links vs links met een custom URL scheme", omdat het custom scheme jarenlang de enige soort deeplink was die er bestond.

De praktische verschillen zitten in het adres (een zelfbedacht voorvoegsel zoals myapp:// tegenover een gewoon webadres op een domein dat van jou is), eigendom (niemand controleert wie een custom scheme heeft geregistreerd, terwijl een universal link wordt geverifieerd aan de hand van je website) en wat er gebeurt zonder de app (een link met een custom scheme kan nergens heen, terwijl een universal link nog steeds een werkende webpagina is).

Apple is duidelijk over zijn voorkeur. In de documentatie over het definiëren van een custom URL scheme staat dat custom URL schemes weliswaar "an acceptable form of deep linking" zijn, maar dat "universal links are strongly recommended".

Wat betekent "universal deep linking"?

"Universal deep linking" is geen officiële term. Het wordt losjes gebruikt als naam voor Apple's Universal Links, en voor één link die overal werkt (iOS en Android, met of zonder geïnstalleerde app). Die tweede betekenis is eigenlijk een deferred deeplink die is gebouwd op Universal Links en App Links, wat verderop aan bod komt.

Op iOS verandert de overstap van een custom scheme naar Universal Links wie je links kan claimen, wat gebruikers zien zonder de app en hoeveel je moet instellen.

Met een custom scheme kan iedereen dat. Volgens de documentatie van Apple is een identifier in reverse-DNS-stijl een goede gewoonte, maar "doesn't prevent other apps from registering the same scheme and handling the associated links", en als meerdere apps hetzelfde scheme registreren, geldt: "the app the system targets is undefined".

Met Universal Links kun alleen jij dat. Wanneer iemand je app installeert, controleert het systeem een bestand op je webserver om te bevestigen dat je website de app toestaat om de URL's te openen. Zoals Apple's gids over apps en websites laten linken naar je content het zegt: alleen jij kunt dat bestand op je server plaatsen, en dat beveiligt de koppeling.

Wat gebruikers zien als de app ontbreekt

Een link met een custom scheme is geen webadres, dus een telefoon zonder de app kan er niets mee. Apple beschrijft een universal link als één URL die "works for both your website and your app": als de persoon de app niet heeft geïnstalleerd, opent het systeem de URL in de standaardbrowser en handelt je website hem af.

Wat je moet instellen

Een custom scheme is een paar regels in de configuratie van je app en verder niets. Universal Links hebben twee dingen nodig die met elkaar moeten overeenkomen:

  • Een apple-app-site-association-bestand (zonder bestandsextensie) in de map .well-known van je website, met je app en de paden die hij afhandelt.
  • De Associated Domains-capability in je app, met een applinks:-vermelding voor het domein.

Apple's gids over het ondersteunen van associated domains noemt een paar details waar teams op vastlopen. Het bestand moet worden gehost via https:// met een geldig certificaat en zonder redirects. Elk subdomein heeft een eigen vermelding nodig en moet een eigen bestand serveren. En sinds iOS 14 vragen apparaten het bestand op bij een door Apple beheerd content delivery network in plaats van bij je server. Volgens Apple vraagt dat netwerk je bestand binnen 24 uur op, en controleren apparaten na de installatie ongeveer één keer per week op updates. Een wijziging in het bestand is dus niet direct actief.

Als een gebruiker in Safari op je website surft en op een universal link op hetzelfde domein tikt, houdt Apple hem in Safari, "respecting the user's most likely intent to continue within the browser". Een link naar een ander domein opent de app wel. Custom schemes kennen zo'n regel niet, en dat is een van de redenen dat ze niet zijn verdwenen.

Android App Links en Universal Links doen hetzelfde werk op verschillende besturingssystemen. Beide zijn standaard https://-links, beide vertrouwen op een bestand op je website om eigendom te bewijzen, en beide vallen terug op de webpagina als de app niet is geïnstalleerd. De meeste apps die in beide stores staan, stellen beide in op hetzelfde domein en dezelfde paden, zodat één link op elke telefoon werkt.

De verschillen zitten in de details:

Universal LinksAndroid App Links
Verificatiebestand/.well-known/apple-app-site-association/.well-known/assetlinks.json
Identificeert de app aan de hand vanApp-identifier (Team ID plus bundle identifier)Pakketnaam plus vingerafdruk van het ondertekeningscertificaat
Gedeclareerd in de app metAssociated Domains-capabilityIntent filter met android:autoVerify="true"
Niet-geverifieerde versieGeen equivalent voor https://-linksGewone deeplink, die een keuzemenu kan tonen
Ondersteund opApple-platformsAndroid 6 en hoger, op apparaten met Google-services

Android heeft een tussenlaag die iOS niet heeft

Op Android heeft "deeplink" een specifieke betekenis. Google's documentatie over App Links maakt onderscheid tussen twee dingen:

  • Deeplinks, een standaardfunctie van het platform die op alle Android-versies beschikbaar is. Een app kan zich registreren voor custom schemes of voor webdomeinen, maar deze links zijn "subject to the system disambiguation dialog".
  • Android App Links, die Google "an enhanced deep linking capability" noemt. Zodra ze zijn geverifieerd, openen ze je app direct, "without requiring the user to select your app from a disambiguation dialog".

Op Android heeft de vraag "deeplinks vs App Links" dus een letterlijk antwoord: een App Link is een deeplink naar je eigen website die de verificatie heeft doorstaan. Google's gids over het maken van deeplinks geeft de volgorde die Android aanhoudt: open de standaardapp van de gebruiker voor de link, of de enige app die hem kan afhandelen, of toon anders het keuzemenu. Met verificatie sla je die laatste stap over.

Deferred deeplinks zijn geen extra mechanisme dat concurreert met de andere drie. Ze zijn een gedrag dat er bovenop komt. "Deferred" beschrijft wat de link kan (zijn bestemming onthouden over een installatie heen), niet hoe hij de app opent.

Universal Links en App Links stoppen allebei op hetzelfde punt. Als de app ontbreekt, krijgt de gebruiker je webpagina. Als hij daarna de app uit de store installeert en opent, start de app op het beginscherm zonder te weten welke link hem daar bracht. Een deferred deeplink dicht dat gat: de link gaat naar een server die de bestemming vastlegt, de gebruiker wordt naar de juiste store gestuurd, en een SDK in de app vraagt de bestemming op bij de eerste keer starten.

Op Android helpt het platform hierbij. Met de Install Referrer API van Google Play kan een app de referrer-URL van zijn eigen installatie ophalen, samen met het moment van de klik op de referrer en het moment waarop de installatie begon. Op iOS bestaat er geen vergelijkbare overdracht van de store naar de app, dus bewaart het linkplatform de gegevens op zijn eigen servers en geeft het ze terug wanneer de nieuwe installatie zich meldt.

Daarom komt er bij deferred deeplinking bijna altijd een dienst en een SDK kijken. Onze gids over deferred deeplinks en waarom ze belangrijk zijn voor app-marketing behandelt de werking en de toepassingen uitgebreid.

Begin bij wie er op de link gaat tikken en of die persoon je app al heeft.

SituatieGebruik
E-mails, pushmeldingen en berichten aan bestaande gebruikersUniversal Links en App Links
Links op je eigen website die de app moeten openenUniversal Links en App Links (denk aan de Safari-regel voor hetzelfde domein)
Een van je apps die een andere opent, of een callback vanuit een andere app naar jouw appCustom URL scheme, of Universal Links als je de eigendomsgarantie nodig hebt
Content delen, waarbij sommige ontvangers de app niet hebbenMinimaal Universal Links en App Links, deferred als de bestemming de installatie moet overleven
Referral-, uitnodigings-, creator-, affiliate- en betaalde advertentielinksDeferred deeplinks
QR-codes op verpakkingen of drukwerkDeferred deeplinks, omdat je niet kunt weten wie de app heeft

De korte versie

  • Gebruik Universal Links en App Links als basis. Zowel Apple als Google raden ze aan, ze kunnen niet door een andere app worden geclaimd en ze vallen terug op een werkende webpagina.
  • Voeg deferred deeplinking toe zodra links mensen zonder de app bereiken. Op dat punt moet de bestemming, en vaak ook de identiteit van degene die de link deelde, de weg door de store overleven.
  • Houd een custom URL scheme aan als ondersteunende laag. Zet er nooit een in een marketingmail of een social post.

Heb je nog een custom URL scheme nodig?

Vaak wel, maar niet als de link die je aan mensen geeft. Custom schemes blijven nuttig voor communicatie tussen apps en als ingang naar de app wanneer er geen geverifieerde link beschikbaar is. Omdat elke app een scheme kan registreren, adviseert Apple om elke parameter in een binnenkomende URL te valideren en te beperken wat zulke links mogen doen.

Universal Links en App Links zijn gratis platformfuncties die niets anders nodig hebben dan een webserver. Deferred deeplinking is anders, omdat iemand de server moet draaien die elke tik onthoudt en de SDK die hem bij de eerste keer openen ophaalt.

De opties zijn Insert Links (de deferred deeplinks die in Insert Affiliate zijn ingebouwd), algemene linkplatforms zoals Branch en AppsFlyer, of zelf bouwen. Wat logisch is, hangt af van waar de links voor zijn:

  • Als de links bestaan om verkopen toe te kennen aan affiliates, creators of gebruikers die iemand doorverwijzen, moeten de link en de commissietracking één identifier delen. Insert Affiliate doet dit met Insert Links. Elke affiliate krijgt een link die herkent of het om iOS of Android gaat en of de app is geïnstalleerd. Zo ja, dan opent de link de app en worden toekomstige verkopen aan die affiliate toegekend. Zo niet, dan gaat de gebruiker naar de App Store of Google Play, en bij de eerste keer openen onthoudt de SDK welke affiliate hem heeft doorverwezen.
  • Als je al een linkplatform voor campagnes gebruikt, hoef je dat niet te vervangen. Insert Affiliate kan de affiliate uitlezen uit links die zijn gemaakt in Branch, AppsFlyer of een ander deeplinkplatform.
  • Als je het zelf bouwt, reken dan op het onderhoud om de overdracht tijdens de installatie werkend te houden in beide stores terwijl besturingssystemen veranderen.

Insert Links laten ook zien hoe deze mechanismen op elkaar stapelen in plaats van met elkaar te concurreren. De minimale setup is een custom URL scheme. Universal Links en App Links zijn een optionele, aanbevolen stap daarbovenop: je voegt je Apple Team ID en Android SHA-256-certificaatvingerafdruk toe in het dashboard en voegt het linkdomein toe aan je app, waarna geïnstalleerde gebruikers direct in de app terechtkomen zonder dat eerst de browser laadt. Het deferred gedrag zit boven beide. De installatiegids voor Insert Links laat elke laag zien.

Veelgestelde vragen

Niet helemaal. Een universal link is één soort deeplink: de geverifieerde https://-variant van Apple. "Deeplink" omvat ook links met een custom URL scheme, Android App Links en deferred deeplinks. Wanneer de twee tegenover elkaar worden gezet, bedoelt men met "deeplink" meestal de oudere stijl met een custom scheme.

Android App Links. Dat zijn https://-links die worden geverifieerd via een assetlinks.json-bestand op je domein, en zodra ze zijn geverifieerd openen ze je app zonder het keuzemenu "Openen met". Ze worden ondersteund op Android 6 en hoger, op apparaten met Google-services.

Ze werken als weblinks. Dezelfde URL opent in de browser en je website handelt hem af, dus de gebruiker blijft niet achter met een foutmelding. Wat ze niet doen, is de bestemming meenemen door een installatie heen. Dat is de taak van een deferred deeplink.

Ja, en goede links zijn dat meestal ook. De link is een https://-URL die de app direct opent via Universal Links of App Links als de app is geïnstalleerd, en die terugvalt op een doorverwijzing naar de store met een opzoeking bij de eerste keer openen als dat niet zo is. De gebruiker ziet altijd maar één link.

Nee. Beide zijn ingebouwd in de besturingssystemen en hebben alleen een bestand op je website en een instelling in je app nodig. Een dienst wordt nuttig zodra je deferred deeplinking nodig hebt, één link die per apparaat doorstuurt, of gegevens zoals een referral- of affiliatecode die door de installatie heen worden meegenomen.

Volgende stap

Leg elke link die je app vandaag verstuurt naast de tabel bovenaan. Alles wat nog op een kaal custom scheme draait en waarop een persoon tikt, moet eerst naar Universal Links en App Links. Alles wat mensen zonder de app bereikt, vooral links die bepalen wie er betaald krijgt, moet deferred worden. Zijn die links voor affiliates of referrals, dan kun je gratis starten met Insert Affiliate, en onze gids over het tracken van affiliate-omzet in mobiele apps behandelt wat er gebeurt nadat de link zijn werk heeft gedaan.

Reacties

Klaar om je app te laten groeien met affiliate marketing?

Sluit je aan bij honderden app-ontwikkelaars die al in-app aankopen via affiliates tracken en hun partners belonen.