使用 Firebase Dynamic links 找到你的使用者從哪裡下載你的 App
為了示範,我們先建立一個專案 TestFirebaseDL,並且在該目錄下執行 pod init,並在 pod file 加入 pod ‘Firebase/DynamicLinks’。
若目前還沒有專案在 Firebase 上,請先建立一個,並在裡面加入你的 iOS 應用程式。(iOS 繫結 ID 請填入你在專案上的 Bundle Id) (後續動作請參考Firebase說明)
接著我們開啟 Firebase,點選 Dynamic Link,並選取新增動態連結。
接著我們可以看到設定短網址、設定動態連結、定義 iOS 的連結行為、定義 Android 的連結行為等,接下來會一個一個簡單解釋。
- 設定短網址- 你要讓使用者連結到的網址
- 設定動態連結-
這邊可以設定的深層連結(DeepLink)網址,是本編最重要的關鍵。
What is Deep Link? (本篇就不多解釋這個名詞惹)
首先,這邊設定的 DeepLink 是能在 App 內拿到的訊息,而名稱的會則不會,所以我們這邊就簡單丟個 https://testDL/example。
3. 定義 iOS內的連結行為,此處須點選在 iOS 應用程式中開啟深層連結,然後選取你的應用程式,如果使用者有安裝你的 App ,點選這個連結就會開啟 App,若沒有安裝,則會導引到你設定的 AppStore Id的頁面,或者自訂的下載頁(看你勾選哪個)。
備註: 若你選取在 iOS 應用程式中開啟深層連結,卻遇到未設定“應用程式 ID 前置字串”、以及 “App Store ID” 怎麼辦呢?
應用程式 ID 前置字串 — https://developer.apple.com/account/#/membership/ Membership 裡面的 Team ID 就是應用程式 ID 前置字串,將那串文字貼入到選項中。
App Store ID — 若此刻的你還沒有上架,那你可以先隨便打一串數字上去,之後再補上上架後的ID。
此處則是自己設定連結網址, 這邊的連結網址是使用者點選短網址後會前往的目的網址。如果就本篇的目的,此網址會放下載頁的網址,因為我們的目的要知道使用者是從哪個渠道連結到下載頁,然後下載&安裝App的。
接下來 Android 跟廣告活動的部分我們就不多加設定,直接建立動態連結吧!
建立完後,複製短網址,貼到 Safari 上面,會出現是否要 Open。
Open 有兩種狀況,使用者如果有安裝你專案 App,則會在按下 Open 後打開App,若沒有,則會按下 Open 後連結到你剛剛第三步的連結網址。
如果使用者沒有安裝 App,則按下 Open 後會建立一個 NSUserActivity,接著在你第一次開啟 App 的時候將這個物件傳給App。而本編要做的就是接收這個物件。
首先回到 Xcode 裏,到Project -> Info 找到 URL Types 新增,在Identifier 欄位輸入Bundle ID,接著在 URL Schemes 填入專案的 Bundle ID。
接著再到 Capabilities -> Associated Domains 打開,加入你動態連結的Domain,如下圖,加入 applinks:”你的Domain”.app.goo.gl (本例中的Domain == ys3bw)
下來我們回到 AppDelegate,import完Firebase,以及在 didFinishLaunching 加完 FirebaseApp.configure() 後,我們新建兩個Function,如下。
在你點選Firebase的動態連結後被記錄起來的東西,在你 App 安裝後的第一次開啟會在application:openURL:sourceApplication:annotation:這個function收到。
我們就直接來試看看吧!
首先先把模擬器的專案砍掉,接著點選Firebase上的動態連結,貼到Safari上面,點完Open後,此處我們直接使用xcode run進行安裝作業。
在安裝完App後,你會發現在第一次開啟的時候會收到來自你所設定的 Deep Link。
從這個過程中,你可以找到使用者在安裝後,第一次開啟是從哪裡來的(你設定的這個Deep Link)。
如何操作呢? 依據不同的廣告給予不同的短網址,並在Deep Link 放入該廣告的網址,這樣就能知道使用者從哪個廣告到達下載頁的,除了能快速判別廣告投放的效益外,也能在未來分辨最有價值的客戶大部分來自於哪裡等等。
此篇只是 Firebase Deep Link 的簡單應用,小弟也剛入門不久,如有錯誤請直接留言回覆,互相指教,感謝!