Universal Links ve App Links Arasındaki Fark Nedir?

Yazar: Fatih ŞahinYayın: 27 Ağu 2026Güncelleme: 7 Eyl 202616 dk Okuma

Universal Links iOS cihazlarda, App Links ise Android cihazlarda web bağlantılarını doğrudan native uygulamada açmak için kullanılan derin bağlantı (deep link) standartlarıdır.

Universal Links ve App Links Arasındaki Fark Nedir? için öne çıkan görsel
Universal Links ve App Links Arasındaki Fark Nedir? için öne çıkan görsel

Mobil platformlarda kullanıcıyı doğru içeriğe en az sürtünmeyle ulaştırmak, dijital ürün stratejilerinin temel yapı taşlarından biridir. Universal Links ve App Links Arasındaki Fark Nedir? sorusunun teknik ve operasyonel karşılığı; Apple (iOS) ve Google (Android) platformlarının web adreslerini yerel mobil uygulamalarla güvenli, doğrulanmış ve pürüzsüz biçimde eşleştirmek için geliştirdikleri iki ayrı derin bağlantı (deep linking) standardında yatar. Universal Links iOS ekosistemine özel olarak Apple CDN ve ilişkili alan adı doğrulamasıyla çalışırken, App Links Android ekosisteminde Digital Asset Links protokolü üzerinden işletim sistemi düzeyinde otomatik intent çözümlemesi gerçekleştirir. Bu rehber, işletme karar vericileri ve ürün ekipleri için her iki standardın mimarisini, teknik farklarını, yapılandırma gereksinimlerini ve dönüşüm oranlarına etkisini kapsamlı biçimde incelemektedir.

Mobil Ekosistemde Derin Bağlantı (Deep Linking) Standartları

Mobil uygulama mimarisinde derin bağlantı (deep linking), bir kullanıcının web tarayıcısından, e-posta bülteninden, SMS bildiriminden veya harici bir uygulamadan doğrudan belirli bir uygulama içi ekrana yönlendirilmesini sağlayan URL mekanizmasıdır. Kullanıcıyı yalnızca uygulamanın ana sayfasına açmak yerine doğrudan hedeflenen ürün detayına, kampanya sayfasına veya kullanıcı profiline ulaştırmak, dönüşüm hunisindeki adımları kısaltarak terk oranlarını minimize eder.

Geleneksel web sayfalarında kullanılan standart hiperlinkler, mobil işletim sistemlerinin kapalı dosya ve sandbox yapıları nedeniyle native uygulamalara doğrudan erişemez. Mobil ekosistemin ilk yıllarında bu bariyer özel URI şemaları (custom URL schemes) ile aşılmaya çalışılmış olsa da bu yöntem güvenlik açıkları ve platformlar arası uyumsuzluklar yaratmıştır. Modern mobil ekosistemde güvenli, iki taraflı doğrulanmış ve kesintisiz bir kullanıcı akışı sağlamak amacıyla Apple ve Google kendi ekosistemlerine özgü modern derin bağlantı standartlarını geliştirmiştir.

Deep Linking'in Evrimi: Nereden Nereye?

Mobil derin bağlantıların ilk nesli myapp://path/to/content biçimindeki özel URI şemalarına dayanıyordu. Bu mekanizmada uygulama geliştiricisi işletim sistemine belirli bir protokol şeması kaydeder ve tarayıcı bu şemayı gördüğünde ilgili uygulamayı tetiklerdi. Ancak bu yaklaşım merkezi bir sahiplik veya alan adı doğrulama mekanizmasından yoksundu.

Aynı URI şemasını (örneğin: pay://) birden fazla uygulamanın tescil edebilmesi, bağlantı hırsızlığı (link hijacking) ve kimlik avı (phishing) risklerini beraberinde getirdi. Cihazda aynı şemayı dinleyen iki farklı uygulama yüklü olduğunda, işletim sistemleri kullanıcıya hangi uygulamanın açılacağını soran belirsiz sistem pencereleri (disambiguation dialogs) gösteriyor ya da bağlantıyı rastgele bir uygulamaya devrediyordu. Bu durum hem güvenlik zaafiyeti oluşturuyor hem de kullanıcı deneyimini zedeliyordu.

Neden Yeni Nesil Derin Bağlantılar Gerekliydi?

Özel URI şemalarının getirdiği bir diğer kritik sorun, uygulamanın cihazda yüklü olmadığı senaryolarda standart bir fallback (yedekleme/geri dönüş) mekanizmasının bulunmamasıydı. Kullanıcı bir özel URI şemasına tıkladığında ve cihazda uygulama yoksa, mobil tarayıcı "Bağlantı açılamıyor" veya "Geçersiz adres" hatası vererek kullanıcıyı tamamen kaybediyordu.

Universal Links ve App Links bu problemleri standart https:// web protokolünü temel alarak çözdü. Bu yeni nesil standartlar:

  • Standart alan adları üzerinden çalıştığı için DNS ve SSL/TLS güvenliğini arkasına alır.

  • Alan adı sahipliği ile uygulama kimliğini karşılıklı doğrulayan dijital sertifika/manifest dosyaları kullanır.

  • Uygulama yüklü değilse, tarayıcı hatası vermek yerine standart web sayfasını normal şekilde Safari veya Chrome üzerinde açar.

Mobil Uygulama Deneyimi İçin Önemi

Kullanıcıların dijital kanallardaki yolculuğu doğrusal değildir; sosyal medya reklamından, SMS kampanyasından ya da organik arama sonuçlarından gelen bir kullanıcının native uygulamaya sıfır sürtünmeyle aktarılması gerekir. Modern derin bağlantılar, tarayıcıda ara yönlendirme ekranları (prompt veya dialog kutuları) göstermeden doğrudan native arayüzü başlatır.

Mobil pazarlama tarafında ölçümleme doğruluğu, müşteri edinme maliyeti (CAC) optimizasyonu ve kullanıcı yaşam boyu değeri (LTV) metrikleri, bağlantıların pürüzsüz çalışmasına doğrudan bağlıdır. Yanlış yapılandırılmış veya güvensiz bağlantılar kullanıcıyı web sitesi ile uygulama arasında kısır döngüye sokarak dönüşüm hunisinin en kritik noktasında kayıplara neden olur.

Universal Links, Apple tarafından iOS 9 ile kullanıma sunulan ve standart HTTP/HTTPS bağlantılarını doğrudan iOS uygulamalarıyla ilişkilendiren derin bağlantı teknolojisidir. Apple ekosisteminde çalışan bu mekanizma, kullanıcının Safari, Mail, Mesajlar veya üçüncü taraf uygulamalardaki bir web bağlantısına tıkladığında, tarayıcıyı hiç araya sokmadan doğrudan ilgili yerel uygulamanın hedeflenen görünümünü açmasını sağlar.

Universal Links mimarisinde özel bir URL şeması kullanılmaz; web sitenizin gerçek URL'si (örneğin https://example.com/urun/123) aynı zamanda derin bağlantınızdır. Bu yapı, hem web hem mobil uygulama için tek ve tutarlı bir URL hiyerarşisi oluşturulmasına olanak tanır.

iOS Ekosisteminde Çalışma Prensibi

Bir kullanıcı iOS cihazında bir Universal Link'e dokunduğunda işletim sistemi kernel düzeyinde URL'yi inceler. iOS, cihazda yüklü uygulamaların yetki tanımlarını (entitlements) kontrol ederek ilgili alan adının bir uygulamayla eşleşip eşleşmediğini doğrular.

Eşleşme doğrulanırsa işletim sistemi web tarayıcısını atlayarak doğrudan uygulamayı başlatır ve URL verisini continueUserActivity (UIKit) veya onOpenURL (SwiftUI) yaşam döngüsü metotlarına aktarır. Uygulama bu parametreleri çözümleyerek kullanıcıyı saniyeden kısa bir sürede ilgili ekrana taşır. Cihazda uygulama yüklü değilse, işletim sistemi URL'yi varsayılan web tarayıcısında (Safari) normal bir web sayfası gibi render eder; kullanıcı hiçbir kesinti veya hata mesajı ile karşılaşmaz.

Güvenlik ve Etki Alanı Doğrulaması

Universal Links'in temel güvenlik mekanizması, web sitesi sunucusu ile iOS uygulaması arasındaki iki yönlü güven ilişkisine dayanır. Bir uygulamanın belirli bir alan adına ait bağlantıları sahiplenebilmesi için:

  1. Uygulama geliştiricisinin Xcode projesinde Associated Domains yeteneğini tanımlaması,

  2. Alan adı sahibinin web sunucusunun kök dizininde veya .well-known klasöründe apple-app-site-association (AASA) adlı JSON formatındaki dosyayı barındırması gerekir.

AASA dosyası, uygulamanın Team ID ve Bundle ID bilgilerini içerir. iOS, uygulamanın gerçekten bu alan adına ait olup olmadığını bu dosyadaki kimlik bilgilerini karşılaştırarak doğrular. Bu sayede hiçbir üçüncü taraf uygulama, yetkisi olmayan bir alan adının bağlantılarını kendi üzerine çekemez.

Apple CDN ve apple-app-site-association Mimarisi

iOS 14 ile birlikte Apple, AASA dosyalarının doğrulanma yönteminde köklü bir değişiklik yapmıştır. Öncesinde her iOS cihazı uygulama yüklendiğinde doğrudan web sitenizin sunucusuna HTTPS isteği atarak AASA dosyasını indirirken, iOS 14 sonrasında bu işlem Apple CDN (İçerik Dağıtım Ağı) üzerinden merkezi olarak yürütülmektedir.

Yeni mimaride bir uygulama App Store'dan indirildiğinde veya güncellendiğinde, iOS cihazı Apple'ın global önbellek sunucularına başvurur. Apple CDN, web sitenizin AASA dosyasını belirli periyotlarla tarayarak önbelleğe alır. Bu durum web sunucularınızdaki anlık yükü düşürse de AASA dosyasında yaptığınız güncellemelerin tüm cihazlara yansımasında 24 ila 48 saate varan gecikmelere (propagation delay) yol açabilir.

App Links (Android App Links), Google tarafından Android 6.0 (Marshmallow, API seviyesi 23) ile tanıtılan ve standart HTTPS bağlantılarını Android uygulamalarıyla doğrudan ve doğrulanmış biçimde ilişkilendiren derin bağlantı standardıdır. Android ekosisteminde web URL'lerinin işletim sistemi düzeyinde otomatik olarak tek bir yerel uygulamaya tahsis edilmesini sağlar.

Android'in geleneksel "Deep Links" mekanizmasında URL tıklandığında kullanıcıya "Birlikte Aç" (Open with) iletişim kutusu gösterilirken, App Links doğrulaması tamamlanmış bağlantılarda bu diyalog kutusu tamamen devre dışı kalır ve bağlantı doğrudan hedef native uygulamada açılır.

Android Ekosisteminde Çalışma Prensibi

Bir kullanıcı Android cihazında bir App Link'e tıkladığında işletim sistemi, yüklü uygulamaların AndroidManifest.xml dosyasındaki intent filtrelerini tarar. İlgili intent filtresinde autoVerify="true" bayrağı bulunuyorsa ve alan adı doğrulaması başarıyla tamamlanmışsa Android doğrudan uygulamayı açar.

Uygulama başlatıldığında gelen URL intent nesnesi içinde taşınır; uygulamanın Activity bileşeni (örneğin onCreate veya onNewIntent yaşam döngüsünde) bu veriyi ayrıştırarak ilgili Fragment veya Composable ekranına yönlendirme yapar. Cihazda doğrulanmış uygulama yoksa, bağlantı varsayılan tarayıcıda standart web sayfası olarak açılır.

Otomatik Doğrulama ve Intent Yönetimi

App Links mimarisinin en ayırt edici özelliği autoVerify sürecidir. Bir uygulamanın AndroidManifest.xml dosyasına eklenen intent filtresi şu temel öğeleri barındırır:

  • android.intent.action.VIEW eylemi,

  • android.intent.category.DEFAULT ve android.intent.category.BROWSABLE kategorileri,

  • https protokolünü ve alan adını belirten <data> etiketi,

  • Doğrulamayı tetikleyen android:autoVerify="true" parametresi.

Uygulama cihaza yüklendiği anda Android işletim sistemi intent filtresinde belirtilen tüm alan adlarına arka planda bir HTTPS GET isteği gönderir. Bu istek https://domain.com/.well-known/assetlinks.json adresini hedefler.

Android'in alan adı sahipliğini doğrulamak için kullandığı protokol Digital Asset Links olarak adlandırılır. Web sunucusunun barındırdığı assetlinks.json dosyası, uygulamanın paket adı (package_name) ile uygulamanın imzalama sertifikasının SHA-256 parmak izini (fingerprint) içerir.

Bu kriptografik parmak izi doğrulaması sayesinde:

  • Yalnızca aynı imzalama anahtarına sahip orijinal uygulamanın bağlantıları devralması garanti edilir.

  • Sahte veya yeniden paketlenmiş (re-packaged) kötü amaçlı APK'ların alan adınızı taklit etmesi engellenir.

  • Android 12 (API 31) ve sonraki sürümlerde, autoVerify doğrulaması geçmeyen tüm web bağlantıları varsayılan olarak yerel uygulama yerine tarayıcıya yönlendirilerek güvenlik seviyesi artırılmıştır.

Her iki teknoloji de web URL'lerini yerel uygulamalara bağlama ortak hedefine hizmet etse de, arkalarındaki işletim sistemi felsefeleri, doğrulama yöntemleri, dosya yapılandırmaları ve istisnai durum yönetimleri belirgin farklılıklar gösterir.

Aşağıdaki tablo iki derin bağlantı standardının teknik ve operasyonel kriterlerini özetlemektedir:

KriterApple Universal Links (iOS)Google App Links (Android)
Hedef PlatformiOS 9 ve üzeri, iPadOS, macOSAndroid 6.0 (API 23) ve üzeri
Doğrulama Dosyasıapple-app-site-association (AASA)assetlinks.json
Dosya FormatıJSON (Uzantısız veya .json)Standart JSON
Kimlik Doğrulama VerisiApple Team ID + App Bundle IDPackage Name + SHA-256 Parmak İzi
Doğrulama KanalıApple CDN (iOS 14+) / Doğrudan SunucuDoğrudan Web Sunucusu (Cihaz üzerinden)
İstemci YapılandırmasıXcode Associated Domains EntitlementAndroidManifest.xml (autoVerify="true")
Kullanıcı Onay PenceresiYok (Doğrudan açılır)Yok (Doğrulanmışsa doğrudan açılır)
Kullanıcı Devre Dışı BırakmaSafari sağ üst köşe bağlantısıyla web'e geçişAndroid Ayarlar > Uygulama Varsayılanları

Hedef Platform

Apple Universal Links (iOS)

iOS 9 ve üzeri, iPadOS, macOS

Google App Links (Android)

Android 6.0 (API 23) ve üzeri

Doğrulama Dosyası

Apple Universal Links (iOS)

apple-app-site-association (AASA)

Google App Links (Android)

assetlinks.json

Dosya Formatı

Apple Universal Links (iOS)

JSON (Uzantısız veya .json)

Google App Links (Android)

Standart JSON

Kimlik Doğrulama Verisi

Apple Universal Links (iOS)

Apple Team ID + App Bundle ID

Google App Links (Android)

Package Name + SHA-256 Parmak İzi

Doğrulama Kanalı

Apple Universal Links (iOS)

Apple CDN (iOS 14+) / Doğrudan Sunucu

Google App Links (Android)

Doğrudan Web Sunucusu (Cihaz üzerinden)

İstemci Yapılandırması

Apple Universal Links (iOS)

Xcode Associated Domains Entitlement

Google App Links (Android)

AndroidManifest.xml (autoVerify="true")

Kullanıcı Onay Penceresi

Apple Universal Links (iOS)

Yok (Doğrudan açılır)

Google App Links (Android)

Yok (Doğrulanmışsa doğrudan açılır)

Kullanıcı Devre Dışı Bırakma

Apple Universal Links (iOS)

Safari sağ üst köşe bağlantısıyla web'e geçiş

Google App Links (Android)

Android Ayarlar > Uygulama Varsayılanları

İşletim Sistemi ve Platform Kapsamı

Universal Links yalnızca Apple ekosisteminde (iOS, iPadOS ve belirli koşullarda macOS Catalyst uygulamalarında) çalışır. Apple, uygulama ile web arasındaki geçişi katı bir şekilde kontrol eder; eğer kullanıcı Safari üzerinden bilinçli olarak web versiyonunu tercih ederse, işletim sistemi bu tercihi hatırlar ve sonraki tıklamalarda doğrudan web sitesinde kalır. Bu durum kullanıcı kontrolünü artırırken geliştiriciler için takip edilmesi gereken bir davranış modeli oluşturur.

App Links ise Android ekosistemine odaklanır. Android açık yapısı gereği kullanıcılara sistem ayarlarından bağlantı açma tercihlerini sıfırlama veya belirli alan adlarını manuel olarak devre dışı bırakma esnekliği sunar. Android 12 ile birlikte doğrulama mekanizması daha katı hale getirilmiş, kısmi doğrulamaya sahip uygulamaların arayüz iletişim kutusu açması engellenmiştir.

Yapılandırma dosyalarının biçimi ve sunulma kuralları iki platform arasındaki en temel teknik ayrımdır:

  • Apple AASA Dosyası: Dosya adı kesinlikle uzantısız olmalıdır (apple-app-site-association). Sunucu bu dosyayı application/json MIME türüyle ve doğrudan HTTPS üzerinden döndürmelidir. Yönlendirme (redirect 301/302) Apple CDN tarafından kabul edilmez.

  • Android Assetlinks Dosyası: Dosya adı assetlinks.json şeklindedir ve .well-known dizini altında barındırılır. İçeriğinde uygulamanın Google Play Console'da veya yerel imzalama anahtarında yer alan SHA-256 parmak izi açıkça belirtilmelidir.

Uygulama Yüklü Olmadığında Gelişen Senaryolar (Fallback Mekanizmaları)

Her iki teknolojinin de en büyük gücü, standart HTTP/HTTPS URL'leri kullanmaları nedeniyle yerleşik fallback desteğine sahip olmalarıdır. Ancak işleyiş detaylarında nüanslar vardır:

  1. iOS Senaryosu: Uygulama yüklü değilse Safari URL'yi normal bir web sayfası gibi yükler. Kullanıcıyı App Store'a yönlendirmek istiyorsanız, web sayfanızın üzerine Smart App Banner meta etiketi eklemeniz veya JavaScript tabanlı akıllı yönlendirme kurgulamanız gerekir.

  2. Android Senaryosu: Uygulama yüklü değilse Chrome veya varsayılan tarayıcı web sitesini açar. Benzer şekilde kullanıcıyı Google Play Store'a taşımak için web tarafında dinamik banner'lar veya Intent tabanlı fallback kurguları devreye alınmalıdır.

KARŞILAŞTIRMA TABLOSU

İki derin bağlantı standardının karar ve uygulama kriterlerine göre değerlendirmesi.

Kriter
Avantajlar
Dezavantajlar
01 Doğrulama Altyapısı
iOS, Apple CDN ile sunucu yükünü azaltır ve global hız sağlar.
Android, cihaz bazlı doğrulama yaptığı için anlık güncellenir ancak ağ yükü oluşturabilir.
02 Güvenlik Modeli
Android, SHA-256 sertifika parmak izi ile APK düzeyinde tam imza doğrulaması yapar.
iOS, Team ID ve Bundle ID eşleşmesine güvenir; dosya içeriği uzantısız JSON olmalıdır.
03 Hata Yönetimi (Fallback)
Her iki standart da uygulama yoksa web sitesini kesintisiz açarak veri kaybını önler.
Doğrudan mağazaya yönlendirme için ek web katmanı veya deferred deep link araçları gerekir.
01

Doğrulama Altyapısı

Avantaj

iOS, Apple CDN ile sunucu yükünü azaltır ve global hız sağlar.

Dezavantaj

Android, cihaz bazlı doğrulama yaptığı için anlık güncellenir ancak ağ yükü oluşturabilir.

02

Güvenlik Modeli

Avantaj

Android, SHA-256 sertifika parmak izi ile APK düzeyinde tam imza doğrulaması yapar.

Dezavantaj

iOS, Team ID ve Bundle ID eşleşmesine güvenir; dosya içeriği uzantısız JSON olmalıdır.

03

Hata Yönetimi (Fallback)

Avantaj

Her iki standart da uygulama yoksa web sitesini kesintisiz açarak veri kaybını önler.

Dezavantaj

Doğrudan mağazaya yönlendirme için ek web katmanı veya deferred deep link araçları gerekir.

Teknik Entegrasyon Süreçlerindeki Kritik Gereksinimler

Universal Links ve App Links entegrasyonu, hem mobil uygulama istemcisinde (native kod) hem de web barındırma altyapısında (sunucu/CDN) eşzamanlı ve hatasız yapılandırma gerektirir. En küçük bir sözdizimi hatası, SSL sertifika uyuşmazlığı veya yanlış MIME türü tanımı tüm derin bağlantı akışının sessizce bozulmasına neden olabilir.

Entegrasyon sürecinin başarıyla tamamlanması için her iki platformun zorunlu kıldığı adımların eksiksiz uygulanması şarttır.

iOS AASA Dosyası İçin Zorunlu Kriterler

Apple'ın AASA dosyası için belirlediği katı kurallar şunlardır:

  • Konum: Dosya /.well-known/apple-app-site-association veya /apple-app-site-association adresinde bulunmalıdır (.well-known dizini önceliklidir).

  • Format ve Başlıklar: Dosya uzantısı (.json) olmamalı, application/json başlığıyla sunulmalı ve HTTP durum kodu 200 OK dönmelidir.

  • Yönlendirme Yasağı: Dosya URL'si kesinlikle 301 veya 302 yönlendirmesi içermemelidir; doğrudan hedef sunucudan teslim edilmelidir.

  • Boyut Kısıtı: AASA dosyası boyutu maksimum 128 KB olmalıdır.

AASA dosyasının JSON yapısı temel olarak şu deseni takip eder:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAM_ID.com.example.myapp",
        "paths": ["/urun/*", "/kategori/*", "/kampanya/*", "NOT /gizlilik-politikasi"]
      }
    ]
  }
}

iOS 13 ve sonrasında Apple, components anahtarıyla daha detaylı pattern matching (şablon eşleme) ve query parametresi filtreleme özelliklerini destekleyen modern sözdizimini kullanıma sunmuştur.

Android assetlinks.json Yapılandırması ve Yükleme Kuralları

Google'ın Digital Asset Links dosyası için belirlediği kurallar şu şekildedir:

  • Konum: Dosya mutlaka https://domain.com/.well-known/assetlinks.json adresinde olmalıdır.

  • Başlıklar: Sunucu Content-Type: application/json başlığı sağlamalı ve dosya genel erişime açık (public) olmalıdır.

  • İçerik Doğruluğu: JSON dizisi içinde target nesnesinde uygulamanın tam paket adı ve doğru SHA-256 imzalama anahtarı yer almalıdır.

Örnek bir assetlinks.json dosyası içeriği:

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.myapp",
      "sha256_cert_fingerprints": [
        "14:6D:E9:7D:0F:52:CC:42:07:31:9A:A0:2B:6F:09:2B:CE:35:45:93:C2:59:71:96:46:B2:C0:88:56:5B:3D:22"
      ]
    }
  }
]

Google Play App Signing kullanıyorsanız, buraya eklemeniz gereken SHA-256 parmak izinin yerel yükleme anahtarınız değil, Google Play tarafından oluşturulan dağıtım anahtarı (App signing key certificate) olduğunu unutmamanız gerekir.

Her İki Sistem İçin Ortak HTTPS ve Sunucu Zorunlulukları

Hem Apple hem de Google güvenlik gereği alan adı doğrulamasında taviz vermez. Sunucu tarafında sağlanması gereken temel teknik altyapı kriterleri:

  • Geçerli SSL/TLS Sertifikası: Sunucunuz güvenilir bir sertifika yetkilisi (CA) tarafından imzalanmış geçerli bir TLS sertifikasına sahip olmalıdır. Kendinden imzalı (self-signed) sertifikalar her iki platform tarafından da reddedilir.

  • TLS Versiyonu: Sunucunun en az TLS 1.2 veya TLS 1.3 protokollerini desteklemesi gerekir. Eski şifreleme paketleri bağlantı reddine yol açar.

  • Robots.txt ve Güvenlik Duvarı (WAF): .well-known dizini robots.txt ile engellenmemeli, Cloudflare veya AWS WAF gibi güvenlik duvarları Apple CDN ve Googlebot tarayıcılarının bu dizine erişimini bloke etmemelidir.

Uygulama Geliştiricileri İçin Sık Yapılan Hatalar ve Güvenlik Uyarıları

Derin bağlantı entegrasyonları canlıya alındıktan sonra sıklıkla sessiz arızalara (silent failures) maruz kalır. Bu arızalar genellikle bir hata mesajı üretmez; bağlantı uygulamayı açmak yerine tarayıcıda kalır veya yanlış ekrana yönlenir. Bu durum geliştirme ekiplerinin sorunu tespit etmesini zorlaştırır.

Uygulama kalitesini ve kullanıcı güvenliğini korumak için en sık karşılaşılan hataların ve güvenlik risklerinin önceden analiz edilmesi gerekir.

Yanlış Dizin Yapılandırmasının Sonuçları

Geliştiricilerin en sık düştüğü hatalardan biri, alan adı doğrulama dosyalarının yanlış HTTP başlıkları veya konumlarla sunulmasıdır:

  • AASA Dosyasına .json Uzantısı Eklemek: Apple, iOS 13 ve öncesi sürümlerde uzantılı dosyaları kesinlikle tanımaz. Dosya adı yalın olmalıdır.

  • HTTP 301/302 Yönlendirmesi Yapmak: http:// adresinden https:// adresine yönlendirme varsa ve AASA dosyası yönlendirme döngüsüne takılıyorsa Apple CDN doğrulamayı iptal eder.

  • MIME Türü Uyuşmazlığı: Sunucunun dosyayı text/plain veya text/html olarak döndürmesi doğrulama motorlarının JSON içeriğini işlemeyi reddetmesine sebep olur.

Tarayıcı İçi (In-App Browser) Yönlendirme Çakışmaları

Instagram, Facebook, TikTok, LinkedIn ve X (Twitter) gibi platformlar, kullanıcı bir bağlantıya tıkladığında bağlantıyı sistem tarayıcısı yerine kendi uygulama içi web görünümlerinde (In-App Browser / WKWebView) açar.

Bu uygulama içi tarayıcılar, işletim sisteminin yerel Universal Link ve App Link tetikleyicilerini varsayılan olarak bastırabilir. Kullanıcı bağlantıya bastığında doğrudan hedef uygulamaya geçmek yerine sosyal medya uygulamasının içindeki kısıtlı web görünümünde kalır. Bu sorunu aşmak için:

  • Web tarafında kullanıcıya "Uygulamada Aç" butonu sunulmalı,

  • Bu buton tıklandığında Universal Link veya App Link mekanizması kullanıcı etkileşimiyle (explicit user action) yeniden tetiklenmelidir.

Alan Adı Doğrulama ve SSL Hataları

Android tarafında assetlinks.json doğrulamasının başarısız olmasındaki en büyük etken, imzalama anahtarlarının karışmasıdır. Yerel geliştirme ortamında (Debug build) oluşturulan SHA-256 parmak izi ile üretim ortamındaki (Release build) parmak izi birbirinden farklıdır.

Eğer Google Play App Signing aktifse, Google Play Store uygulamanızı dağıtırken kendi anahtarıyla yeniden imzalar. Sunucunuzdaki assetlinks.json dosyasına yerel anahtarınızın parmak izi yerine Google Play Console > Kurulum > Uygulama İmzalama ekranındaki SHA-256 değerini eklemediğiniz takdirde App Links doğrulaması tüm kullanıcılarda sessizce çöker.

ARTILAR & EKSİLER

Universal/App Links yapısının geleneksel URI şemalarına karşı avantaj ve dezavantajları.

Artılar

2 avantaj

Kesintisiz Güvenlik

Çift taraflı alan adı doğrulaması sayesinde sahte uygulamaların bağlantıları ele geçirmesi imkansızdır.

Doğal Fallback Desteği

Uygulama cihazda yoksa hata vermek yerine doğrudan standart web sitesini açar.

!

Eksiler

2 dikkat noktası

!

Karmaşık Sunucu Yapılandırması

HTTPS, JSON manifest ve MIME türü ayarlarının hatasız yönetilmesini gerektirir.

!

Önbellek ve Gecikme Riskleri

Apple CDN güncellemelerinin tüm istemcilere yayılması 24-48 saat sürebilir.

Kullanıcı Deneyimi (UX) ve Mobil Pazarlamaya Etkileri

Derin bağlantılar sadece bir yazılım mimarisi bileşeni değil, doğrudan dijital büyüme ve gelir optimizasyonunu etkileyen bir ürün stratejisi aracıdır. Kullanıcıyı dijital bir temas noktasından (reklam, e-posta, arama sonucu) yerel uygulamadaki hedeflenen içeriğe kesintisiz taşımak, dönüşüm oranlarını dramatik biçimde artırır.

Mobil uygulamaların web sitelerine kıyasla 3 kata kadar daha yüksek dönüşüm oranı (conversion rate) ve daha yüksek sepet ortalaması sunduğu bilinmektedir. Bu avantajdan yararlanabilmek, trafiğin web yerine yerel uygulamaya sorunsuz akmasına bağlıdır.

Gelişmiş Kullanıcı Deneyimi ile Artan Memnuniyet

Geleneksel web yönlendirmelerinde kullanıcı önce tarayıcıyı açmak, ardından oturum açma (login) adımlarını tekrarlamak veya mobil web sitesinin sınırlı arayüzüyle etkileşime girmek zorunda kalır. Universal Links ve App Links bu sürtünmeyi ortadan kaldırır:

  • Tek Tıkla Doğrudan Erişim: Kullanıcı e-postadaki bir sipariş takip linkine bastığı anda doğrudan kayıtlı olduğu native uygulamadaki sipariş detay ekranına ulaşır.

  • Oturum Sürekliliği: Kullanıcı zaten mobil uygulamada oturum açmış durumda olduğundan tekrar parola girmekle uğraşmaz.

  • Diyalog Kutusu Olmaması: Android'de çıkan kafa karıştırıcı "Birlikte Aç" pencereleri veya iOS'taki gereksiz onay adımları atlanarak doğrudan içeriğe odaklanılır.

Dönüşüm Oranlarına ve Pazarlama Kampanyalarına Etkisi

Mobil pazarlama harcamalarının verimliliği, yönlendirme zincirindeki kayıpların azaltılmasıyla doğrudan ilişkilidir. Doğru yapılandırılmış bir derin bağlantı stratejisi:

  • Terk Oranlarını (Drop-off Rate) Düşürür: Bağlantı tıklaması ile ekran yüklenmesi arasındaki bekleme ve hata payını sıfıra indirir.

  • Yeniden Etkinleştirme (Re-engagement) Başarısını Artırır: Push bildirimlerine izin vermeyen kullanıcılara e-posta veya SMS üzerinden gönderilen kişiselleştirilmiş derin bağlantılar, pasif kullanıcıları doğrudan uygulamanın gelir getiren bölümlerine çeker.

  • Omnichannel Tutarlılığı Sağlar: Web, e-posta ve mobil uygulama arasındaki URL yapıları standartlaştığı için kampanya takibi ve UTM analitiği tek bir kanal üzerinden konsolide edilir.

Ertelenmiş Derin Bağlantı (Deferred Deep Linking) Stratejisi

Standart Universal Links ve App Links teknolojileri yalnızca uygulamanın cihazda zaten yüklü olduğu senaryolarda doğrudan uygulama içi ekrana yönlendirme yapabilir. Ancak uygulama cihazda yüklü değilse standart akış gereği kullanıcı web sitesine düşer.

Pazarlama kampanyalarında uygulamanın cihazda olmadığı senaryoları da kapsamak için Ertelenmiş Derin Bağlantı (Deferred Deep Linking) mimarisi kullanılır:

  1. Kullanıcı bağlantıya tıklar; sistem uygulamanın yüklü olmadığını tespit eder.

  2. Kullanıcı doğrudan App Store veya Google Play Store'a yönlendirilir.

  3. Kullanıcı uygulamayı indirip ilk kez açtığında, ilk tıkladığı bağlantıdaki parametreler (örneğin indirim kodu veya belirli ürün ekranı) uygulamaya aktarılır.

  4. Uygulama ana sayfa yerine doğrudan hedeflenen kampanya sayfasıyla açılır.

Bu yapı standart işletim sistemi protokollerinin ötesinde AppsFlyer, Branch.io veya Adjust gibi Mobil Ölçümleme Ortakları (MMP) veya özel sunucu parmak izi (fingerprinting/probabilistic matching) altyapıları gerektirir.

Sıkça Sorulan Sorular

Universal Link ve App Link yapılandırmaları sunucuda ne kadar sürede aktif olur?

Android App Links için assetlinks.json dosyası sunucuya yüklendiği anda yeni kurulumlarda hemen aktifleşir. Apple Universal Links için ise iOS 14 sonrasında Apple CDN önbellekleme mekanizması kullanıldığından AASA dosyasındaki değişikliklerin global olarak devreye girmesi 24 ila 48 saat sürebilir.

Geleneksel URI şeması ile modern Universal/App Links arasındaki temel fark nedir?

Geleneksel URI şemaları myapp:// gibi özel protokoller kullanır, alan adı doğrulaması içermez ve güvenlik açıklarına açıktır. Universal Links ve App Links ise standart https protokolünü, şifrelenmiş dijital manifest dosyalarıyla doğrulayarak güvenli ve pürüzsüz yönlendirme sağlar.

Kullanıcı uygulamayı cihazından silmişse bu bağlantılar nasıl tepki verir?

Her iki standartta da uygulama cihazda yüklü değilse işletim sistemi hiçbir hata vermez. Bağlantı, cihazın varsayılan web tarayıcısında (Safari veya Chrome) standart bir web sayfası olarak sorunsuz şekilde açılır.

Ertelenmiş Derin Bağlantı (Deferred Deep Linking) bu standartların içinde yerleşik olarak var mıdır?

Hayır, ne Apple Universal Links ne de Android App Links yerleşik olarak deferred deep linking desteği sunmaz. Uygulama yüklendikten sonra ilk açılışta veriyi korumak için Branch, AppsFlyer, Adjust gibi MMP platformları veya özel cihaz eşleştirme altyapıları kullanılmalıdır.

Tek bir web sitesi alan adı birden fazla iOS veya Android uygulamasıyla ilişkilendirilebilir mi?

Evet, hem AASA hem de assetlinks.json dosyaları JSON dizisi (array) formatındadır. Bu dosyalara birden fazla uygulamanın kimlik bilgileri (Bundle ID / Package Name) ve bunlara ait yol (path) tanımları eklenerek tek bir alan adı çoklu uygulamalarla eşleştirilebilir.

Bir AASA dosyasının boyutu ve sunucu gereksinimleri nelerdir?

AASA dosyası maksimum 128 KB boyutunda olmalı, kesinlikle .json uzantısı taşımamalı, application/json başlığıyla HTTPS üzerinden doğrudan (yönlendirme olmadan) 200 OK durumuyla sunulmalıdır.

Android 12 ve sonraki sürümlerde App Links doğrulaması neden daha kritiktir?

Android 12'den itibaren Google, assetlinks.json doğrulaması başarıyla tamamlanmamış web bağlantılarının "Birlikte Aç" penceresi göstermesini engellemiş ve bu bağlantıları zorunlu olarak varsayılan tarayıcıya yönlendirmeye başlamıştır. Bu nedenle doğrulanmamış bağlantılar uygulamayı kesinlikle tetiklemez.

Alt alan adları (subdomains) için Universal Links ve App Links ayrı ayrı yapılandırılmalı mıdır?

Evet, her iki sistemde de app.example.com ve m.example.com gibi farklı alt alan adları ayrı birer host olarak kabul edilir. İlgili manifest dosyalarının her alt alan adının kendi kök veya .well-known dizininde ayrı ayrı barındırılması ve istemci tarafında tanımlanması zorunludur.

Son Adım

Dijital projenizi bugün planlayalım

Web, yazılım, e-ticaret, mobil uygulama, entegrasyon, SEO veya GEO ihtiyacınızı net bir kapsama dönüştürelim.

Universal Links ve App Links Arasındaki Fark Nedir? | Webizm