Το Firebase Dynamic Links είναι η υπηρεσία της Google για τη δημιουργία έξυπνων συνδέσμων που οδηγούν τον χρήστη στο σωστό σημείο μέσα στην εφαρμογή κινητού ή στον ιστότοπο, ανάλογα με το αν η εφαρμογή είναι εγκατεστημένη στη συσκευή. Τα Dynamic Links διατηρούν το περιβάλλον της μετάβασης ακόμα και κατά την πρώτη εκκίνηση μετά την εγκατάσταση από το κατάστημα εφαρμογών. Σύμφωνα με το Firebase Documentation, 2026, οι δυναμικοί σύνδεσμοι υποβάλλονται σε επεξεργασία σε ένα ενιαίο API που καθορίζει αυτόματα τη συμπεριφορά: άνοιγμα της εφαρμογής, μετάβαση στον ιστότοπο ή εγκατάσταση της εφαρμογής. Η υπηρεσία είναι απαραίτητη για προγράμματα παραπομπής, σενάρια υποδοχής και εκστρατείες μάρκετινγκ.
Βασικά σημεία
Το Firebase Dynamic Links είναι η τεχνολογία της Google που δημιουργεί έναν ενιαίο σύνδεσμο που οδηγεί στο επιθυμητό περιεχόμενο στην εφαρμογή κινητού ή στον ιστότοπο, προσαρμόζοντας τη συμπεριφορά ανάλογα με την πλατφόρμα και την κατάσταση εγκατάστασης. Ο σύνδεσμος ελέγχει αν η εφαρμογή είναι εγκατεστημένη στη συσκευή: αν ναι — την ανοίγει με μεταβίβαση παραμέτρων, αν όχι — κατευθύνει στο Google Play ή στο App Store για εγκατάσταση και μετά την εγκατάσταση ανακατευθύνει στην οθόνη-στόχο.
Το κύριο πλεονέκτημα των Dynamic Links σε σύγκριση με τους συνηθισμένους deep links είναι η υποστήριξη για αναβαλλόμενους βαθιούς συνδέσμους. Το Deferred Deep Linking σημαίνει ότι το περιβάλλον μετάβασης (παράμετροι συνδέσμου) διατηρείται ακόμα κι αν η εφαρμογή δεν είναι ακόμα εγκατεστημένη. Όταν ο χρήστης εγκαθιστά την εφαρμογή από το κατάστημα, το Dynamic Links SDK διαβάζει το αποθηκευμένο περιβάλλον και το μεταφέρει στην κατάλληλη οθόνη. Χωρίς αυτήν την τεχνολογία, ο χρήστης μετά την εγκατάσταση θα κατέληγε απλά στην κύρια οθόνη, χάνοντας τον προωθητικό κωδικό, την πρόσκληση ή τον σύνδεσμο προς μια συγκεκριμένη παραγγελία.
Τα Dynamic Links χρησιμοποιούνται σε προγράμματα παραπομπής για την προσέλκυση νέων χρηστών με σύνδεση στον λογαριασμό του καλούντος. Εκστρατείες μάρκετινγκ με μεταβάσεις από ενημερωτικά δελτία ηλεκτρονικού ταχυδρομείου και μέσα κοινωνικής δικτύωσης χρησιμοποιούν Dynamic Links για την ακριβή μέτρηση της μετατροπής. Σε σενάρια υποδοχής, ο σύνδεσμος οδηγεί τον νέο χρήστη σε μια οθόνη υποδοχής με εξατομικευμένο περιεχόμενο. Στο ηλεκτρονικό εμπόριο, οι σύνδεσμοι προϊόντων διατηρούν το περιβάλλον και οδηγούν στην κάρτα προϊόντος ακόμα και κατά την πρώτη εκκίνηση μετά την εγκατάσταση.
Ο μηχανισμός λειτουργίας των Dynamic Links αποτελείται από διάφορα στάδια, καθένα από τα οποία μπορεί να διαφέρει ανάλογα με την κατάσταση της εφαρμογής. Όταν ο χρήστης κάνει κλικ σε έναν δυναμικό σύνδεσμο, το πρόγραμμα περιήγησης στέλνει ένα αίτημα στον διακομιστή Firebase. Το Firebase ελέγχει αν η εφαρμογή είναι εγκατεστημένη μέσω ελέγχου intent-filter ή universal link. Εάν η εφαρμογή είναι εγκατεστημένη, το Firebase την ανοίγει μεταβιβάζοντας τον βαθύ σύνδεσμο. Εάν όχι — ανακατευθύνει στη σελίδα του καταστήματος ή στην έκδοση ιστού.
Ένας τυπικός Dynamic Link αποτελείται από ένα βασικό URL, παραμέτρους συνδέσμου και προαιρετικές ετικέτες μάρκετινγκ. Το βασικό URL είναι ένας τομέας της μορφής your-app.page.link, καταχωρημένος στο Firebase Console. Οι παράμετροι βαθέων συνδέσμων ορίζονται μέσω παραμέτρων ερωτήματος: link (URL-στόχος εντός της εφαρμογής), apn (Android Package Name), ibi (iOS Bundle ID), st και sd (τίτλος και περιγραφή για την προεπισκόπηση στα μέσα κοινωνικής δικτύωσης). Οι ετικέτες μάρκετινγκ utm_source, utm_medium, utm_campaign μεταβιβάζονται στο Google Analytics για παρακολούθηση.
| Παράμετρος | Περιγραφή | Παράδειγμα |
|---|---|---|
| link | Βαθύς σύνδεσμος-στόχος | https://yourapp.page.link/product/123 |
| apn | Android Package Name | com.example.myapp |
| ibi | iOS Bundle ID | com.example.myapp.ios |
| st | Τίτλος κοινωνικής δικτύωσης | Ειδική προσφορά |
| sd | Περιγραφή κοινωνικής δικτύωσης | Έκπτωση 30% στην πρώτη παραγγελία |
Το Firebase Console παρέχει μια οπτική διεπαφή για τη δημιουργία Dynamic Links στην ενότητα Engage > Dynamic Links. Στην κονσόλα μπορούν να οριστούν όλες οι παράμετροι συνδέσμου, συμπεριλαμβανομένου του βαθέος συνδέσμου, της συμπεριφοράς στον ιστό, των μεταδεδομένων κοινωνικής δικτύωσης και των ετικετών UTM. Μετά τη δημιουργία του συνδέσμου, η κονσόλα παρέχει ένα έτοιμο URL καθώς και στατιστικά κλικ και μεταβάσεων. Για μαζική δημιουργία συνδέσμων χρησιμοποιείται το REST API Firebase Dynamic Links με έλεγχο ταυτότητας OAuth 2.0.
Για προγραμματική δημιουργία Dynamic Links χρησιμοποιείται ένα αίτημα POST προς το Firebase Dynamic Links API. Το σώμα του αιτήματος περιέχει dynamicLinkInfo με παραμέτρους βαθέος συνδέσμου, ρυθμίσεις πλατφόρμας και μεταδεδομένα κοινωνικής δικτύωσης. Το API επιστρέφει ένα έτοιμο URL της μορφής https://your-app.page.link/abc123. Για συνδέσμους μεγάλης διάρκειας χρησιμοποιείται suffix.option = UNIQUE — σύντομοι σύνδεσμοι με μοναδικό επίθημα. Για προσωρινούς συνδέσμους — SHORT, με πιθανότητα συγκρούσεων.
const axios = require("axios")
const apiUrl = "https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY"
const data = {
dynamicLinkInfo: {
domainUriPrefix: "https://yourapp.page.link",
link: "https://yourapp.com/promo/summer",
androidInfo: { androidPackageName: "com.example.myapp" },
iosInfo: { iosBundleId: "com.example.myapp.ios" },
socialMetaTagInfo: {
socialTitle: "Θερινή προσφορά",
socialDescription: "Εκπτώσεις έως 50% έως το τέλος του μήνα"
}
},
suffix: { option: "UNIQUE" }
}
axios.post(apiUrl, data)
.then(res => console.log(res.data.shortLink))
.catch(err => console.error(err))
Τα Dynamic Links δημιουργούν αυτόματα σύντομα URL με μήκος 6–8 χαρακτήρων μετά τον τομέα, καθιστώντας τα κατάλληλα για χρήση σε SMS και μέσα κοινωνικής δικτύωσης. Οι παράμετροι UTM προστίθενται μέσω του πεδίου utmParameters ή απευθείας στην παράμετρο συνδέσμου. Το Firebase συνδέει αυτόματα τα κλικ Dynamic Links με το Google Analytics για Firebase, επιτρέποντας την παρακολούθηση της κυκλοφορίας παραπομπής και της απόδοσης εκστρατειών.
Η διαμόρφωση Dynamic Links στο Android περιλαμβάνει την προσθήκη Firebase SDK, τη διαμόρφωση intent-filter για τη δραστηριότητα που λαμβάνει βαθείς συνδέσμους και την επεξεργασία συνδέσμων μέσω Firebase Dynamic Links SDK. Μετά την εγκατάσταση του SDK και την προσθήκη του google-services.json, η δραστηριότητα πρέπει να καταχωρηθεί στο AndroidManifest.xml με intent-filter για την επεξεργασία συνδέσμων από τον τομέα της εφαρμογής.
Η δραστηριότητα που επεξεργάζεται Dynamic Links πρέπει να έχει intent-filter για την ενέργεια VIEW και τις κατηγορίες DEFAULT και BROWSABLE. Το AndroidManifest.xml περιέχει μια ετικέτα data με android:scheme, android:host και android:pathPrefix που αντιστοιχούν στον βαθύ σύνδεσμο. Για την επεξεργασία συνδέσμων από τον τομέα page.link, προστίθεται επίσης intent-filter με σχήμα https και host του τομέα Dynamic Links.
<!-- AndroidManifest.xml -->
<activity android:name=".MainActivity">
<intent-filter>
<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="yourapp.com"
android:pathPrefix="/promo" />
</intent-filter>
</activity>
Μετά τη διαμόρφωση του intent-filter, ο εισερχόμενος Dynamic Link πρέπει να υποβληθεί σε επεξεργασία στον κώδικα της δραστηριότητας. Το FirebaseDynamicLinks API λαμβάνει τον σύνδεσμο από το intent και επιστρέφει ένα αντικείμενο PendingDynamicLinkData με εξαγόμενες παραμέτρους. Η μέθοδος getLink επιστρέφει τον βαθύ σύνδεσμο-στόχο που μπορεί να αναλυθεί και να χρησιμοποιηθεί για πλοήγηση. Είναι σημαντικό να γίνεται επεξεργασία του συνδέσμου τόσο κατά την ψυχρή εκκίνηση (μέσω getIntent στο onCreate) όσο και κατά τη θερμή εκκίνηση (μέσω onNewIntent).
Η διαμόρφωση Dynamic Links στο iOS απαιτεί διαμόρφωση τόσο στην πλευρά του Firebase όσο και στο έργο Xcode. Το κλειδί APNs πρέπει να μεταφορτωθεί στο Firebase Console, να προστεθεί το Firebase SDK μέσω Swift Package Manager ή CocoaPods και να διαμορφωθεί το App Delegate για την επεξεργασία Universal Links. Τα Dynamic Links στο iOS χρησιμοποιούν Universal Links για απρόσκοπτη μετάβαση μεταξύ προγράμματος περιήγησης και εφαρμογής χωρίς ενδιάμεση σελίδα.
Τα Universal Links είναι η τεχνολογία της Apple που συνδέει τον τομέα σας με την εφαρμογή κινητού. Το αρχείο apple-app-site-association (AASA) φορτώνεται στον διακομιστή στη διεύθυνση https://your-app.page.link/apple-app-site-association. Το Firebase δημιουργεί και διατηρεί αυτόματα αυτό το αρχείο για τον τομέα Dynamic Links σας. Στο Xcode, πρέπει να ενεργοποιηθούν τα Associated Domains και να καθοριστεί το applinks:your-app.page.link στα Capabilities του έργου.
Για iOS, η επεξεργασία Dynamic Links πραγματοποιείται μέσω Firebase SDK στο App Delegate ή στο Scene Delegate. Η μέθοδος application:continueUserActivity: αναχαιτίζει τον εισερχόμενο Universal Link και τον μεταβιβάζει στο Firebase Dynamic Links API, το οποίο εξάγει τον σύνδεσμο-στόχο και τις παραμέτρους. Το Firebase SDK επεξεργάζεται αυτόματα τα Deferred Deep Links, ζητώντας δεδομένα εγκατάστασης μέσω της βραχυπρόθεσμης αποθήκευσης Firebase Installation API.
import FirebaseDynamicLinks
class AppDelegate: UIApplicationDelegate {
func application(
_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping
([UIUserActivityRestoring]?) -> Void
) -> Bool {
return DynamicLinks.dynamicLinks()
.handleUniversalLink(userActivity.webpageURL!) {
dynamicLink, error in
if let link = dynamicLink?.url {
self.handleDeepLink(link)
}
}
}
}
Ας δούμε ένα πλήρες παράδειγμα επεξεργασίας Dynamic Link σε εφαρμογή Android σε Kotlin. Η MainActivity διαβάζει τον εισερχόμενο Dynamic Link τόσο κατά την ψυχρή όσο και κατά τη θερμή εκκίνηση της εφαρμογής. Ο σύνδεσμος αναλύεται σε παραμέτρους που χρησιμοποιούνται για πλοήγηση στην κατάλληλη οθόνη με μεταβίβαση ορισμάτων. Το παράδειγμα δείχνει την επεξεργασία συνδέσμου προς τη σελίδα προώθησης με το αναγνωριστικό προώθησης.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
handleDynamicLink(intent)
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
handleDynamicLink(intent)
}
private fun handleDynamicLink(intent: Intent) {
FirebaseDynamicLinks.getInstance()
.getDynamicLink(intent)
.addOnSuccessListener { data ->
val deepLink = data?.link ?: return@addOnSuccessListener
val promoId = deepLink
.getQueryParameter("promoId") ?: ""
if (promoId.isNotEmpty()) {
navigateToPromoScreen(promoId)
}
}
.addOnFailureListener { e ->
Log.e("DL", "Σφάλμα επεξεργασίας συνδέσμου", e)
}
}
}
Για τη δοκιμή Dynamic Links χρησιμοποιείται το Firebase Console, όπου μπορεί να δημιουργηθεί ένας δοκιμαστικός σύνδεσμος και να σταλεί στη συσκευή μέσω messenger ή email. Το Firebase Dynamics Links Debugger είναι διαθέσιμο στη διεύθυνση URL https://your-app.page.link/?d=1 και εμφανίζει λεπτομερείς πληροφορίες σχετικά με τη συμπεριφορά του συνδέσμου. Κατά τη δοκιμή Deferred Deep Links, πρέπει να βεβαιωθείτε ότι η εφαρμογή έχει αφαιρεθεί και μετά την εγκατάσταση ο σύνδεσμος οδηγεί στη σωστή οθόνη με τις μεταβιβαζόμενες παραμέτρους.
Συχνές ερωτήσεις
Οι συνηθισμένοι deep links λειτουργούν μόνο όταν η εφαρμογή είναι εγκατεστημένη και δεν διατηρούν το περιβάλλον μετά την εγκατάσταση. Τα Dynamic Links υποστηρίζουν Deferred Deep Linking — ο χρήστης εγκαθιστά την εφαρμογή και κατευθύνεται αμέσως στην οθόνη-στόχο με τις αποθηκευμένες παραμέτρους συνδέσμου.
Δεν απαιτείται διακομιστής για τη δημιουργία και επεξεργασία συνδέσμων — όλες οι λειτουργίες εκτελούνται μέσω Firebase Console, REST API ή Firebase SDK στον πελάτη. Για μαζική δημιουργία συνδέσμων συνιστάται το REST API, αλλά η κονσόλα είναι κατάλληλη για μη αυτόματη δημιουργία.
Τα Dynamic Links δεν έχουν ημερομηνία λήξης — αποθηκεύονται στο Firebase για πάντα εάν δεν διαγραφούν χειροκίνητα. Οι σύντομοι σύνδεσμοι με επίθημα UNIQUE υπάρχουν επ' αόριστον. Συνιστάται η δημιουργία μοναδικών συνδέσμων για κάθε εκστρατεία για ακριβή απόδοση.
Για την επεξεργασία Dynamic Link απαιτείται σύνδεση στο διαδίκτυο στο στάδιο του κλικ, καθώς ο διακομιστής Firebase ελέγχει την κατάσταση εγκατάστασης της εφαρμογής. Μετά την επεξεργασία του συνδέσμου, τα δεδομένα μεταβιβάζονται στην εφαρμογή μέσω intent ή Universal Link και γίνονται διαθέσιμα και χωρίς δίκτυο.
Τα Firebase Dynamic Links είναι δωρεάν στο πλαίσιο του προγράμματος Spark. Στο πρόγραμμα Blaze ισχύει όριο 50 χιλιάδων κλικ την ημέρα ανά έργο χωρίς επιπλέον χρέωση. Η υπέρβαση του ορίου αποκλείει τη δημιουργία νέων συνδέσμων μέχρι την επόμενη ημέρα.
Περίληψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης