Firebase Dynamic Link — 簡單介紹

Jacky810124
SWAG
Published in
7 min readMay 3, 2019

使用者在社群中分享網頁連結,當其他人看到並且有安裝 Mobile App 時,會希望使用者能夠自動開啟 Mobile App;或是尚未安裝時,能夠自動導到 App Store 或是 Play Store。

Firebase Dynamic Link 可以讓這件事情變得簡單點,先來看一下介紹影片。

看完之後是不是很心動呢?接下來介紹一下 Firebase Dynamic Link 吧!

創建 Dynamic Link

創建 Firebase Dynamic Link 可以透過幾種方式來創建:

  • Firebase Console
  • REST API
  • SDK
  • 手動創建

大家可以挑選適合的方式來創建,今天將會著重在手動創建這個方式的小細節。

在預設情況下,Firebase 提供 page.link 這個域名供使用者使用,能夠自行設定不同的子網域來區分不同的用途,像是:

// SWAG 專用的 Dynamic Link
swag.page.link
// SWAG 活動專用的 Dynamin Link
swagevent.page.link

若使用者想使用自己的網域名稱,也可以在 Firebase Console 中來設定,使用自訂的網域名稱,大概會長得像這樣:

link.swag.live

這個部分就看實際使用的情境來決定。

手動創建

Firebase Dynamic Link 可以透過自行組合參數來創建,像是:

https://link.swag.live?link=your_deep_link&apn=android_package_name

若使用者有安裝對應的 Android App 則會直接開啟 Android App;若無,則會自動導到 Play Store。

Firebase Dynamic Link 的參數會分成幾個部分:

  • Deep Link Parameters
  • Android Parameters
  • iOS Parameters
  • Other Platform Parameters
  • Navigation Parameters
  • Social Meta Tag Parameters
  • Analytics Parameters
  • Debug Parameters

Deep Link Parameters

Deep Link 的參數主要是提供 App 和退到網頁版來使用,若使用者已安裝 Mobile App 則直接透過 App 來開啟;若尚未安裝,則看是要導到商店或是退到網頁版。

link
Mobile App 將會開啟的 URL,指定 App 可以處理的 URL,一般來說是 App 的內容或是啟動特定 App 邏輯的 Payload;link 會是格式良好且 URL 編碼過的 URL,可以是 HTTP 或 HTTPS,且不能為另一個 Firebase Dynamic Link。

在桌面裝置的瀏覽器上開啟時,將會開啟這個連結,除非有另外指定 ofl。

Android Parameters

這部分的參數主要是提供給 Android 來使用。

apn
Android 用來開啟連結的 Package name,且該 App 在 Firebase Console 的 Overview 頁面中,應該要與專案被連結在一起;對於 Dynamic Link 要開啟 Android App 來說是必要的。

afl
當 Android App 尚未安裝時所開啟的連結,這個連結用來指定一些像是開啟手機版的網頁,或是一些 App 的促銷頁面,並非用在使用者尚未安裝 App 時,從 Play Store 安裝 App 的用途。

amv
App 能夠開啟此連結的最低版本,如果安裝的較舊的版本時,將會導至 Play Store 來升級 App。

iOS Parameters

這部分的參數主要提供給 iOS 和 iPads 來使用。

ibi
用來開啟連結的 iOS App Bundle ID,該 App 應該要在 Firebase Console 的 Overview 中與專案連結在一起;對於 Dynamic Link 要開啟 iOS App 來說是必要的。

ifl
當 iOS App 尚未安裝時所開啟的連結,用來指定一些像是開啟手機版的網頁,或是開啟 App 的促銷頁面,並非用在使用者尚未安裝 App 時,開啟 App Store 讓使用者安裝 App 的用途。

ius
自訂的 URL Schema。

ipfl
當 App 尚未安裝時,在 iPads 上所開啟的連結,與 ifl 的用途類似,只是專門用在 iPads 上。

ipbi
在 iPads 上用來開啟連結的 App Bundle ID,該 App 必須要在 Firebase Console 的 Overview 頁面中與專案連結在一起。

isi
App 的 Apple Store ID,當使用者尚未安裝 App 時用來帶使用者到 App Store。

imv
能夠開啟連結的最低 App 版本,當 App 開啟時,這個 flag 會被傳到 App 中,App 中必須決定該如何處理。

Other Parameters

主要為除了 Android 和 iOS 平台外所使用的參數。

ofl
除了 Android 和 iOS 平台,其他平台所開啟的連結,這在電腦版中用來指定不同的行為非常好用,像是開啟 App 內容的滿版網頁,或是其他用來安裝 App 的 Dynamic Link Payload。

Navigation Parameters

Navigation 所使用的參數。

efr
efr 設為 1 開啟 Dynamic Link 時會略過 App 的預覽頁面,直接跳轉到商店或是 App;App 的預覽畫面在使用者開啟 Dynamic Link時,可以更可靠的將使用者帶到更適合的目的地

然而,如果你期望 Dynamic Link 只在 App 中被開啟,在沒有 App 的預覽畫面時會更可靠,因此也可以選擇將 efr 設為 0 來停止它。

App 的預覽畫面現在只會在 iOS 上出現, Android 上之後可能也會出現,這個參數將會影響到 Dynamic Link 在兩個平台上的行為。

Social Meta Tag Parameters

用在社群分享的參數。

st
用來當作分享在社群貼文中的標題。

sd
用來當作分享在社群貼文中的描述。

si
跟這個連結有相關的圖片,圖片至少要 300*200px 且小於 300KB。

Analytics Parameters

用於數據分析的參數。

Google Play Analytics Parameters

  • utm_source
  • utm_medium
  • utm_campaign
  • utm_term
  • utm_content
  • gclid

iTunes Connect Analytics Parameters

  • at
  • ct
  • mt
  • pt

Debug Parameters

用於偵錯的參數。

d
透過將 d 設為 1 進入偵錯模式,將會產生 Dynamic Link 的行為流程圖,而不是載入 Dynamic Link,可以用來預覽 Dynamic Link 在不同平台和配置的行為。

https://link.swag.live?link=your_deep_link&d=1

總結

使用 Firebase Dynamic Link 時,可以結合 Android 和 iOS 兩平台的參數,來產生在 Android 和 iOS 上都能夠使用的 Dynamic Link。

另外,當使用者尚未安裝 Mobile App 時,不是每次都需要導到商店,這種情況下 iOS Parameters 可以不帶 isi,這樣就能夠不跳到 App Store。

iflipflaflofl 在大多數的情況下可以不用帶,但如果有需要針對尚未安裝 Mobile App 的使用者有不同行為(像是:安裝 Mobile App 就能夠獲得一些特別促銷……等),在這種情況下就蠻適合透過這幾個參數,來設定這種不同的行為。

--

--