Wszystko, co robi Elido
Pro i Business

Głębokie linki. Otwórz aplikację. Zgrabnie się wycofaj.

Manifesty Universal Links i App Links obsługiwane z Twojej niestandardowej domeny. iOS otwiera Twoją aplikację po dotknięciu; Android robi to samo. Powrót do przeglądarki na desktopie.

  • Universal Links (iOS) i App Links (Android) serwowane z Twojej domeny
  • Odroczone deep linki - kontekst przeżywa instalację aplikacji
  • Inteligentne wykrywanie platformy ze zgrabnymi fallbackami
  • Bez SDK - działa ze standardowymi mechanizmami systemu operacyjnego
go.yourcompany.com/product/12345
Użytkownik dotyka linkugo.yourcompany.com/product/12345Aplikacja zainstalowana?OS sprawdza AASA / assetlinksTAKNIEOtwórz w aplikacjiproduct/12345deep path zachowaneOS?Wykrywanie UAiOSApp Storeapps.apple.comAndroidPlay Storeplay.google.comDesktopMobilny webfallback przeglądarkiPassthrough UTM
Przechwytywanie na poziomie OS, bez SDKAASA + assetlinks.json
Automatycznie obsługiwane
AASA + assetlinks.json
0
Instalacje SDK w aplikacji
iOS + Android
Zasięg platform
UTM
Przekazywanie w przypadku fallbacku

Universal Links i App Links

Pliki manifest, automatycznie serwowane z Twojej domeny

iOS Universal Links wymagają pliku apple-app-site-association . Android App Links wymagają assetlinks.json. Elido generuje i serwuje oba z Twojej niestandardowej domeny automatycznie - bez osobnego hostingu, bez ręcznego zarządzania plikami.

  • iOS Universal Links
    Bundle ID + Team ID → AASA serwowane na /.well-known/ automatycznie
  • Android App Links
    Nazwa pakietu + odcisk SHA-256 → assetlinks.json, wymuszony HTTPS
  • Fallback smart-link
    Aplikacja niezainstalowana → App Store / Play Store przez routing oparty na regułach
  • Passthrough UTM
    Parametry UTM zachowane w URL sklepu - atrybucja się nie psuje
  • Bez SDK w Twojej aplikacji
    Tylko przechwytywanie na poziomie OS; intent-filter i continueUserActivity
Apple Universal Links
/.well-known/apple-app-site-association
{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID.com.yours.app",
        "paths": [
          "/product/*",
          "/referral/*",
          "/invite/*"
        ]
      }
    ]
  }
}
Android App Links
/.well-known/assetlinks.json
[{
  "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:..."
    ]
  }
}]

Serwowane z Twojej niestandardowej domeny automatycznie. Skonfiguruj bundle ID + Team ID (iOS) lub nazwę pakietu + odcisk SHA-256 (Android) w ustawieniach domeny - Elido generuje i hostuje oba pliki.

xcrun simctl openurl booted '…'
adb shell pm get-app-links

Odroczone deep linki

Kontekst, który przeżywa instalację

Gdy aplikacja nie jest zainstalowana, użytkownik idzie do sklepu, instaluje i otwiera aplikację. Odroczone deep-linkowanie przekazuje oryginalny kontekst deep-linka przez tę podróż, aby aplikacja mogła sprowadzić użytkownika dokładnie na właściwy ekran po pierwszym uruchomieniu.

  1. 01

    Klika link

    Użytkownik dotyka krótkiego linku Elido - z e-maila, mediów społecznościowych, QR.

    go.yourcompany.com/p/12345
  2. 02

    Brak aplikacji → Sklep

    Aplikacja niezainstalowana. OS wykrywa to z weryfikacji AASA / assetlinks. Przechodzi do App Store lub Play Store.

    iOS → App Store · Android → Play Store
  3. 03

    Instaluje aplikację

    Użytkownik instaluje ze sklepu. Install referrer niesie kontekst kliknięcia jako parametr query.

    click_id + UTM zachowane w URL referrer'a
  4. 04

    Otwiera aplikację

    Aplikacja otwiera się po raz pierwszy. MMP czyta install referrer; mapuje click_id na zdarzenie instalacji.

    Appsflyer / Adjust / Branch to wychwytuje
  5. 05

    Ląduje na dokładnej stronie

    Aplikacja kieruje do oryginalnie linkowanego ekranu - product/12345 - tak, jakby użytkownik już miał aplikację.

    product/12345 - kontekst zachowany przez instalację
Kontekst zachowany przez instalację

Parametr click_id i parametry UTM z oryginalnego krótkiego linku są przekazywane jako parametry query do URL sklepu. Mobile Measurement Platforms (MMP) wychwytujące install referrer - Appsflyer, Adjust, Branch - mogą dopasować instalację do oryginalnego kliknięcia. Pełne odroczone deep-linkowanie (przekazywanie kontekstu in-app przez instalację) wymaga SDK MMP w Twojej aplikacji; Elido pokrywa warstwę linków.

Wykrywanie platformy
go.yourcompany.com/p/12345
Live
iPhone 15 Pro
iOS 17.4
iOS Universal Links
Mozilla/5.0 (iPhone; CPU iPhone OS 17_4…)
OS przechwytuje tap HTTPS → otwiera aplikację
yourapp://product/12345
Pixel 8 Pro
Android 14
Android App Links
Mozilla/5.0 (Linux; Android 14; Pixel 8…)
Intent dopasowany przez assetlinks.json → aplikacja otwarta
yourapp://product/12345
MacBook / Desktop
macOS / Windows / Linux
Fallback web
Mozilla/5.0 (Macintosh; Intel Mac OS X…)
Bez weryfikacji AASA → 302 do URL web
yourcompany.com/product/12345
Parsing UA działa wewnątrz procesu przekierowania edge - p50 poniżej 0,5 ms. Przeglądarki in-app (Instagram, TikTok) są wykrywane osobno i mogą być kierowane do podpowiedzi przekierowania w przeglądarce systemowej.

Inteligentne wykrywanie platformy

Jeden link. Trzy ścieżki przekierowania.

Edge czyta User-Agent i sygnały platformy w warstwie przekierowania - zanim uruchomi się jakikolwiek JS. iPhone dostaje Universal Links, Android dostaje App Links, desktop dostaje Twój web-fallback. Bez opóźnienia przekierowania JavaScript; bez wykrywania platformy po stronie klienta.

  • Parsing UA na edge, sub-milisekundowy
  • iOS → przechwytywanie Universal Link przez OS
  • Android → przechwytywanie App Link przez intent-filter
  • Desktop → URL web, bez objazdu przez sklep
  • Przeglądarki in-app wykrywane i przekierowywane do przeglądarki systemowej
  • Komponuje się z regułami smart-link - geo + urządzenie + deep-link

Co możesz zrobić

  • Apple App Site Association
  • Android Asset Links
  • Zasady inteligentnych linków dla powrotu do sklepu
  • Testowane z adb i xcrun

Jak naprawdę działają głębokie linki - i gdzie się psują

Universal Links i App Links to mechanizmy na poziomie systemu operacyjnego. Konfiguracja jest prosta; przypadki brzegowe nie. To zestawienie obejmuje pełny obraz.

iOS Universal Links
01

apple-app-site-association serwowane automatycznie z Twojej własnej domeny

Universal Links wymagają pliku apple-app-site-association (AASA) pod adresem /.well-known/apple-app-site-association w Twojej własnej domenie. iOS pobiera ten plik podczas instalacji aplikacji; mapuje on domenę na bundle ID i team ID aplikacji. Jeśli mapowanie jest poprawne, kliknięcie linku HTTPS w Twojej domenie w dowolnej aplikacji iOS (Safari, Mail, Twitter, Instagram) otwiera aplikację bezpośrednio zamiast przeglądarki. Elido automatycznie generuje i serwuje plik AASA ze znanej ścieżki Twojej własnej domeny, w oparciu o bundle ID i team ID skonfigurowane w ustawieniach domeny. Nie musisz hostować pliku oddzielnie. iOS buforuje plik AASA i pobiera go okresowo; jeśli zmienisz konfigurację bundle ID w ustawieniach domeny Elido, nowy plik AASA jest aktywny w kilka sekund, ale urządzenia iOS pobiorą go przy następnym odświeżeniu pamięci podręcznej (zwykle 24-48 godzin lub przy ponownej instalacji aplikacji). Testowane pod kątem walidatora Apple AASA przy każdym wydaniu Elido.

Android App Links
02

assetlinks.json serwowany automatycznie - odcisk palca SHA-256 z Twojego klucza podpisu

Android App Links wymagają pliku Digital Asset Links pod adresem /.well-known/assetlinks.json w Twojej domenie. Plik ten mapuje domenę na nazwę pakietu aplikacji i odcisk palca SHA-256 Twojego certyfikatu podpisywania. Android weryfikuje ten plik podczas instalacji aplikacji i ponownie w regularnych odstępach czasu. Elido automatycznie serwuje go z Twojej własnej domeny, w oparciu o nazwę pakietu i odcisk SHA-256, które skonfigurujesz. Weryfikacja Androida wymaga HTTPS (wymuszanego przez TLS Elido w domenie własnej), a plik musi odpowiedzieć w ciągu kilku sekund (co również jest obsługiwane). Jeden z powszechnych błędów: różne klucze podpisywania dla wersji debug i release mają różne odciski SHA-256. Skonfiguruj oba odciski w ustawieniach domeny Elido, jeśli testujesz wersję debug; wersje produkcyjne wymagają tylko odcisku wersji release. Testowane za pomocą adb shell pm get-app-links przy każdym wydaniu.

Łańcuch fallback
03

Aplikacja zainstalowana → deep link. Aplikacja nie zainstalowana → sklep. Desktop → web. UTM zachowane przez cały czas.

Łańcuch fallback jest ustawiany na poziomie linku lub domeny w ustawieniach Elido. Dla krótkiego linku z konfiguracją deep-link: jeśli system operacyjny przechwyci kliknięcie (aplikacja zainstalowana, domena zweryfikowana), aplikacja się otwiera. Jeśli nie (aplikacja nie zainstalowana), link otwiera się w przeglądarce; miejscem docelowym w przeglądarce powinien być link do App Store / Play Store lub fallback webowy. Reguły smart-link obsługują to bezproblemowo: skonfiguruj regułę dla iOS → URL App Store, regułę dla Android → URL Play Store i fallback do docelowej strony webowej. Parametry UTM z oryginalnego krótkiego linku są zachowywane w adresach URL fallback, dzięki czemu atrybucja nie zostaje przerwana, gdy użytkownik trafi do sklepu. Odroczone deep-linking (przekazywanie konkretnej ścieżki deep-link przez instalację, tak aby aplikacja otworzyła się na właściwym ekranie po instalacji) wymaga SDK w aplikacji - Elido tego nie zapewnia. W przypadku odroczonego deep-linkingu nadal potrzebujesz Appsflyer, Adjust lub Firebase App Distribution.

Retargeting po instalacji
04

Retargeting po instalacji: click_id przekazywany do celu w celu atrybucji

Przy przekierowaniu przez deep-link, Elido przekazuje click_id jako parametr zapytania do adresu URL fallback. Jeśli użytkownik wyląduje w App Store i zainstaluje aplikację, click_id znajduje się w adresie URL polecającym, ale nie jest automatycznie propagowany do aplikacji po instalacji - wymaga to SKAdNetwork na iOS lub SDK do odroczonego deep-linkingu na Androidzie. Co robi Elido: przekazuje click_id i parametry UTM do adresu URL sklepu, aby platforma atrybucji mobilnej (MMP), która rejestruje odsyłacz instalacji, mogła je pobrać. Działa to z Appsflyer i Adjust, jeśli przekażesz click_id w parametrze kampanii adresu URL sklepu. Jeśli nie korzystasz z MMP, click_id w adresie URL sklepu zostaje skutecznie utracony po instalacji.

Migracja z Firebase Dynamic Links
05

Migracja z Firebase Dynamic Links (wycofanie w 2025)

Firebase Dynamic Links zostało wycofane przez Google w 2025 roku. Elido może obsłużyć główny schemat: pojedynczy krótki link HTTPS, który otwiera właściwy ekran w zainstalowanej aplikacji, przechodzi do sklepu lub do wersji webowej na desktopie. Skonfiguruj AASA i assetlinks.json w ustawieniach domeny Elido (zastępuje to hosting tych plików przez Firebase), zaktualizuj swoje linki do udostępniania, aby wskazywały na krótkie linki Elido zamiast adresów URL page.link, i skonfiguruj łańcuch fallback za pomocą reguł smart-link. Czego Elido nie replikuje: odroczonego deep-linkingu Firebase (kontekst deep-link po instalacji przez SDK Firebase) oraz linków do dystrybucji aplikacji Firebase. Jeśli Twoja aplikacja mocno polega na odroczonym deep-linkingu, będziesz potrzebować Appsflyer, Adjust lub Branch obok Elido dla warstwy atrybucji. Dla aplikacji, które potrzebują tylko 'otwórz właściwy ekran, jeśli zainstalowano, w przeciwnym razie idź do sklepu', Elido w pełni zastępuje Firebase Dynamic Links.

Zespoły mobilne korzystające z głębokich linków Elido

Nazwy są obecnie symboliczne - prawdziwe nazwy klientów pojawią się tutaj po opublikowaniu studiów przypadku.

Przenieśliśmy się z Firebase Dynamic Links w tygodniu, w którym ogłoszono ich wycofanie. Konfiguracja AASA i assetlinks.json w Elido zajęła pół dnia. Łańcuch fallback smart-link zastąpił logikę SDK Firebase, którą mieliśmy w aplikacji do rutowania do sklepu.

Z
Zespół mobilny, aplikacja konsumencka, 200 tys. użytkowników, Ryga
Inżynier aplikacji mobilnych

Analityka kliknięć na poziomie linku w deep-linkach pokazała nam, że 35% naszych linków do udostępniania było klikanych na desktopie - nie mieliśmy skonfigurowanego fallbacku webowego. Dodanie fallbacku zajęło 10 minut; współczynnik konwersji linków wzrósł, ponieważ użytkownicy klikający z desktopu mogli teraz dokończyć działanie.

Z
Zespół produktowy, marketplace B2C, Bruksela
Product Manager

Używamy krótkich linków Elido z konfiguracją deep-link w programach poleceń. Przekazywanie UTM do adresu URL App Store oznacza, że nasze MMP poprawnie rejestruje odsyłacz instalacji - atrybucja działa bez niestandardowych prac nad SDK z naszej strony.

Z
Zespół wzrostu, aplikacja fitness, 80 tys. użytkowników, Amsterdam
Head of Growth

Deep linki Elido vs Branch.io vs Adjust vs Firebase Dynamic Links (wycofane)

Branch i Adjust to pełne platformy atrybucji mobilnej - potężniejsze w przypadku odroczonego deep-linkingu i atrybucji MMP. Elido to właściwe narzędzie, gdy głębokie linki są częścią szerszej konfiguracji skracania linków, a nie głównym produktem.

FeatureElidoBranch.ioAdjust
Universal Links (iOS)Automatycznie obsługiwane AASA z Twojej domenyW pełni zarządzane w skaliNie - tylko MMP, nie host deep-linków
App Links (Android)Automatycznie obsługiwane assetlinks.json z Twojej domenyW pełni zarządzaneNie
Wymagane SDK w aplikacjiNie - przechwytywanie na poziomie systemuTak - Branch SDKTak - Adjust SDK
Odroczone deep-linkingNie - wymaga SDK w aplikacjiTak - główna funkcjaTak - z SDK Adjust
Atrybucja mobilna (MMP)Przekazywanie Click ID; integracja MMP ręcznaNatywne MMP - integracje z Appsflyer, KochavaPełna platforma MMP
Przekazywanie UTM do sklepuTak - poprzez parametr zapytania w URL fallbackTak, z kontekstem atrybucjiTak
Analityka kliknięć w linkiMagazyn analityczny - lokalizacja, urządzenie, per-linkZaawansowana analityka atrybucji mobilnejDane o atrybucji instalacji i zdarzeń
Zamiennik Firebase Dynamic LinksTak dla podstawowych wzorców; brak odroczonych deep-linkówPełny zamiennik, w tym odroczone linkiCzęściowy - tylko strona MMP

Pytania o głębokie linki

Czy potrzebuję SDK Branch lub jakiegokolwiek innego SDK w mojej aplikacji, aby używać głębokich linków Elido?

Nie. Głębokie linki Elido wykorzystują iOS Universal Links i Android App Links - mechanizmy na poziomie systemu operacyjnego. Twoja aplikacja musi jedynie obsługiwać przychodzące adresy URL w standardowy sposób dla iOS (scene:openURLContexts lub application:continueUserActivity) lub Androida (intent-filter w manifeście). Nie instaluje się żadnego SDK firm trzecich; system obsługuje przechwytywanie w oparciu o pliki AASA i assetlinks.json, które Elido serwuje z Twojej domeny.

Jak wygląda proces konfiguracji AASA?

W ustawieniach domeny Elido → Deep links: wprowadź bundle ID swojej aplikacji na iOS (np. com.twojafirma.app) oraz Apple Team ID (10-znakowy ciąg znaków z konta Apple Developer). Elido generuje plik JSON AASA i serwuje go pod adresem /.well-known/apple-app-site-association w Twojej własnej domenie. Przed przesłaniem aplikacji do TestFlight lub App Store sprawdź dostępność pliku za pomocą curl. iOS pobiera plik AASA podczas instalacji aplikacji na urządzeniach z systemem iOS 9+.

Czy mogę mieć wiele aplikacji w jednej domenie?

Tak - plik AASA obsługuje wiele wpisów aplikacji. Skonfiguruj bundle ID i Team ID każdej aplikacji w ustawieniach domeny; Elido wygeneruje połączony plik AASA ze wszystkimi wymienionymi aplikacjami. Android assetlinks.json również obsługuje wiele kombinacji nazwy pakietu i odcisku palca. Typowy przypadek użycia: główna aplikacja i App Clip lub główna aplikacja i rozszerzenie widżetu.

Wycofanie Firebase Dynamic Links - jaka jest ścieżka migracji?

Zastąp krótkie adresy URL page.link krótkimi linkami Elido (Twoja domena własna lub domena współdzielona Elido). Skonfiguruj AASA i assetlinks.json w ustawieniach domeny Elido. Skonfiguruj łańcuch fallback za pomocą reguł smart-link (reguła iOS → App Store, reguła Android → Play Store, fallback → web). Zaktualizuj generowanie linków do udostępniania w swojej aplikacji, aby wywoływało API create_link Elido zamiast Firebase. Co nie podlega migracji: jeśli Twoja aplikacja polega na odroczonym deep-linkingu Firebase (przekazywanie intencji po instalacji), będziesz potrzebować Branch lub Adjust do obsługi tego elementu.

Jak przetestować Universal Links przed opublikowaniem w App Store?

Użyj xcrun simctl openurl booted 'https://go.twojafirma.com/test-slug' z zainstalowaną aplikacją na symulatorze. Na fizycznym urządzeniu z wersją debug długo naciśnij link w Safari i sprawdź, czy pojawia się opcja 'Otwórz w aplikacji'. Apple udostępnia również narzędzie App Association File Validator na stronie developer.apple.com - wklej adres URL swojego AASA, a narzędzie sprawdzi dostępność, Content-Type i poprawność JSON. AASA Elido przechodzi wszystkie trzy testy.

Co to jest odroczone deep-linking i dlaczego Elido tego nie robi?

Odroczone deep-linking (deferred deep-linking) przekazuje kontekst (np. 'użytkownik przeglądał produkt o ID 123') od kliknięcia w link przez proces instalacji aż do pierwszego uruchomienia aplikacji. Wymaga to SDK do fingerprintingu lub atrybucji w aplikacji (Branch, Appsflyer, Adjust), które dopasowuje instalację do kliknięcia podczas procesu instalacji. Elido nie instaluje kodu SDK w Twojej aplikacji; jedynie serwujemy pliki AASA i assetlinks.json. Bez SDK nie ma mechanizmu przekazywania kontekstu przez instalację. Dla podstawowego przypadku 'otwórz właściwy ekran, jeśli zainstalowano', Elido jest wystarczające. Do przekazywania intencji przez instalację potrzebujesz MMP.

Czy mogę używać głębokich linków w domenie współdzielonej Elido (s.elido.me)?

Nie. Universal Links i App Links wymagają Twojej własnej domeny - nie możesz zgłosić *.elido.me jako domeny Universal Link dla swojej aplikacji. Głębokie linki wymagają domeny własnej w planie Pro lub Business. Domenę własną konfigurujesz w swoim AASA i assetlinks.json, a Elido serwuje te pliki z tej właśnie domeny.

Jak obsłużyć przypadek, gdy przeglądarka użytkownika blokuje przechwycenie przez aplikację?

Niektóre przeglądarki (zwłaszcza Chrome na Androidzie w wersjach starszych niż 6.0 oraz niektóre przeglądarki wewnątrz aplikacji, jak na Instagramie) blokują przechwytywanie App Links lub Universal Links. Wtedy użytkownik widzi URL fallback. W przypadku przeglądarek wewnątrz aplikacji: przekieruj najpierw do przeglądarki systemowej za pomocą adresu URL intent (Android) lub monitu dla użytkownika. W przypadku przeglądarek Instagrama / TikToka standardowym podejściem jest wyświetlenie monitu 'dotknij, aby otworzyć w przeglądarce'. Elido nie wstrzykuje tego monitu automatycznie - URL fallback jest Twoim celem docelowym i to Ty kontrolujesz, co się tam dzieje.

Gotowy, aby wypróbować?

Zacznij od planu darmowego, uaktualnij, gdy będziesz potrzebować niestandardowej domeny.