Firebase Dynamic Links Builder API ile kısa veya uzun Dynamic Links oluşturabilirsiniz. Bu API, uzun Dynamic Link parametrelerini veya Dynamic Link parametrelerini içeren bir nesneyi kabul eder ve aşağıdaki örneklere benzer URL'leri döndürür:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Firebase ve Dynamic Links SDK'sını ayarlama
Android uygulamanızda Dynamic Links oluşturmadan önce Firebase SDK'sını eklemeniz gerekir. Uygulamanız Dynamic Links verilerini 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. App Links kullanıyorsanız SHA-256 anahtarınızı da belirtin.
-
Modül (uygulama düzeyi) Gradle dosyanıza (genellikle
<project>/<app-module>/build.gradle.kts
veya<project>/<app-module>/build.gradle
) Android için Dynamic Links kitaplığının bağımlılığını 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'i 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:33.5.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 kullanıldığında, uygulamanız her zaman Firebase Android kitaplıklarının uyumlu sürümlerini kullanır.
(Alternatif) BoM
Firebase BoM kullanmamayı seçerseniz her Firebase kitaplık sürümünü 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, tüm sürümlerin uyumlu olmasını sağlar.
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:22.1.2' }
- Firebase konsolunda Dynamic Links bölümünü açın.
-
Henüz hizmet şartlarını kabul etmediyseniz ve Dynamic Links için bir alan adı ayarlamadıysanız istendiğinde bunu yapın.
Zaten bir Dynamic Links alanınız varsa bunu not edin. Dynamic Links'ü programatik olarak 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 etmediğiniz sitelere yönlendiren Dynamic Links oluşturmasını önlersiniz. Belirli URL kalıplarına izin verme bölümüne bakın.
Firebase konsolunu kullan
Test amacıyla veya pazarlama ekibinizin sosyal medya yayını 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 edip adım adım açıklamalı formu takip ederek manuel olarak bir bağlantı oluşturmaktır.
Parametrelerden Dynamic Link oluşturun
Bir Dynamic Link oluşturmak için Builder yöntemleriyle Dynamic Link parametrelerini belirterek, Builder ile yeni bir DynamicLink
nesnesi oluşturun. Ardından, buildDynamicLink
veya buildShortDynamicLink
numaralı telefonu arayın.
Aşağıdaki minimum örnek, Android'de Android uygulamanız ve iOS'te com.example.ios
uygulamasıyla açılan uzun bir Dynamic Link - https://www.example.com/
oluşturur:
Kotlin+KTX
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
'yi çağırın. Kısa bir bağlantı oluşturmak için bir ağ çağrısı gerekir. Bu nedenle buildShortDynamicLink
, bağlantıyı doğrudan döndürmek yerine, istek tamamlandığında kısa bağlantıyı kullanılabilir hale getiren bir Task
döndürür. Örneğin:
Kotlin+KTX
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, geçerli bir Dynamic Link'ın tahmin edilmesini son derece zorlaştıran 17 karakterlik bağlantı son ekleriyle oluşturulur. Kullanım alanınızda, bir kişinin kısa bağlantıyı başarılı bir şekilde tahmin etmesinin bir zararı yoksa benzersiz olması gereken uzunlukta sonekler oluşturmayı tercih edebilirsiniz. Bunu buildShortDynamicLink
yöntemine ShortDynamicLink.Suffix.SHORT
ileterek yapabilirsiniz:
Kotlin+KTX
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 biriyle 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 parametre grubu içeren bir Dynamic Link oluşturulmaktadır:
Kotlin+KTX
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 uygulamanın içeriği ya da yükü olur. Bu bağlantı iyi biçimlendirilmiş bir URL olmalı, doğru şekilde URL kodlamalı olmalı, HTTP ya da HTTPS kullanmalı ve başka bir Dinamik Bağlantı olmamalıdır. |
setDomainUriPrefix | Firebase konsolunda bulabileceğiniz Dynamic Link URL ön ekiniz. Dynamic Link alanı aşağıdaki örneklere benzer:
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | Uygulama yüklenmediğinde açılacak bağlantı. Uygulama yüklü değilken Play Store'dan uygulamanızı yüklemek dışında bir işlem yapmak (ör. içeriğin mobil web sürümünü açmak veya uygulamanızın tanıtım sayfasını görüntülemek) için bunu belirtin. |
MinimumSürüm ayarla | Uygulamanızın bağlantıyı açabilen minimum sürümünün versionCode . Yüklü uygulama eski bir sürümse kullanıcı, uygulamayı yükseltmek için Play Store'a yönlendirilir. |
IosParameters | |
---|---|
setAppStoreId | Uygulama yüklenmemişken kullanıcıları App Store'a yönlendirmek için kullanılan uygulamanızın App Store kimliği |
setFallbackUrl | Uygulama yüklü değilken açılacak bağlantı. Uygulamanız yüklü değilken uygulamanızı App Store'dan yüklemek dışında bir işlem yapmak için (ör. içeriğin mobil web sürümünü açmak veya uygulamanızla ilgili tanıtım sayfası göstermek) 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ü değilken iPad'lerde açılacak bağlantı. Uygulama yüklü değilken uygulamanızı App Store'dan 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örüntülemek) için bu seçeneği belirtin. |
setIpadBundleId | Bağlantıyı açmak için iPad'lerde kullanılacak iOS uygulamasının paket kimliği. Uygulama, Firebase konsolunun Genel Bakış sayfasından projenize bağlı olmalıdır. |
setMinimumVersion | Uygulamanızın bağlantıyı açabilen minimum sürümünün sürüm numarası. Bu işaret, uygulamanız açıldığında uygulamanıza iletilir ve uygulamanızın bu işaretle ne yapacağını belirlemesi gerekir. |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | Politika "1" olarak ayarlanırsa Dynamic Link açıldığında uygulama önizleme sayfasını atlayıp bunun yerine uygulamaya veya mağazaya yönlendirin. 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 Dynamic Link'ün yalnızca bu sayfa olmadan Dynamic Links'ü güvenilir bir şekilde açabilen uygulamalarda açılmasını bekliyorsanız bu parametreyle sayfayı devre dışı bırakabilirsiniz. Bu parametre, Dynamic Link öğesinin davranışını yalnızca iOS'te etkiler. |
SocialMetaTagParameters | |
---|---|
setTitle | Dynamic Link bir sosyal medya yayınında paylaşıldığında kullanılacak başlık. |
setDescription | Dynamic Link bir sosyal medya yayınında paylaşıldığında kullanılacak açıklama. |
kümeResim URL'si | Bu bağlantıyla ilgili bir resmin URL'si. Resim boyutu en az 300x200 piksel, en fazla 300 KB boyutunda olmalıdır. |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
Google Play Analytics parametreleri. Bu parametreler (utm_source , utm_medium ,
utm_campaign , utm_term , utm_content ),
Play Store'a aktarılır ve bağlantı yüküne eklenir.
|
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
iTunes Connect analiz parametreleri. Bu parametreler (pt , at , ct ) App Store'a iletilir. |
Uzun bir Dynamic Link öğesini kısaltın
Uzun bir Dynamic Link'yi kısaltmak için diğer oluşturucu yöntemleriyle parametre ayarlamak yerine setLongLink
kullanarak Dynamic Link'nin URL'sini belirtin:
Kotlin+KTX
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 // ... } } });