Büyüme
Derin bağlantılar
Derin bağlantı, yüklü uygulamanın içinde belirli bir ekranı açar: bir meydan okuma, bir davet ya da bir ürün sayfası gibi. Uygulama yüklü değilse ziyaretçi, akıllı bağlantında olduğu gibi mağazaya gider. Derin bağlantılar Pro, Studio ve Lifetime planlarında kullanılabilir. Universal Links ve Android App Links için ayrıca Studio planındaki özel alan adı özelliği gerekir.
Derin bağlantı nasıl çalışır
Akıllı bağlantına /open/ ve uygulama içindeki yolu ekle. Sorgu dizesi de uygulamaya aktarılır:
https://mapps.one/habitly/open/challenges/30-days?ref=newsletter
| Ziyaretçi | Ne olur |
|---|---|
| iOS URL şeması ayarlıyken iPhone veya iPad | Kısa bir sayfa habitly://challenges/30-days?ref=newsletter adresini açmayı dener. Uygulama yüklü değilse ziyaretçi App Store'a devam eder. |
| Paket adı ayarlıyken Android veya Huawei | Kısa bir sayfa aynı yol için, yalnızca senin paketinle sınırlı bir Android intent'i açar. Uygulama yüklüyse Chrome onu açar, değilse Google Play'e giden yedek adresi izler. |
| Platformu için derin bağlantı ayarı olmayan telefon ya da tablet | Doğrudan yedek adrese yönlendirilir. |
| Masaüstü bilgisayarlar ve botlar | Sorgu dizesi korunarak akıllı bağlantıya yönlendirilir. |
Yedek adres, yönlendirme kurallarına göre akıllı bağlantının o cihazı gönderdiği yerdir; UTM etiketleri de aktarılır. O platform için mağaza bağlantısı yoksa yedek adres açılış sayfasıdır. Derin bağlantılar hiç kurulmadıysa ya da plan bu özelliği içermiyorsa tüm ziyaretçiler akıllı bağlantıya yönlendirilir.
Yollar harf, rakam ve / _ - . ~ % karakterlerini içerebilir. Diğer karakterler kaldırılır; boşluk gibi karakterleri yüzde kodlamasıyla yaz (%20).
Kurulum
Uygulamanın Derin bağlantılar sekmesini aç ve desteklediğin platformların alanlarını doldur:
| Alan | Örnek | Kullanım amacı |
|---|---|---|
| iOS URL şeması | habitly:// | iPhone ve iPad'de yönlendirme sayfasından uygulamayı açmak |
| Apple Team ID | A1B2C3D4E5 | Universal Links. Apple Developer hesabındaki üyelik bilgilerinde yer alan 10 karakterlik kimlik. |
| iOS bundle ID | com.habitly.app | Universal Links |
| Android paket adı | com.habitly.app | Android ve Huawei cihazlarda uygulamayı açmak |
| Android şeması | habitly | Intent filtrenin işlediği şema |
| SHA-256 sertifika parmak izleri | 14:6D:E9:83:...:44:E5 | Android App Links. Virgül, boşluk ya da yeni satırla ayırarak bir veya daha fazla ekle. |
habitly olarak ayarla. Boş bırakırsan https kullanılır ve yolun ilk kısmı alan adı gibi değerlendirilir (https://challenges/30-days). Bu yalnızca intent filtren bunu bekliyorsa çalışır.Şemayı uygulamana kaydet
iOS için Info.plist dosyasında:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>habitly</string>
</array>
</dict>
</array>
Android için AndroidManifest.xml dosyasında:
<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>
Uygulamanda gelen adresi oku, eşleşen ekrana yönlendir ve ihtiyacın olan sorgu parametrelerini al. İnsanlar adresleri elle değiştirebildiği için tanımadığın yolları ana ekrana gönder.
Universal Links ve Android App Links
Şema bağlantıları önce kısa bir yönlendirme sayfası gösterir; iOS ziyaretçiden onay isteyebilir. Doğrulanmış bağlantılar bu adımı atlar: uygulama yüklüyse sistem onu doğrudan açar. Doğrulama için yalnızca uygulamana ait bir alan adı gerekir, bu yüzden özel alan adında çalışır. get.habitly.app bağlandığında mapps.one ilişkilendirme dosyalarını senin için sunar:
| Dosya | Oluşturulduğu bilgiler |
|---|---|
https://get.habitly.app/.well-known/apple-app-site-association( /apple-app-site-association adresinde de) | Apple Team ID ve bundle ID |
https://get.habitly.app/.well-known/assetlinks.json | Android paket adı ve SHA-256 parmak izleri |
Apple dosyası /open/ altındaki tüm yolları kapsar:
{
"applinks": {
"details": [
{
"appIDs": ["A1B2C3D4E5.com.habitly.app"],
"components": [
{ "/": "/open/*", "comment": "Deep links created with mapps.one" }
]
}
]
},
"webcredentials": { "apps": ["A1B2C3D4E5.com.habitly.app"] }
}
Android dosyası:
[
{
"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"
]
}
}
]
Her dosya, alanları geçerli olana kadar "404 Bulunamadı" döndürür: Apple için 10 karakterlik bir Team ID ve bundle ID; Android için paket adı ve AA:BB:... biçiminde (32 çift) en az bir parmak izi. Play Console → App integrity bölümündeki Play App Signing anahtarının parmak izini kullan; yerelde imzalanan sürümleri test ediyorsan yükleme anahtarını da ekle. Dosyalar bir saat önbellekte tutulur. Apple da bunları kendi sunucularında önbelleğe aldığı için değişiklikleri test ederken uygulamayı yeniden yükle.
Uygulamanı yapılandır
iOS: Associated Domains yeteneğini applinks:get.habitly.app değeriyle ekle.
Android: alan adın için doğrulanmış bir intent filtresi ekle:
<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>
Ardından kampanyalarında https://get.habitly.app/open/challenges/30-days gibi bağlantılar kullan. Uygulama yüklü değilse tarayıcı sayfayı yükler ve aynı yedek akış çalışır.
mapps.one pek çok uygulama tarafından paylaşıldığı için ilişkilendirme dosyaları yalnızca özel alan adlarında sunulur. mapps.one/habitly/open/ bağlantıları yönlendirme sayfası üzerinden çalışmaya devam eder. Panelde ve API'de gösterilen derin bağlantı adresleri mapps.one kullanır; doğrulanmış bağlantı istediğinde alan adını kendi alan adınla değiştir.Analitik
Bir telefon ya da tablet /open/ adresini yüklediğinde ve mapps.one uygulamayı açmayı denediğinde Derin bağlantı açılışları altında bir açılış sayılır. Mağazaya yapılan yedek yönlendirme ikinci kez sayılmaz. Uygulamayı doğrudan açan doğrulanmış bağlantılar mapps.one'a hiç ulaşmadığı için sayılmaz; bunlar için uygulamanın kendi analitiğini kullan.