Firebase Dynamic Links Builder API ile kısa veya uzun Dynamic Links oluşturabilirsiniz. Bu API, uzun bir Dynamic Link veya Dynamic Link parametrelerini içeren bir nesneyi kabul eder ve aşağıdaki örneklerdeki gibi URL'ler döndürür:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Firebase'i ve Dynamic Links SDK'sını kurma
Android uygulamanızda Dynamic Links oluşturabilmek için Firebase SDK'sını eklemeniz gerekir. Uygulamanız Dynamic Links alacak şekilde ayarlandıysa bu adımları zaten tamamlamışsınızdır ve bu bölümü atlayabilirsiniz.
Henüz yapmadıysanız Firebase'i Android projenize ekleyin.
Uygulamanızı kaydederken SHA-1 imzalama anahtarınızı belirtin. Uygulama Bağlantıları'nı kullanıyorsanız SHA-256 anahtarınızı da belirtin.
-
Modülünüzün (uygulama düzeyinde) Gradle dosyasında (genellikle
<project>/<app-module>/build.gradle.ktsveya<project>/<app-module>/build.gradle) Android için Dynamic Links kitaplığına olan bağımlılığı ekleyin. Kitaplık sürümünü kontrol etmek için Firebase Android BoM kullanmanızı öneririz.Dynamic Links ile en iyi deneyimi yaşamak için Firebase projenizde Google Analytics özelliğini etkinleştirmenizi ve Google Analytics için Firebase SDK'sını uygulamanıza eklemenizi öneririz.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.0.1")) // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
Firebase Android BoM kullanarak uygulamanızın her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanmasını sağlayabilirsiniz.
(Alternatif) BoM kullanmadan Firebase kitaplığı bağımlılıklarını ekleme
Firebase BoM kullanmamayı tercih ederseniz her Firebase kitaplığı sürümünü kendi bağımlılık satırında belirtmeniz gerekir.
Uygulamanızda birden fazla Firebase kitaplığı kullanıyorsanız kitaplık sürümlerini yönetmek için BoM kullanmanızı önemle tavsiye ederiz. Bu sayede tüm sürümlerin uyumlu olmasını sağlayabilirsiniz.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:22.1.0' implementation 'com.google.firebase:firebase-analytics:24.0.0' }
- Firebase konsolunda Dynamic Links bölümünü açın.
-
Hizmet Şartları'nı henüz kabul etmediyseniz ve Dynamic Links için bir alan ayarlamadıysanız istendiğinde bu işlemleri yapın.
Zaten bir Dynamic Links alanınız varsa bunu not edin. Programatik olarak Dynamic Links oluştururken bir Dynamic Links alanı sağlamanız gerekir.

- Önerilen: Derin bağlantılarınızda ve yedek bağlantılarınızda izin verilen URL kalıplarını belirtin. Böylece, yetkisiz tarafların alanınızdan kontrolünüz dışındaki sitelere yönlendirme yapan Dynamic Links oluşturmasını engellersiniz. Belirli URL kalıplarına izin verme başlıklı makaleyi inceleyin.
Firebase konsolunu kullanma
Test amacıyla veya pazarlama ekibinizin sosyal medya gönderisi gibi bir yerde kullanılabilecek bir bağlantıyı kolayca oluşturması için tek bir Dynamic Link oluşturmak istiyorsanız en basit yöntem, Firebase konsolunu ziyaret etmek ve adım adım formunu takip ederek manuel olarak bir tane oluşturmaktır.
Parametrelerden Dynamic Link oluşturma
Dynamic Link oluşturmak için Builder ile yeni bir DynamicLink nesnesi oluşturun ve Builder yöntemleriyle Dynamic Link parametrelerini belirtin. Ardından buildDynamicLink veya buildShortDynamicLink numaralı telefonu arayın.
Aşağıdaki minimal örnekte, Android'de Android uygulamanızla ve iOS'te com.example.ios uygulamasıyla açılan uzun bir Dynamic Link - https://www.example.com/ oluşturulmaktadır:
Kotlin
val dynamicLink = Firebase.dynamicLinks.dynamicLink { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Open links with this app on Android androidParameters { } // Open links with com.example.ios on iOS iosParameters("com.example.ios") { } } val dynamicLinkUri = dynamicLink.uri
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Open links with this app on Android .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build()) // Open links with com.example.ios on iOS .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build()) .buildDynamicLink(); Uri dynamicLinkUri = dynamicLink.getUri();
Kısa bir Dynamic Link oluşturmak için aynı şekilde bir DynamicLink oluşturun ve ardından buildShortDynamicLink yöntemini çağırın. Kısa bağlantı oluşturmak için ağ çağrısı gerekir. Bu nedenle, buildShortDynamicLink doğrudan bağlantıyı döndürmek yerine bir Task döndürür. Bu sayede, istek tamamlandığında kısa bağlantı kullanılabilir hale gelir. Örneğin:
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Set parameters // ... }.addOnSuccessListener { (shortLink, flowchartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Set parameters // ... .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });
Varsayılan olarak, kısa Dynamic Links, 17 karakterlik bağlantı son ekleriyle oluşturulur. Bu sayede, birinin geçerli bir Dynamic Link tahmin etmesi son derece düşük bir ihtimaldir. Kullanım alanınızda birinin kısa bağlantıyı doğru tahmin etmesinin bir sakıncası yoksa yalnızca benzersiz olacak kadar uzun olan son ekler oluşturmayı tercih edebilirsiniz. Bunu yapmak için buildShortDynamicLink yöntemine ShortDynamicLink.Suffix.SHORT değerini iletebilirsiniz:
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
Dynamic Link parametre
Desteklenen parametrelerden herhangi birini kullanarak Dynamic Links oluşturmak için Dynamic Link Builder API'yi kullanabilirsiniz. Ayrıntılar için API referansına bakın.
Aşağıdaki örnekte, birkaç yaygın parametrenin ayarlandığı bir Dynamic Link oluşturulmaktadır:
Kotlin
val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" androidParameters("com.example.android") { minimumVersion = 125 } iosParameters("com.example.ios") { appStoreId = "123456789" minimumVersion = "1.0.1" } googleAnalyticsParameters { source = "orkut" medium = "social" campaign = "example-promo" } itunesConnectAnalyticsParameters { providerToken = "123456" campaignToken = "example-promo" } socialMetaTagParameters { title = "Example of a Dynamic Link" description = "This link works whether the app is installed or not!" } }
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") .setAndroidParameters( new DynamicLink.AndroidParameters.Builder("com.example.android") .setMinimumVersion(125) .build()) .setIosParameters( new DynamicLink.IosParameters.Builder("com.example.ios") .setAppStoreId("123456789") .setMinimumVersion("1.0.1") .build()) .setGoogleAnalyticsParameters( new DynamicLink.GoogleAnalyticsParameters.Builder() .setSource("orkut") .setMedium("social") .setCampaign("example-promo") .build()) .setItunesConnectAnalyticsParameters( new DynamicLink.ItunesConnectAnalyticsParameters.Builder() .setProviderToken("123456") .setCampaignToken("example-promo") .build()) .setSocialMetaTagParameters( new DynamicLink.SocialMetaTagParameters.Builder() .setTitle("Example of a Dynamic Link") .setDescription("This link works whether the app is installed or not!") .build()) .buildDynamicLink(); // Or buildShortDynamicLink()
Dynamic Link parametrelerini aşağıdaki yöntemlerle ayarlayabilirsiniz:
| DynamicLink parametreleri | |
|---|---|
| setLink |
Uygulamanızın açacağı bağlantı. Uygulamanızın işleyebileceği bir URL belirtin. Bu URL genellikle uygulamaya özgü mantığı (ör. kullanıcıya kupon verme veya karşılama ekranı gösterme) başlatan uygulama içeriği veya yüküdür. Bu bağlantı, düzgün biçimlendirilmiş bir URL olmalı, doğru şekilde URL kodlamalı olmalı, HTTP veya HTTPS kullanmalı ve başka bir Dynamic Link olmamalıdır. |
| setDomainUriPrefix | Firebase konsolunda bulabileceğiniz Dynamic Link URL önekiniz. Dynamic Link alan adı aşağıdaki örneklere benzer:
https://example.com/link https://example.page.link |
| AndroidParameters | |
|---|---|
| setFallbackUrl | Uygulama yüklü olmadığında açılacak bağlantı. Uygulama yüklü olmadığında, uygulamanızı Play Store'dan yüklemek dışında bir işlem yapmak (ör. içeriğin mobil web sürümünü açmak veya uygulamanız için bir tanıtım sayfası göstermek) için bunu belirtin. |
| setMinimumVersion | Bağlantıyı açabilen uygulamanızın minimum sürümünün versionCode. Yüklü uygulama eski bir sürümse kullanıcı, uygulamayı yeni sürüme geçirmek için Play Store'a yönlendirilir. |
| IosParameters | |
|---|---|
| setAppStoreId | Uygulamanız yüklü olmadığında kullanıcıları uygulama mağazasına yönlendirmek için kullanılan uygulama mağazası kimliği |
| setFallbackUrl | Uygulama yüklü olmadığında açılacak bağlantı. Uygulama yüklü olmadığında, uygulamanızı uygulama mağazasından yüklemek dışında bir işlem yapmak (ör. içeriğin mobil web sürümünü açmak veya uygulamanız için bir tanıtım sayfası göstermek) için bunu belirtin. |
| setCustomScheme | Uygulamanızın paket kimliğinden farklı bir şekilde tanımlanmışsa uygulamanızın özel URL şeması |
| setIpadFallbackUrl | Uygulama yüklü olmadığında iPad'lerde açılacak bağlantı. Uygulama yüklü olmadığında, uygulamanızı uygulama mağazasından yüklemek dışında bir işlem yapmak (ör. içeriğin web sürümünü açmak veya uygulamanızın tanıtım sayfasını göstermek) için bunu belirtin. |
| setIpadBundleId | Bağlantıyı açmak için iPad'lerde kullanılacak iOS uygulamasının paket kimliği. Uygulama, Firebase Console'un Genel Bakış sayfasından projenize bağlanmalıdır. |
| setMinimumVersion | Uygulamanızın bağlantıyı açabilen minimum sürümünün sürüm numarası. Bu işaret, açıldığında uygulamanıza iletilir ve uygulamanız bu işaretle ne yapacağına karar vermelidir. |
| NavigationInfoParameters | |
|---|---|
| setForcedRedirectEnabled | "1" olarak ayarlanırsa Dynamic Link açıldığında uygulama önizleme sayfası atlanır ve uygulama veya mağazaya yönlendirilir. Uygulama önizleme sayfası (varsayılan olarak etkindir), kullanıcılar uygulamalarda Dynamic Links açtığında onları en uygun hedefe daha güvenilir bir şekilde gönderebilir. Ancak bir Dynamic Link bağlantısının yalnızca bu sayfa olmadan Dynamic Links bağlantısını güvenilir bir şekilde açabilen uygulamalarda açılmasını bekliyorsanız bu parametreyle sayfayı devre dışı bırakabilirsiniz. Bu parametre, Dynamic Link davranışını yalnızca iOS'te etkiler. |
| SocialMetaTagParameters | |
|---|---|
| setTitle | Dynamic Link bir sosyal medya gönderisinde paylaşıldığında kullanılacak başlık. |
| setDescription | Dynamic Link bir sosyal medya gönderisinde paylaşıldığında kullanılacak açıklama. |
| setImageUrl | Bu bağlantıyla ilgili bir resmin URL'si. Resim en az 300x200 piksel ve 300 KB'tan küçük olmalıdır. |
| GoogleAnalyticsParameters | |
|---|---|
| setSource setMedium setCampaign setTerm setContent |
Google Play analiz parametreleri. Bu parametreler (utm_source, utm_medium, utm_campaign, utm_term, utm_content) Play Store'a iletilir ve bağlantı yüküne eklenir.
|
| ItunesConnectAnalyticsParameters | |
|---|---|
| setProviderToken setAffiliateToken setCampaignToken |
iTunes Connect analiz parametreleri. Bu parametreler (pt,
at, ct) uygulama mağazasına iletilir. |
Uzun bir Dynamic Link kısaltın
Uzun bir Dynamic Link kısaltmak için diğer oluşturucu yöntemleriyle parametreleri ayarlamak yerine setLongLink kullanarak Dynamic Link URL'sini belirtin:
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { longLink = Uri.parse( "https://example.page.link/?link=" + "https://www.example.com/&apn=com.example.android&ibn=com.example.ios", ) }.addOnSuccessListener { (shortLink, flowChartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios")) .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });