Firebase Dynamic Links là dịch vụ của Google để tạo các liên kết thông minh đưa người dùng đến đúng vị trí trong ứng dụng di động hoặc trang web, tùy thuộc vào việc ứng dụng đã được cài đặt trên thiết bị hay chưa. Dynamic Links giữ nguyên ngữ cảnh chuyển tiếp ngay cả khi khởi chạy lần đầu sau khi cài đặt từ cửa hàng ứng dụng. Theo Tài liệu Firebase, 2026, liên kết động được xử lý trong một API duy nhất tự động xác định hành vi: mở ứng dụng, chuyển đến trang web hoặc cài đặt ứng dụng. Dịch vụ này không thể thiếu cho các chương trình giới thiệu, kịch bản onboarding và chiến dịch tiếp thị.
Những điểm chính
Firebase Dynamic Links là công nghệ của Google tạo một liên kết duy nhất dẫn đến nội dung mong muốn trong ứng dụng di động hoặc trang web, điều chỉnh hành vi tùy theo nền tảng và trạng thái cài đặt. Liên kết kiểm tra xem ứng dụng đã được cài đặt trên thiết bị chưa: nếu có — mở ứng dụng với các tham số được truyền, nếu không — chuyển hướng đến Google Play hoặc App Store để cài đặt, và sau khi cài đặt chuyển hướng đến màn hình mục tiêu.
Ưu điểm chính của Dynamic Links so với liên kết sâu thông thường là hỗ trợ liên kết sâu hoãn lại. Deferred Deep Linking có nghĩa là ngữ cảnh chuyển tiếp (tham số liên kết) được giữ nguyên ngay cả khi ứng dụng chưa được cài đặt. Khi người dùng cài đặt ứng dụng từ cửa hàng, Dynamic Links SDK đọc ngữ cảnh đã lưu và truyền nó đến màn hình mong muốn. Nếu không có công nghệ này, người dùng sẽ chỉ đến màn hình chính sau khi cài đặt, mất mã khuyến mãi, lời mời hoặc liên kết đến đơn hàng cụ thể.
Dynamic Links được sử dụng trong các chương trình giới thiệu để thu hút người dùng mới với quy kết cho tài khoản người mời. Các chiến dịch tiếp thị với chuyển tiếp từ bản tin email và mạng xã hội sử dụng Dynamic Links để đo lường chuyển đổi chính xác. Trong kịch bản onboarding, liên kết đưa người dùng mới đến màn hình chào mừng với nội dung cá nhân hóa. Trong thương mại điện tử, liên kết sản phẩm giữ nguyên ngữ cảnh và dẫn đến thẻ sản phẩm ngay cả khi khởi chạy lần đầu sau cài đặt.
Cơ chế hoạt động của Dynamic Links bao gồm nhiều giai đoạn, mỗi giai đoạn có thể thay đổi tùy theo trạng thái ứng dụng. Khi người dùng nhấp vào liên kết động, trình duyệt gửi yêu cầu đến máy chủ Firebase. Firebase kiểm tra xem ứng dụng đã được cài đặt chưa thông qua xác minh intent-filter hoặc universal link. Nếu ứng dụng đã được cài đặt, Firebase mở nó với liên kết sâu được truyền. Nếu không — chuyển hướng đến trang cửa hàng hoặc phiên bản web.
Một Dynamic Link tiêu chuẩn bao gồm URL cơ sở, tham số liên kết và thẻ tiếp thị tùy chọn. URL cơ sở là tên miền dạng your-app.page.link đã đăng ký trong Firebase Console. Các tham số liên kết sâu được đặt qua tham số truy vấn: link (URL mục tiêu trong ứng dụng), apn (Android Package Name), ibi (iOS Bundle ID), st và sd (tiêu đề và mô tả cho xem trước xã hội). Thẻ tiếp thị utm_source, utm_medium, utm_campaign được truyền đến Google Analytics để theo dõi.
| Tham số | Mô tả | Ví dụ |
|---|---|---|
| link | Liên kết sâu mục tiêu | https://yourapp.page.link/product/123 |
| apn | Android Package Name | com.example.myapp |
| ibi | iOS Bundle ID | com.example.myapp.ios |
| st | Tiêu đề xã hội | Ưu đãi đặc biệt |
| sd | Mô tả xã hội | Giảm 30% cho đơn hàng đầu tiên |
Firebase Console cung cấp giao diện trực quan để tạo Dynamic Links trong phần Engage > Dynamic Links. Trong bảng điều khiển, bạn có thể đặt tất cả các tham số liên kết, bao gồm liên kết sâu, hành vi web, siêu dữ liệu xã hội và thẻ UTM. Sau khi tạo liên kết, bảng điều khiển cung cấp URL sẵn sàng sử dụng cùng với thống kê về nhấp chuột và chuyển tiếp. Để tạo hàng loạt liên kết, REST API Firebase Dynamic Links với xác thực OAuth 2.0 được sử dụng.
Để tạo Dynamic Links theo chương trình, một yêu cầu POST được gửi đến API Firebase Dynamic Links. Nội dung yêu cầu chứa dynamicLinkInfo với các tham số liên kết sâu, cài đặt nền tảng và siêu dữ liệu xã hội. API trả về URL sẵn sàng sử dụng dạng https://your-app.page.link/abc123. Đối với liên kết dài hạn, suffix.option = UNIQUE được sử dụng — liên kết ngắn với hậu tố duy nhất. Đối với liên kết tạm thời — SHORT, có thể xảy ra xung đột.
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: "Khuyến mãi mùa hè",
socialDescription: "Giảm đến 50% đến cuối tháng"
}
},
suffix: { option: "UNIQUE" }
}
axios.post(apiUrl, data)
.then(res => console.log(res.data.shortLink))
.catch(err => console.error(err))
Dynamic Links tự động tạo URL ngắn với 6–8 ký tự sau tên miền, phù hợp để sử dụng trong SMS và mạng xã hội. Tham số UTM được thêm qua trường utmParameters hoặc trực tiếp trong tham số link. Firebase tự động liên kết các nhấp chuột trên Dynamic Links với Google Analytics cho Firebase, cho phép theo dõi lưu lượng giới thiệu và quy kết chiến dịch.
Thiết lập Dynamic Links trong Android bao gồm thêm Firebase SDK, cấu hình intent-filter cho activity nhận liên kết sâu và xử lý liên kết qua Firebase Dynamic Links SDK. Sau khi cài đặt SDK và thêm google-services.json, bạn cần đăng ký activity trong AndroidManifest.xml với intent-filter để xử lý liên kết từ tên miền ứng dụng của bạn.
Activity xử lý Dynamic Links phải có intent-filter cho hành động VIEW và các danh mục DEFAULT và BROWSABLE. AndroidManifest.xml bao gồm thẻ data với android:scheme, android:host và android:pathPrefix tương ứng với liên kết sâu của bạn. Để xử lý liên kết từ tên miền page.link, một intent-filter với scheme https và host tên miền Dynamic Links của bạn cũng được thêm vào.
<!-- 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>
Sau khi thiết lập intent-filter, bạn cần xử lý Dynamic Link đến trong mã Activity. API FirebaseDynamicLinks nhận liên kết từ intent và trả về đối tượng PendingDynamicLinkData với các tham số đã trích xuất. Phương thức getLink trả về liên kết sâu mục tiêu, có thể được phân tích và sử dụng để điều hướng. Điều quan trọng là xử lý liên kết cả khi khởi động nguội (qua getIntent trong onCreate) và khi khởi động nóng (qua onNewIntent).
Thiết lập Dynamic Links trong iOS yêu cầu cấu hình cả phía Firebase và trong dự án Xcode. Bạn cần tải khóa APNs lên Firebase Console, thêm Firebase SDK qua Swift Package Manager hoặc CocoaPods và cấu hình App Delegate để xử lý Universal Links. Dynamic Links trong iOS sử dụng Universal Links để chuyển tiếp liền mạch giữa trình duyệt và ứng dụng mà không có trang trung gian.
Universal Links là công nghệ của Apple kết nối tên miền của bạn với ứng dụng di động. Tệp apple-app-site-association (AASA) được tải lên máy chủ tại https://your-app.page.link/apple-app-site-association. Firebase tự động tạo và duy trì tệp này cho tên miền Dynamic Links của bạn. Trong Xcode, bạn cần bật Associated Domains và chỉ định applinks:your-app.page.link trong Capabilities của dự án.
Đối với iOS, xử lý Dynamic Links được thực hiện qua Firebase SDK trong App Delegate hoặc Scene Delegate. Phương thức application:continueUserActivity: chặn Universal Link đến và chuyển nó đến API Firebase Dynamic Links, nơi trích xuất liên kết mục tiêu và tham số. Firebase SDK tự động xử lý Deferred Deep Links bằng cách yêu cầu dữ liệu cài đặt qua bộ nhớ ngắn hạn của 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)
}
}
}
}
Hãy xem một ví dụ hoàn chỉnh về xử lý Dynamic Link trong ứng dụng Android bằng Kotlin. MainActivity đọc Dynamic Link đến cả khi khởi động nguội và nóng của ứng dụng. Liên kết được phân tích thành các tham số được sử dụng để điều hướng đến màn hình mong muốn với các đối số được truyền. Ví dụ cho thấy xử lý liên kết đến trang khuyến mãi với mã định danh chiến dịch khuyến mãi.
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", "Lỗi xử lý liên kết", e)
}
}
}
Để kiểm tra Dynamic Links, Firebase Console được sử dụng, nơi bạn có thể tạo liên kết thử nghiệm và gửi đến thiết bị qua ứng dụng nhắn tin hoặc email. Trình gỡ lỗi Firebase Dynamic Links có sẵn tại https://your-app.page.link/?d=1 và hiển thị thông tin chi tiết về hành vi liên kết. Khi kiểm tra Deferred Deep Links, bạn cần đảm bảo ứng dụng đã được gỡ cài đặt và sau khi cài đặt, liên kết dẫn đến màn hình chính xác với các tham số đã truyền.
Câu hỏi thường gặp
Liên kết sâu thông thường chỉ hoạt động khi ứng dụng đã được cài đặt và không giữ nguyên ngữ cảnh sau khi cài đặt. Dynamic Links hỗ trợ Deferred Deep Linking — người dùng cài đặt ứng dụng và ngay lập tức đến màn hình mục tiêu với các tham số liên kết được giữ nguyên.
Không cần máy chủ để tạo và xử lý liên kết — tất cả các thao tác được thực hiện qua Firebase Console, REST API hoặc Firebase SDK phía máy khách. Để tạo hàng loạt liên kết, REST API được khuyến nghị, nhưng bảng điều khiển phù hợp cho việc tạo thủ công.
Dynamic Links không có ngày hết hạn — chúng được lưu trữ trong Firebase vĩnh viễn trừ khi bị xóa thủ công. Liên kết ngắn với hậu tố UNIQUE tồn tại vô thời hạn. Nên tạo liên kết duy nhất cho mỗi chiến dịch để quy kết chính xác.
Xử lý Dynamic Link yêu cầu kết nối internet ở giai đoạn nhấp chuột vì máy chủ Firebase kiểm tra trạng thái cài đặt ứng dụng. Sau khi xử lý liên kết, dữ liệu được truyền vào ứng dụng qua intent hoặc Universal Link và có sẵn ngay cả khi ngoại tuyến.
Firebase Dynamic Links miễn phí trong gói Spark. Trong gói Blaze, có giới hạn 50K nhấp chuột mỗi ngày cho mỗi dự án mà không tính thêm phí. Vượt quá giới hạn sẽ chặn tạo liên kết mới cho đến ngày hôm sau.
Tóm tắt
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.
Đọc thêm