Firebase Dynamic Links: τι είναι, πώς λειτουργεί και χρησιμοποιείται στην ανάπτυξη

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-05-14 Χρόνος ανάγνωσης: 8 λεπ

Το Firebase Dynamic Links είναι μια υπηρεσία της Google για τη δημιουργία έμπνων συνδέσμων που κατευθύνουν τον χρήστη στο σωστό σημείο της εφαρμογής, ανεξαρτήτως από το αν η εφαρμογή είναι εγκατεστημένη ή όχι. Σύμφωνα με την Firebase Documentation, τα Dynamic Links αυτόματα ανακατευθύνουν τον χρήστη στο App Store ή στο Google Play όταν η εφαρμογή λείπει και αποκαθιστούν το περιεχόμενο της μετάβασης μετά την εγκατάσταση. Τα Smart-link της Firebase λύνουν το πρόβλημα URL Scheme, το οποίο δεν λειτουργεί με μη εγκατεστημένες εφαρμογές.

Βασικά σημεία

  • Firebase Dynamic Links — υπηρεσία Google για τη δημιουργία καθολικών συνδέσμων που λειτουργούν σε iOS και Android με υποστήριξη deferred deep link.
  • Deferred — το κύριο πλεονέκτημα: ο σύνδεσμος διατηρεί το περιεχόμενο μετάβασης ακόμη κι αν η εφαρμογή δεν είναι εγκατεστημένη, και το αποκαθιστά μετά την εγκατάσταση.
  • Αναλυτική — το Firebase παρακολουθεί αυτόματα τις μεταβάσεις μέσω Dynamic Links και παρέχει δεδομένα στο Firebase Analytics και στο Google Analytics.
  • Πλατφόρμες — τα Dynamic Links λειτουργούν σε iOS (μέσω Universal Links) και Android (μέσω App Links) με μία καθολική σύνδεση και για τις δύο πλατφόρμες.
  • Δημιουργία — οι σύνδεσμοι δημιουργούνται μέσω Firebase Console, REST API ή SDK στον πελάτη με ρύθμιση συμπεριφοράς για κάθε σενάριο.

Το Firebase Dynamic Links είναι μια υπηρεσία cloud από την Google που δημιουργεί ενιαίες καθολικές συνδέσεις για εφαρμογές κινητών σε iOS και Android. Ο δυναμικός σύνδεσμος περιέχει έναν βαθύ σύνδεσμο προς περιεχόμενο εντός της εφαρμογής, αλλά συμπεριφέρεται σαν μια συνηθισμένη σύνδεση HTTPS: εάν η εφαρμογή είναι εγκατεστημένη, την ανοίγει απευθείας, αν όχι — ανακατευθύνει στο κατάστημα εφαρμογών.

Σε αντίθεση με τα συνηθισμένα URL Scheme, τα Dynamic Links μπορούν να λειτουργήσουν με μη εγκατεστημένες εφαρμογές χάρη στην τεχνολογία deferred deep link. Όταν ο χρήστης εγκαθιστά την εφαρμογή μετά το κλικ στον σύνδεσμο, το Firebase αποθηκεύει τις παραμέτρους μετάβασης και τις μεταβίζει στην πρώτη εκκίνηση. Αυτό ανοίγει δυνατότητες για προγράμματα παραπομπής, καμπάντιες μάρκετινγκ και προσκλήσεις.

Διαφορά από τα συνηθισμένα URL Scheme

Τα URL Scheme απαιτούν εγκατεστημένη εφαρμογή και δεν έχουν τυπικό μηχανισμό fallback. Το Firebase Dynamic Links λύνει αυτό το πρόβλημα μέσω μιας ενδιάμεσης υπηρεσίας Firebase που καθορίζει την κατάσταση εγκατάστασης της εφαρμογής στη συσκευή και διατοχετεύει σωστά τον χρήστη. Ένας σύνδεσμος λειτουργεί είτε σε αμφότερες τις πλατφόρμες.

Το Firebase Dynamic Link χρησιμοποιεί ένα domain της μορφής yourcode.page.link, το οποίο εγγράφεται στο Firebase Console. Όταν ένας χρήστης περιηγείται μέσω ένος τέτοιου συνδέσμου, το Firebase καθορίζει τον τύπο συσκευής και την κατάσταση εγκατάστασης της εφαρμογής. Για iOS χρησιμοποιείται ο μηχανισμός Universal Links, για Android — App Links με αυτόματη επαλήθευση μέσω Digital Asset Links.

Η διαδικασία επεξεργασίας περιλαμβάνει αρκετά διαδοχικά στάδια: κάθως κάνει κλικ στον σύνδεσμο, ο φυλλομετρητής στέλνει ένα αίτημα GET στον εξυπηρετητή Firebase, ο εξυπηρετητής καθορίζει την πλατφόρμα και ελέγχει την παρουσία της εφαρμογής στη συσκευή. Εάν η εφαρμογή είναι εγκατεστημένη — δημιουργείται ανακατεύθυνση σε Universal Link ή Intent με παραμέτρους για το άνοιγμα της οθόνης-στόχου. Εάν η εφαρμογή δεν είναι εγκατεστημένη — ανακατεύθυνση στο App Store ή Google Play για λήψη.

Κύκλος ζωής Dynamic Link

Η εφαρμογή λαμβάνει τον σύνδεσμο κατά τη φάση αρχικοποίησης του Firebase SDK. Η μέθοδος getDynamicLink() επιστρέφει ένα PendingResult με δεδομένα σχετικά με τη μετάβαση. Μετά την επιτυχή λήψη, από τον σύνδεσμο εξάγονται οι παράμετροι deep link, ετικέτες UTM για αναλυτική και τυχαία δεδομένα που μεταδόθηκαν κατά τη δημιουργία του συνδέσμου.

Το Firebase Console παρέχει μια οπτική διεπαφή για τη δημιουργία Dynamic Links. Ο αναπτυκτής καθορίζει τον βαθύ σύνδεσμο (deep link URL), το όνομα της καμπάνιας, ρυθμίσεις για iOS και Android ξεχωριστά, καθώς και παραμέτρους αναλυτικής. Μετά τη δημιουργία, το Firebase δημιουργεί έναν σύντομο σύνδεσμο της μορφής https://yourcode.page.link/abc123, ο οποίος μπορεί να χρησιμοποιηθεί σε διαφημιστικό υλικό, καμπάντιες email και κοινωνικά δίκτυα.

Για τον προγραμματισμό δημιουργίας Dynamic Links χρησιμοποιείται το Firebase REST API ή το SDK του πελάτη. Το REST API επιτρέπει τη μαζική δημιουργία συνδέσμων για καμπάντιες μάρκετινγκ με προσαρμοσμένες παραμέτρους, συμπεριλαμβανομένου ενός συνδέσμου για κοινωνικά δίκτυα και ασύγχρονης αναλυτικής μεταβάσεων. Κατά τη δημιουργία συνδέσμων μέσω API, είναι σημαντικό να καθορίζονται σωστά οι παράμετροι socialMetaTagInfo — αυτοί καθορίζουν πώς εμφανίζεται ο σύνδεσμος κατά την κοινοποίηση σε εφαρμογές μηνυμάτων και κοινωνικά δίκτυα με κάρτα προεπισκόπησης.

Παράμετροι Dynamic Link

ΠαράμετροςΣκοπόςΥποχρεωτικός
Deep Link URLΕσωτερικός σύνδεσμος σε περιεχόμενο εφαρμογήςΝαι
iOS Bundle IDΑναγνωριστικό εφαρμογής στο App StoreΓια iOS
Android Package NameΌνομα πακέτου στο Google PlayΓια Android
Fallback URLΙστοσελίδα όταν η εφαρμογή απουσιάζειΌχι
Ετικέτες UTMΠαράμετροι για Google AnalyticsΌχι

Για την εργασία με Firebase Dynamic Links σε iOS απαιτείται σύνδεση του Firebase SDK μέσω CocoaPods ή Swift Package Manager, ρύθμιση του Info.plist με GOOGLE_APP_ID και εγγραφή του domain Dynamic Links στα Associated Domains του έργου. Μετά από αυτό, η εφαρμογή επεξεργάζεται αυτόματα τα Universal Links που δημιουργεί το Firebase.

Στο Xcode πρέπει να προστεθεί η δυνατότητα Associated Domains με μια εγγραφή της μορφής applinks:yourcode.page.link. Το Firebase SDK χρησιμοποιεί τη μέθοδο application(_:continue:restorationHandler:) για την επεξεργασία Universal Links, επομένως δεν απαιτείται πρόσθετη ενσωμάτωση με το AppDelegate — το Firebase εξάγει αυτόματα τις παραμέτρους Dynamic Link από την User Activity.

Ρύθμιση στο Xcode

Παράδειγμα ρύθμισης Info.plist για σωστή αρχικοποίηση του Firebase και εγγραφή του handler Dynamic Links. Το κλειδί FIROptions πρέπει να περιέχει το αναγνωριστικό του έργου GoogleService-Info.plist.

xml
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
    <string>https://yourcode.page.link</string>
</array>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>

Εάν το AppDelegate proxy είναι απενεργοποιημένο, πρέπει να κληθεί με μανυαλικό τρόπο η μέθοδος handleUniversalLink(_:) και να μεταδοθεί η User Activity από το continue NSUserActivity. Το Firebase SDK εξάγει αυτόματα τις παραμέτρους του συνδέσμου και επιστρέφει το DynamicLink μέσω completion handler.

Στο Android, η ενσωμάτωση Firebase Dynamic Links ξεκινά με την προσθήκη εξαρτήσεων στο build.gradle και του αρχείου google-services.json από το Firebase Console. Το domain Dynamic Links εγγράφεται στο Firebase Console, μετά από το οποίο όλοι οι σύνδεσμοι με αυτό το domain αναγνωρίζονται αυτόματα από την εφαρμογή Android μέσω Intent Filter με ενέργεια VIEW. Για σωστή λειτουργία, πρέπει επίσης να προστεθεί το πρόσθετο Google Services στο build.gradle ρίζας και μονάδας και να εκτελεστεί συγχρονισμός Gradle.

Για σωστή επεξεργασία συνδέσμων σε Android, πρέπει να προστεθεί ένα Intent Filter για το domain Dynamic Links στην Activity που πρέπει να λαμβάνει τις εισερχόμενες συνδέσεις. Το φίλτρο πρέπει να περιέχει το σχήμα https, το host του domain Dynamic Links σας και την προκαθορισμένη διαδρομή.

Intent Filter για Dynamic Links

Παράδειγμα Intent Filter στο AndroidManifest.xml για λήψη Dynamic Links στο domain yourcode.page.link.

xml
<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>

Είναι σημαντικό να οριστεί το launchMode σε singleTask για την Activity που λαμβάνει Dynamic Links. Αυτό αποτρέπει τη δημιουργία νέας εγκαρτείας Activity κατά την επαναλημμενη περιήγηση μέσω του συνδέσμου και επιτρέπει τη σωστή επεξεργασία όλων των εισερχόμενων deep link σε μία εγκαρτεία.

Το Firebase SDK για Android παρέχει τη μέθοδο FirebaseDynamicLinks.getInstance().getDynamicLink(intent), η οποία επιστρέφει ένα αντικείμενο PendingTask με δεδομένα σχετικά με τον σύνδεσμο. Από το αντικείμενο DynamicLink εξάγεται το βαθύ URI, οι παράμετροι UTM και η χρονοσφραγίδα μετάβασης. Η επεξεργασία συνιστάται να γίνεται στις μεθόδους onCreate() και onNewIntent() της Activity.

Κατά την επεξεργασία, είναι σημαντικό να λαμβάνεται υπόψη ότι το Dynamic Link μπορεί να ληφθεί τόσο κατά την εκκίνηση της εφαρμογής από ψυχρή κατάσταση (cold start), όσο και κατά τη μετάβαση από άλλη εφαρμογή σε μία ήδη εκτελούμενη εφαρμογή. Για τη δεύτερη περίπτωση, πρέπει να γίνει παρακαμπή της onNewIntent() και να κληθεί ξανά ο έλεγχος Dynamic Link.

Επεξεργασία σε κώδικα Kotlin

Παράδειγμα λήψης και επεξεργασίας Firebase DynamicLink στην MainActivity. Ο κώδικας χειρίζεται τόσο το cold start όσο και την μετάβαση από άλλη εφαρμογή.

kotlin
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 επιστρέφει το DynamicLink από το οποίο εξάγεται ο σύνδεσμος-στόχος μέσω link?.link. Εάν ο listener επιστρέψει null, αυτό σημαίνει ότι το Intent δεν περιέχει Dynamic Link — αυτή είναι κανονική εκκίνηση της εφαρμογής χωρίς εισερχόμενο σύνδεσμο. Επίσης, διατίθενται ετικέτες UTM για την αναλυτική μεταβάσεων, συμπεριλαμβανομένων των campaign, medium, source και content, τα οποία μπορούν να μεταδοθούν στο Google Analytics για λεπτομερή αξιολόγηση της αποτελεσματικότητας κάθε καναλιού μάρκετινγκ.

Συχνές Ερωτήσεις

Σε τι διαφέρει το Firebase Dynamic Links από ένα συνηθισμένο deep link;

Το Firebase Dynamic Links υποστηρίζει deferred deep link — ο σύνδεσμος διατηρεί το περιεχόμενο ακόμη κι αν η εφαρμογή δεν είναι εγκατεστημένη. Μετά την εγκατάσταση, η εφαρμογή λαμβάνει όλες τις παραμέτρους μετάβασης, κάτι που είναι αδύνατο με τα συνηθισμένα URL Scheme ή Universal Links.

Χρειάζεται να πληρώσω για το Firebase Dynamic Links;

Τα Firebase Dynamic Links περιλαμβάνονται στο δωρεάν πακέτο Firebase Spark. Δεν υπάρχει όριο στον αριθμό συνδέσμων που μπορούν να δημιουργηθούν. Ωστόσο, από το 2024 η Google ανήγγειλε μετάβαση σε νέα υποδομή, επομένως οι όροι μπορεί να αλλάξουν.

Μπορώ να χρησιμοποιήσω Dynamic Links σε εφαρμογή web;

Τα Dynamic Links προορίζονται για εφαρμογές κινητών. Κατά την πρόσβαση από προγραμμα περιήγησης σε επιτραπέζα, ο σύνδεσμος θα ανοίξει το fallback URL. Για web εφαρμογές, χρησιμοποιήστε συνηθισμένες συνδέσεις ή τη δική σας λογική ανακατεύθυνσης.

Πώς δοκιμάζω τα Dynamic Links κατά τη φάση ανάπτυξης;

Το Firebase Console παρέχει το κουμπί Test Dynamic Link για προεπισκόπηση της συμπεριφοράς. Μπορείτε επίσης να χρησιμοποιήσετε Android emulator ή iOS simulator με εγκατεστημένο Firebase SDK για τοπική δοκιμή όλων των σεναρίων μετάβασης.

Πόσους χαρακτήρες μπορεί να περιέχει ένα Dynamic Link;

Ο σύντομος σύνδεσμος Firebase Dynamic Link αποτελείται από το domain page.link και ένα τυχαίο επίθεμα μήκους περίπου 7 χαρακτήρων. Το συνολικό μήκος είναι περίπου 30 χαρακτήρες. Το deep link εσωτερικά μπορεί να έχει οποιοδήποτε μήκος, αλλά συνιστάται να περιορίζεται σε 2 KB για συμβατότητα.

Συμπεράσματα

  • Firebase Dynamic Links — ενιαίες καθολικές συνδέσεις από την Google για iOS και Android με υποστήριξη deferred deep link.
  • Αρχή λειτουργίας — ο σύνδεσμος διέρχεται από τον εξυπηρετητή Firebase, ο οποίος καθορίζει τη συσκευή και την κατάσταση εγκατάστασης της εφαρμογής για σωστή διατοχετεύση.
  • Deferred — το κλειδί πλεονέκτημα: οι παράμετροι μετάβασης αποθηκεύονται και αποκαθίστανται μετά την εγκατάσταση της εφαρμογής από το κατάστημα.
  • Δημιουργία — οι σύνδεσμοι δημιουργούνται μέσω Firebase Console, REST API ή SDK πελάτη με ρύθμιση παραμέτρων για κάθε πλατφόρμα.
  • Ενσωμάτωση iOS — απαιτεί Associated Domains στο Xcode και Firebase SDK; επεξεργασία μέσω Universal Links και της μεθόδου continue UserActivity.
  • Ενσωμάτωση Android — απαιτεί Intent Filter στο manifest με ενέργεια VIEW και domain Dynamic Links, καθώς και Firebase SDK στο build.gradle.
  • Αναλυτική — το Firebase παρακολουθεί αυτόματα τις μεταβάσεις μέσω Dynamic Links με υποστήριξη ετικετών UTM για Google Analytics.

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης