Firebase Dynamic Links — bu, istifadəçini tətbiqin quraşdırılıb-quraşdırılmamasından asılı olmayaraq tətbiqin istənilən yerinə yönləndirən ağıllı linklər yaratmaq üçün Google xidmətidir. Firebase Documentation-a görə, Dynamic Links tətbiq olmadıqda istifadəçini avtomatik olaraq App Store və ya Google Play-ə yönləndirir və quraşdırmadan sonra keçid kontekstini bərpa edir. Firebase-in Smart-linkləri quraşdırılmamış tətbiqlərlə işləməyən URL Scheme problemini həll edir.
Başlıca məqamlar
Firebase Dynamic Links — bu, iOS və Android üçün mobil tətbiqlər üçün vahid universal linklər yaradan Google-dan bulud xidmətidir. Dinamik link tətbiq daxilindəki məzmun üçün dərin link ehtiva edir, lakin adi HTTPS linki kimi davranır: tətbiq quraşdırılıbsa, onu birbaşa açır, yoxsa — tətbiq mağazasına yönləndirir.
Adi URL Scheme-lərdən fərqli olaraq, Dynamic Links deferred deep link texnologiyası sayəsində quraşdırılmamış tətbiqlərlə işləyə bilir. İstifadəçi link vasitəsilə keçdikdən sonra tətbiqi quraşdırdıqda, Firebase keçid parametrlərini saxlayır və ilk işə salınmada ötürür. Bu, referal proqramları, marketinq kampaniyaları və dəvətlər üçün imkanlar açır.
URL Scheme quraşdırılmış tətbiq tələb edir və standart fallback mexanizminə malik deyil. Firebase Dynamic Links bu problemi cihazda tətbiqin quraşdırma statusunu müyyənləşdirən və istifadəçini düzgün yönləndirən aralıq Firebase veb xidməti vasitəsilə həll edir. Bir link hər iki platformada eyni şəkildə işləyir.
Firebase Dynamic Link Firebase Console-da qeydiyyatdan keçirilən yourcode.page.link formasında domendən istifadə edir. İstifadəçi belə bir link vasitəsilə keçdikdə, Firebase cihaz növünü və tətbiqin quraşdırma statusunu müyyənləşdirir. iOS üçün Universal Links mexanizmi, Android üçün isə Digital Asset Links vasitəsilə avtomatik yoxlama ilə App Links istifadə olunur.
Emal prosesi bir neçə ardıcıl mərhələni əhatə edir: link vasitəsilə keçid zamanı brauzer Firebase serverinə GET sorğusu göndərir, server platformanı müyyənləşdirir və cihazda tətbiqin olub-olmadığını yoxlayır. Tətbiq quraşdırılıbsa — hədəf ekranı açmaq üçün parametrlərlə Universal Link və ya Intent-ə yönləndirmə yaradılır. Tətbiq quraşdırılmayıbsa — yükləmə üçün App Store və ya Google Play-ə yönləndirmə aparılır.
Tətbiq linki Firebase SDK-nın başladılması mərhələsində alır. getDynamicLink() metodu keçid haqqında məlumatlarla PendingResult qaytarır. Uğurla alındıqdan sonra linkdən deep link parametrləri, analitika üçün UTM etiketləri və linkin yaradılması zamanı ötürülən ixtiyari məlumatlar çıxarılır.
Firebase Console Dynamic Links yaratmaq üçün vizual interfeys təqdim edir. Tərtibatçı dərin linki (deep link URL), kampaniyanın adını, iOS və Android üçün ayrıca parametrləri və analitika parametrlərini göstərir. Yaradıldıqdan sonra Firebase https://yourcode.page.link/abc123 formasında qısa link yaradır ki, bu da reklam materiallarında, e-poçt göndərişlərində və sosial şəbəkələrdə istifadə oluna bilər.
Proqram vasitəsilə Dynamic Links yaratmaq üçün Firebase REST API və ya müştəri SDK-sı istifadə olunur. REST API sosial şəbəkələr üçün link və keçid analitikası daxil olmaqla fərdi parametrlərlə marketinq kampaniyaları üçün kütləvi link yaratmağa imkan verir. API vasitəsilə linklər yaradarkən socialMetaTagInfo parametrlərini düzgün göstərmək vacibdir — onlar linkin mesajlaşma tətbiqlərində və sosial şəbəkələrdə ön izlemə kartı ilə necə göstəriləcəyini müyyənləşdirir.
| Parametr | Təyinat | Məcburilik |
|---|---|---|
| Deep Link URL | Tətbiq məzmununa daxili link | Bəli |
| iOS Bundle ID | App Store-da tətbiqin identifikatoru | iOS üçün |
| Android Package Name | Google Play-də paket adı | Android üçün |
| Fallback URL | Tətbiq olmadıqda veb səhifə | Xeyr |
| UTM etiketləri | Google Analytics üçün parametrlər | Xeyr |
iOS-da Firebase Dynamic Links ilə işləmək üçün CocoaPods və ya Swift Package Manager vasitəsilə Firebase SDK-nı qoşmaq, Info.plist-i GOOGLE_APP_ID ilə konfiqurasiya etmək və layihənin Associated Domains bölməsində Dynamic Links domenini qeydiyyatdan keçirmək tələb olunur. Bundan sonra tətbiq Firebase tərəfindən yaradılan Universal Links-i avtomatik emal edir.
Xcode-da applinks:yourcode.page.link formasında Associated Domains imkanını əlavə etmək lazımdır. Firebase SDK Universal Links-in işlənməsi üçün application(_:continue:restorationHandler:) metodundan istifadə edir, buna görə AppDelegate ilə əlavə inteqrasiya tələb olunmur — Firebase avtomatik olaraq User Activity-dən Dynamic Link parametrlərini çıxarır.
Firebase-in düzgün başladılması və Dynamic Links handlerinin qeydiyyatı üçün Info.plist konfiqurasiyası nümunəsi. FIROptions açarı GoogleService-Info.plist layihə identifikatorunu ehtiva etməlidir.
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
<string>https://yourcode.page.link</string>
</array>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
AppDelegate proksi söndürülübsə, handleUniversalLink(_:) metodunu əl ilə çağırmaq və continue NSUserActivity-dən User Activity ötürmək lazımdır. Firebase SDK avtomatik olaraq link parametrlərini çıxarır və completion handler vasitəsilə DynamicLink qaytarır.
Android-də Firebase Dynamic Links inteqrasiyası build.gradle-də asılılıqların və Firebase Console-dan google-services.json faylının əlavə edilməsi ilə başlayır. Dynamic Links domeni Firebase Console-da qeydiyyatdan keçirilir, bundan sonra bu domenli bütün linklər VIEW aksiyası ilə Intent Filter vasitəsilə Android tətbiqi tərəfindən avtomatik tanınır. Düzgün işləmək üçün kök və modul build.gradle-ə Google Services plagini əlavə etmək və Gradle sinxronizasiyasını yerinə yetirmək lazımdır.
Android-də linklərin düzgün emalı üçün daxil olan linkləri qəbul etməli olan Activity-ə Dynamic Links domeni üçün Intent Filter əlavə etmək lazımdır. Filter https sxemi, Dynamic Links domeninizin hostu və standart yolu ehtiva etməlidir.
AndroidManifest.xml-də yourcode.page.link domenində Dynamic Links qəbul etmək üçün Intent Filter nümunəsi.
<activity android:name=".MainActivity"
android:launchMode="singleTask">
<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="yourcode.page.link" />
</intent-filter>
</activity>
Dynamic Links qəbul edən Activity üçün launchMode singleTask təyin etmək vacibdir. Bu, link vasitəsilə təkrar keçid zamanı yeni Activity nömunəsinin yaradılmasının qarşısını alır və bütün daxil olan deep linklərin bir nömunədə düzgün emal edilməsinə imkan verir.
Android üçün Firebase SDK link haqqında məlumatlarla PendingTask obyekti qaytaran FirebaseDynamicLinks.getInstance().getDynamicLink(intent) metodunu təqdim edir. DynamicLink obyektindən dərin URI, UTM parametrləri və keçid vaxtı damğası çıxarılır. Emalın Activity-nin onCreate() və onNewIntent() metodlarında aparılması tövsiyə olunur.
Emal zamanı Dynamic Link-in həm soyuq başlatma (cold start) zamanı, həm də artıq işləyən tətbiqə başqa tətbiqdən keçid zamanı alına biləcəyini nəzərə almaq vacibdir. İkinci halda onNewIntent()-ə yenidən tətbiq etmək və Dynamic Link yoxlamasını təkrarlamaq lazımdır.
MainActivity-də Firebase Dynamic Link-in alınması və emalı nümunəsi. Kod həm cold start, həm də başqa tətbiqdən keçidi emal edir.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
checkDynamicLink(intent)
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
checkDynamicLink(intent)
}
private fun checkDynamicLink(intent: Intent) {
FirebaseDynamicLinks.getInstance()
.getDynamicLink(intent)
.addOnSuccessListener link ->
val deepLink = link?.link.toString()
handleDeepLink(deepLink)
}
}
}
addOnSuccessListener metodu DynamicLink qaytarır, ondan hədəf link link?.link vasitəsilə çıxarılır. Listener null qaytarırsa, Intent-də Dynamic Link yoxdur — bu, daxil olan link olmadan normal tətbiq başlatmasıdır. Həmçinin campaign, medium, source və content daxil olmaqla keçid analitikası üçün UTM etiketləri mövcuddur ki, bunlar hər bir marketinq kanalının effektivliyini ətraflı qiymətləndirmək üçün Google Analytics-ə ötürülə bilər.
Tez-tez verilən suallar
Firebase Dynamic Links deferred deep link dəstəkləyir — link tətbiq quraşdırılmasa belə konteksti qoruyur. Quraşdırmadan sonra tətbiq bütün keçid parametrlərini alır ki, bu da adi URL Scheme və ya Universal Links ilə mümkün deyil.
Firebase Dynamic Links pulsuz Firebase Spark tarif planına daxildir. Yaradılan linklərin sayı məhdud deyil. Lakin 2024-cü ildən etibarən Google yeni infrastruktura keçidi elan edib, buna görə şərtlər dəyişə bilər.
Dynamic Links mobil tətbiqlər üçün nəzərdə tutulub. Masaüstü brauzerdən keçid zamanı link fallback URL açacaq. Veb tətbiqlər üçün adi linklərdən və ya öz yönləndirmə məntiqinizdən istifadə edin.
Firebase Console davranışı öncədən görmək üçün Test Dynamic Link düyməsini təqdim edir. Bütün keçid ssenarilərini lokal test etmək üçün quraşdırılmış Firebase SDK ilə Android emulyatoru və ya iOS simulatorundan da istifadə edə bilərsiniz.
Firebase Dynamic Link-in qısa linki page.link domenindən və təxminən 7 simvoldan ibarət təsadüfi şəkilçidən ibarətdir. Ümumi uzunluq təxminən 30 simvoldur. Daxildəki deep link istənilən uzunluqda ola bilər, lakin uyğunluq üçün onu 2 KB ilə məhdudlaşdırmaq tövsiyə olunur.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun