Przejdź do treści

Rozwój

Deep linki

Deep link otwiera konkretny ekran w zainstalowanej aplikacji, np. wyzwanie, zaproszenie z polecenia lub stronę produktu. Jeśli aplikacja nie jest zainstalowana, odwiedzający trafia do sklepu, tak jak w przypadku inteligentnego linku. Deep linki są dostępne w planach Pro, Studio i Dożywotni. Universal Links i Android App Links wymagają też własnej domeny, która jest dostępna w planie Studio.

Jak działa deep link

Dodaj do inteligentnego linku /open/ i ścieżkę w aplikacji. Ciąg zapytania również jest przekazywany:

https://mapps.one/habitly/open/challenges/30-days?ref=newsletter
OdwiedzającyCo się dzieje
iPhone lub iPad, gdy ustawiono schemat URL iOS Krótka strona próbuje otworzyć habitly://challenges/30-days?ref=newsletter. Jeśli aplikacja nie jest zainstalowana, odwiedzający przechodzi do App Store.
Android lub Huawei, gdy ustawiono nazwę pakietu Krótka strona otwiera intencję Androida dla tej samej ścieżki, ograniczoną do twojego pakietu. Chrome otwiera aplikację, jeśli jest zainstalowana, a w przeciwnym razie przechodzi na adres zapasowy w Google Play.
Telefon lub tablet bez ustawień deep linków dla swojej platformy Przekierowanie od razu na adres zapasowy.
Komputery i boty Przekierowanie do inteligentnego linku z zachowaniem ciągu zapytania.

Adres zapasowy to miejsce, do którego inteligentny link wysłałby dane urządzenie zgodnie z twoimi regułami przekierowań, z przekazaniem tagów UTM. Jeśli dla tej platformy nie ma linku do sklepu, adresem zapasowym jest strona docelowa. Jeśli deep linki w ogóle nie są skonfigurowane lub plan ich nie obejmuje, każdy odwiedzający jest przekierowywany do inteligentnego linku.

Ścieżki mogą zawierać litery, cyfry i znaki / _ - . ~ %. Pozostałe znaki są usuwane, więc wszystko inne, np. spacje (%20), zakoduj procentowo.

Konfiguracja

Otwórz kartę Deep linki aplikacji i wypełnij pola dla obsługiwanych platform:

PolePrzykładZastosowanie
Schemat URL iOShabitly://Otwieranie aplikacji ze strony przekierowania na iPhonie i iPadzie
Apple Team IDA1B2C3D4E5Universal Links. 10-znakowy identyfikator ze szczegółów członkostwa (Membership details) na twoim koncie Apple Developer.
Bundle ID iOScom.habitly.appUniversal Links
Nazwa pakietu Androidacom.habitly.appOtwieranie aplikacji na urządzeniach z Androidem i Huawei
Schemat AndroidahabitlySchemat obsługiwany przez twój filtr intencji
Odciski cyfrowe certyfikatu SHA-25614:6D:E9:83:...:44:E5Android App Links. Dodaj jeden lub więcej, rozdzielając je przecinkami, spacjami lub nowymi wierszami.
Schemat Androida: ustaw go na własny schemat rejestrowany przez twoją aplikację, np. habitly. Jeśli zostawisz to pole puste, używany jest https, a pierwsza część ścieżki staje się hostem (https://challenges/30-days). Działa to tylko wtedy, gdy twój filtr intencji tego oczekuje.

Zarejestruj schemat w aplikacji

iOS, w pliku Info.plist:

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>habitly</string>
    </array>
  </dict>
</array>

Android, w pliku AndroidManifest.xml:

<activity android:name=".MainActivity" android:exported="true">
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="habitly" />
  </intent-filter>
</activity>

W aplikacji odczytaj przychodzący adres URL, przejdź do odpowiedniego ekranu i odczytaj potrzebne parametry zapytania. Nieznane ścieżki kieruj na ekran główny, bo ludzie edytują adresy URL.

Universal Links i Android App Links

Linki ze schematem najpierw pokazują krótką stronę przekierowania, a iOS może poprosić odwiedzającego o potwierdzenie. Zweryfikowane linki pomijają ten krok: gdy aplikacja jest zainstalowana, system otwiera ją bezpośrednio. Weryfikacja wymaga domeny należącej wyłącznie do twojej aplikacji, dlatego działa na twojej własnej domenie. Po połączeniu get.habitly.app mapps.one serwuje za ciebie pliki powiązań:

PlikTworzony na podstawie
https://get.habitly.app/.well-known/apple-app-site-association
(dostępny też pod /apple-app-site-association)
Apple Team ID i bundle ID
https://get.habitly.app/.well-known/assetlinks.jsonNazwa pakietu Androida i odciski cyfrowe SHA-256

Plik Apple obejmuje wszystkie ścieżki w /open/:

{
  "applinks": {
    "details": [
      {
        "appIDs": ["A1B2C3D4E5.com.habitly.app"],
        "components": [
          { "/": "/open/*", "comment": "Deep links created with mapps.one" }
        ]
      }
    ]
  },
  "webcredentials": { "apps": ["A1B2C3D4E5.com.habitly.app"] }
}

Plik Androida:

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.habitly.app",
      "sha256_cert_fingerprints": [
        "14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"
      ]
    }
  }
]

Każdy plik zwraca „404 Not Found”, dopóki jego pola nie są prawidłowe: 10-znakowy Team ID i bundle ID w przypadku Apple oraz nazwa pakietu z co najmniej jednym odciskiem cyfrowym w formacie AA:BB:... (32 pary) w przypadku Androida. Użyj odcisku cyfrowego klucza Play App Signing z Play Console → App integrity, a jeśli testujesz buildy podpisane lokalnie, dodaj też swój klucz przesyłania. Pliki są przechowywane w pamięci podręcznej przez godzinę. Apple przechowuje je też w pamięci podręcznej na swoich serwerach, więc aby przetestować zmiany, zainstaluj aplikację ponownie.

Skonfiguruj aplikację

iOS: dodaj funkcję (capability) Associated Domains z wpisem applinks:get.habitly.app.

Android: dodaj zweryfikowany filtr intencji dla swojej domeny:

<intent-filter android:autoVerify="true">
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="https" android:host="get.habitly.app" android:pathPrefix="/open/" />
</intent-filter>

Następnie używaj w kampaniach linków takich jak https://get.habitly.app/open/challenges/30-days. Gdy aplikacja nie jest zainstalowana, przeglądarka ładuje stronę i uruchamia się ten sam mechanizm przejścia na adres zapasowy.

Używaj swojej domeny w zweryfikowanych linkach. Pliki powiązań są serwowane tylko na własnych domenach, bo z mapps.one korzysta wiele aplikacji. Linki w mapps.one/habitly/open/ nadal działają przez stronę przekierowania. Adresy URL deep linków wyświetlane w panelu i w API korzystają z mapps.one, więc jeśli chcesz mieć zweryfikowane linki, zamień host na swoją domenę.

Analityka

Otwarcie jest liczone w statystyce Otwarcia przez deep link, gdy telefon lub tablet ładuje adres URL /open/, a mapps.one próbuje otworzyć aplikację. Przejście na adres zapasowy w sklepie nie jest liczone drugi raz. Zweryfikowane linki, które otwierają aplikację bezpośrednio, nigdy nie docierają do mapps.one, więc nie są liczone. Do ich pomiaru użyj własnej analityki aplikacji.