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ący | Co 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:
| Pole | Przykład | Zastosowanie |
|---|---|---|
| Schemat URL iOS | habitly:// | Otwieranie aplikacji ze strony przekierowania na iPhonie i iPadzie |
| Apple Team ID | A1B2C3D4E5 | Universal Links. 10-znakowy identyfikator ze szczegółów członkostwa (Membership details) na twoim koncie Apple Developer. |
| Bundle ID iOS | com.habitly.app | Universal Links |
| Nazwa pakietu Androida | com.habitly.app | Otwieranie aplikacji na urządzeniach z Androidem i Huawei |
| Schemat Androida | habitly | Schemat obsługiwany przez twój filtr intencji |
| Odciski cyfrowe certyfikatu SHA-256 | 14:6D:E9:83:...:44:E5 | Android App Links. Dodaj jeden lub więcej, rozdzielając je przecinkami, spacjami lub nowymi wierszami. |
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ń:
| Plik | Tworzony 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.json | Nazwa 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.
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.