版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2021.02.21 星期日 |
前言
Firebase是一家實時后端數據庫創業公司,它能幫助開發者很快的寫出Web端和移動端的應用。自2014年10月Google收購Firebase以來,用戶可以在更方便地使用Firebase的同時,結合Google的云服務。Firebase能讓你的App從零到一。也就是說它可以幫助手機以及網頁應用的開發者輕松構建App。通過Firebase背后負載的框架就可以簡單地開發一個App,無需服務器以及基礎設施。接下來幾篇我們就一起看一下基于Firebase平臺的開發。感興趣的看下面幾篇文章。
1. 基于Firebase平臺開發(一) —— 基于ML Kit的iOS圖片中文字的識別(一)
2. 基于Firebase平臺開發(二) —— 基于ML Kit的iOS圖片中文字的識別(二)
3. 基于Firebase平臺開發(三) —— Firebase基本使用簡介(一)
4. 基于Firebase平臺開發(四) —— Firebase基本使用簡介(二)
5. 基于Firebase平臺開發(五) —— Firebase基本使用簡介(三)
開始
首先看下主要內容:
了解
Firebase Analytics
如何幫助您跟蹤iOS應用的使用情況。內容來自翻譯。
接著看下寫作環境:
Swift 5, iOS 14, Xcode 12
接著就是正文了。
這一天終于來了。您的Xcode
項目正在構建中,并且您已將應用程序提交到App Store
。
現在怎么辦?您在Twitter
上吹牛,并請您的關注者安裝您的應用程序。
幾天后,您會收到第一次評論。名為RayFromVA
的人給了您兩星評語,并帶有注釋:It could be better。
那是什么意思?
您打開您的應用程序。一切都按照您的預期進行。您怎么知道哪個更好?
您可以賄賂家人給您評論,但是Firebase Analytics
提供了更好的解決方案。
在此Firebase Analytics
教程中,您將構建Cocoabucks
,這是一個用于新建咖啡鏈的移動店面。
在此過程中,您將學習如何:
- 使用
Swift Package Manager
使用SwiftUI
設置Firebase SDK
- 記錄自定義和預定義事件
- 使用自定義用戶屬性分析用戶行為
- 使用受眾群體提供個性化的用戶體驗
多年來,Google Analytics for Firebase
經過多次迭代是毫無價值的。谷歌在2019年將其重命名為Google Analytics
,但每個人仍然稱其為Firebase Analytics
。
注意:本教程假定您了解
SwiftUI
的基礎知識。如果您不熟悉SwiftUI,請先查看SwiftUI: Getting Started tutorial。您必須安裝Xcode 12
才能遵循本教程。Firebase Analytics
僅在Xcode 12
或更高版本上與SwiftPM
一起使用。
打開入門項目,在starter
中打開Cocoabucks.xcodeproj
。 構建并運行以查看運行中的應用程序:
在Xcode
中,查看主要文件:
- products.json包含應用程序的數據。
- Cocoabucks.swift是應用程序的入口點。 所有生命周期方法都在這里。
-
ProductListView.swift是應用程序的主視圖,并顯示產品列表。 它有兩個按鈕。 一種是分析問卷,您將用于分配自定義用戶屬性。 另一個是購物車
(cart)
按鈕,可顯示結帳視圖。 - ProductDetailView.swift顯示有關所選產品的詳細信息。 添加到購物車將產品添加到購物車。
- CheckoutView.swift是用于顯示付款信息并確定訂單的表單。
注意:如果您不熟悉移動分析的概念,請查閱Getting Started with Mobile Analytics。
要在您的應用程序中使用Firebase Analytics
,您首先需要設置一個Firebase
項目。
Setting Up Firebase
轉到Firebase主頁,然后單擊Get Started
。
如果您未使用Google帳戶登錄,請輸入您的憑據。 如果您沒有帳戶,請創建一個新帳戶create a new one。
然后,您會看到Firebase Console
的歡迎屏幕:
1. Creating a Firebase Project
免費創建Firebase
項目。 單擊Create a project
。 將會出現一個新窗口:
為您的項目命名Cocoabucks
。 接受Firebase
條款,然后單擊Continue
。
Firebase
會要求您將Google Analytics
(分析)添加到Firebase
項目中。
保持啟用狀態,然后單擊Continue
。
注意:如果您已經有
Firebase
項目,則其中某些步驟可能不會出現,因為您已經為帳戶進行了選擇。
最后一步是設置您的分析位置。
設置位置并不意味著Google
不會跟蹤其他國家/地區的用戶。 它只想知道您的組織機構或住所。
接受數據共享條款,然后單擊Create project
。
點擊Continue
,稍等片刻,您將看到項目的控制臺。
Adding Firebase to Xcode
Firebase Console
是您項目的Firebase
服務的容器。 您將使用它來查看應用程序的分析。 單擊Get started by adding Firebase to your app
下面的圓圈iOS
按鈕。
1. Registering the App
將會打開一個新表格,要求您注冊應用并輸入應用的bundle ID
:
要設置您應用的bundle ID
,請先回到Xcode。 選擇Cocoabucks.xcodeproj
。 然后選擇target
并選擇Signing & Capabilities
。
接下來,在小組Team
下拉菜單下設置您的Apple Developer
帳戶。 最后,按照以下格式com.[your name].cocoabucks
為您的應用設置Bundle Identifier
。 請務必在您的姓名中使用所有小寫字母,并且不要包含空格。
注意:不確定如何在
Xcode
中設置您的個人團隊和bundle ID
? 在App Store
教程中查看Your First App in the App Store。
從Xcode復制您的bundle ID
。 返回Firebase
并將其粘貼iOS Bundle ID
下。
點擊Register app
。
2. Downloading the Config File
接下來,下載GoogleService-Info.plist
。 按照概述的說明將其拖到您的Xcode項目中。
當Xcode提示時,如果需要,請選中Copy Items if needed
。
單擊Next
,您將看到提示Add Firebase SDK to your Xcode
。
3. Adding Firebase SDK Using SwiftPM
默認情況下,Firebase
告訴您使用CocoaPods
添加SDK
:
在本教程中,您將使用SwiftPM
安裝Firebase SDK
。
注意:在撰寫本文時,
Firebase
支持通過Beta
中的SwiftPM
安裝。 存在一些已知問題,如果嘗試在設備上運行該應用程序,則可能會出錯。 如果您這樣做,請參考此辦法workaround進行修復。
打開Xcode并轉到File ? Swift Packages ? Add Package Dependency
:
將打開一個新窗口,提示您輸入軟件包存儲庫URL。 將https://github.com/firebase/firebase-ios-sdk
復制并粘貼到其中:
點擊Next
。 您會看到一個新窗口,要求您選擇package
選項:
由于這些是推薦的選項,因此一切都保持原樣。 點擊Next
。
現在,SwiftPM
將獲取所有可用庫的列表。 完成后,選中FirebaseAnalytics
:
單擊Finish
,SwiftPM
將為您做所有事情。 在Document Outline
中,您會看到它向您的項目添加了Swift Package Dependencies
。 Xcode可能需要一段時間才能處理所有內容:
現在返回Firebase Console
,然后單擊Next
。
4. Initializing Firebase in Xcode
要在應用啟動時連接Firebase
,您需要在主類中對其進行初始化:
Firebase
文檔尚未解決SwiftUI
或新的App
生命周期。 它具有UIKit
的說明。 您將學習如何在SwiftUI中進行操作。
返回Xcode
并打開Cocoabucks.swift
。 將以下內容添加到文件頂部:
import Firebase
接下來,在// Initialize Firebase
下面添加:
init() {
FirebaseApp.configure()
}
應用程序啟動完成后,上面的代碼將啟動Firebase
服務。
在構建項目之前,您需要添加一些其他內容,以避免從Xcode收到錯誤或警告。
注意:請確保您不跳過此步驟。 如果您這樣做,則
Analytics
(分析)將無法正常工作。
5. Editing Build Settings
單擊Document Outline
中的Cocoabucks
。 選擇target
,然后在Build Settings
下找到Other Linker Flags
。 在里面添加-ObjC
:
構建并運行。 您的應用已在后臺設置,并且已經在收集一些默認分析。
返回瀏覽器中的Firebase
控制臺,然后單擊Next
。 然后單擊Continue to console
。 現在,您已將iOS應用添加到Firebase
項目中。
Firebase Analytics Events
您已經完成了創建Firebase
項目并向其中添加iOS應用的過程。 您尚未添加任何代碼,但Firebase
已經在收集一些默認分析。
與大多數其他服務一樣,Firebase
使用圍繞events
構建的系統:
每個事件都有一個name
(如String
)和可選的參數字典Dictionary
。 它們的值可以是String
或Int
。
當人們使用您的應用程序時,互動會觸發許多事件。 他們在Firebase
控制臺中被跟蹤,合并并報告給您。
默認情況下,Firebase
會在任何應用程序中收集一些基本交互:
- 應用程序使用的
language
- 如果應用崩潰,則為
app_exception
- 應用更新到新版本時的
app_update
- 用戶首次啟動應用程序時的
first_open
- 屏幕切換時發生
screen_view
您可以在文檔Firebase Documentation中找到這些事件的完整列表。 您需要自己在應用程序中記錄其他大多數事件。
1. Viewing Events in Dashboard
打開Firebase
控制臺,然后轉到Analytics ? Dashboard
:
注意:大約需要24小時才能在信息中心中查看所有分析。 您不必等待繼續本教程,但請注意,其中不會看到任何分析。
相反,
Firebase
具有DebugView
,您可以在其中查看近實時收集的分析。 您會在幾個部分中看到它的實際效果。
檢查儀表板以查看如何收集和呈現不同的事件。 您可以查看您的應用程序的穩定性,或過去30分鐘內的用戶數量。
2. Adding Predefined Events
Firebase
建議您在應用程序中使用預定義的事件(predefined events)
。 它們后面的上下文已經定義,您可以看到一些額外的信息。
您正在構建一個電子商務應用程序,其中包含適合該類型的預定義事件的簡潔列表。 您可以在Events: Retail/E-commerce list列表中找到它們。
這些事件之一就是購買。 您將其中一些添加到結帳流程中。
返回Xcode
并打開CheckoutView.swift
。 將以下內容添加到文件頂部:
import Firebase
您將添加一個用于完成訂單的預定義事件。 記錄該事件的最佳時間是用戶點擊Confirm order
。
將Confirm order
動作中的// TODO 1
替換為:
FirebaseAnalytics.Analytics.logEvent(AnalyticsEventPurchase, parameters: [
AnalyticsParameterPaymentType: Self.paymentTypes[paymentType],
AnalyticsParameterPrice: totalPrice,
AnalyticsParameterSuccess: "1",
AnalyticsParameterCurrency: "USD"
])
Firebase Analytics
使用logEvent(_:parameters :)
記錄所有類型的事件。
在上面的代碼中,您記錄了名為AnalyticsEventPurchase
的預定義事件。 您添加名為AnalyticsParameterPaymentType
,AnalyticsParameterPrice
和AnalyticsParameterCurrency
的預定義參數。
您可以根據用戶選擇為他們分配paymentType
和totalPrice
的值。 currency
參數只有一個值,因此您給它提供了默認值USD
。
當您開始輸入AnalyticsEvent
時,Xcode將顯示所有可用選項的列表:
您可以通過查看事件和參數的前綴來區分它們。 事件以AnalyticsEvent
為前綴,而參數以AnalyticsParameter
開頭。
構建并運行。 在購物車中添加一些物品。 然后查看您的購物車并選擇Place Order
。
最后,選擇Confirm Order
。 每當用戶在您的應用中確認訂單時,Firebase
都會記錄購買事件。
3. Adding Custom Events
您可以創建自定義事件來分析尚未定義的事件,也可以更改現有事件。 跟蹤屏幕是應用程序開發人員在其應用程序中跟蹤的最常見事件之一。
Firebase
會跟蹤一個名為AnalyticsEventScreenView
的默認事件,但會為其分配一個通用類名稱。
將NotifyingMulticolumnSplitViewController
作為屏幕名稱并不能告訴您太多。
在這種情況下,最好創建一個自定義事件。
在Xcode
中,打開ProductDetailView.swift
并將以下內容添加到文件頂部:
import Firebase
接下來,將//.onAppear()
中的// TODO 2
替換為:
// 1
FirebaseAnalytics.Analytics.logEvent("detail_screen_viewed", parameters: [
// 2
AnalyticsParameterScreenName: "product_detail_view",
// 3
"product_name": product.name
])
下面進行細分:
- 1) 您可以使用
logEvent(_:parameters :)
記錄自定義和預定義事件。 唯一的區別是,您選擇使用的是自定義名稱還是預定義名稱。 因此,您可以使用諸如detail_screen_viewed
之類的描述性名稱。 - 2) 有一個預定義的參數
AnalyticsParameterScreenName
,因此您將其添加到參數Dictionary
中。 - 3) 最后,添加一個自定義參數并將其命名為
product_name
。 將當前產品的名稱分配為該參數的值。
您可以根據自己的喜好混合并匹配自定義事件和預定義事件以及參數。 由于您的事件名稱不得超過40
個字符,因此請保持簡短且與眾不同的名稱。
構建并運行。 現在,每次詳細信息視圖出現在手機屏幕上時,Firebase
都會記錄您的自定義事件。
現在是時候查看一些分析工作以及您的應用在后臺發生了什么。
4. Enabling DebugView
在開發應用程序時,在編寫代碼時查看后臺發生了什么會很有幫助。 在這種情況下,您想查看是否正在記錄事件。 Firebase
有一個名為DebugView
的工具。
首先,您需要啟用它。 在Xcode
中,轉到Product ? Scheme ? Edit Scheme
。 在Run
事件中,選擇Arguments
。
在Arguments Passed On Launch
中,單擊+
,然后輸入-FIRAnalyticsDebugEnabled
。
確保在開始處包含破折號。
關閉對話框。 構建并運行。
Xcode
控制臺中會有很多代碼。 在各行中的某處,您會看到類似以下的條目:
啟用調試模式后,您將看到多個事件,并且Xcode控制臺將快速填充。
幾乎實時發送分析數據并不是生產中的典型行為。
為了考慮用戶的電量,Firebase Analytics
僅在以下情況下發出分析數據:
- 它已經存在了一個多小時了。
- 觸發轉換事件。
- 該應用程序進入后臺。
注意:啟用調試模式是因為在本教程的其余部分中將使用它。 您可以隨時通過將啟動時傳遞的參數更改為
-noFIRAnalyticsDebugEnabled
來禁用調試模式。 然后,由于啟用了調試模式,因此將您的應用程序刪除并重新安裝在模擬器中,因為它已保存到磁盤。
5. Viewing Events in DebugView
打開Firebase
控制臺,然后在左窗格的Analytics
(分析)下,單擊DebugView
。
構建并運行。 訂購一些餅干。 當您點擊確認訂單(Confirm Order)
時,時間軸中將出現一個事件。
事件可能需要一段時間才能顯示,但是幾秒鐘后,您會在屏幕上看到它們:
在右側,您會看到最近30分鐘內記錄的事件列表。 點擊事件名稱以查看其所有屬性:
單擊x
退出視圖。
6. Viewing Events in the Firebase Console
盡管在開發時調試模式很有用,但您更有可能在Firebase
控制臺左窗格的Events
下查看數據集:
請注意,最多可能需要24小時才能顯示事件。
此報告顯示了來自您所有iOS和Android應用程序的分析數據。
大公司通常有專門的團隊來跟蹤和分析。在一個應用程序中,可能會跟蹤數百個事件,具體取決于最終目標。
當您擁有足夠的數據并且要進行認真的深入分析時,可以將數據導出到Google數據倉庫服務BigQuery中。本教程沒有介紹BigQuery
,但是如果您的應用跟蹤很多,那么值得進一步研究該服務。
User Properties and Audiences
雖然看到數據收集很好,但是有時您希望將其分為更特定的用戶細分。
很高興看到有人在造訪您的應用程式內商店,但這些人是誰?
他們是新用戶嗎?狗主人?加拿大人?
知道您的用戶是誰,可以使您更輕松地更詳細地分析數據。
1. Filtering With User Properties
默認情況下,Firebase Analytics
為您提供一些細分。您可以按設備類型,性別,國家/地區等過濾任何特定事件。
打開Firebase Console
控制臺并創建一個新的過濾器。單擊儀表板左上方的Add Filter
。選擇要過濾的用戶屬性,比如所有你的iPhone
用戶:
通常,您可能需要更具體的數據。 為此,您可以創建自定義用戶屬性。
您可以通過定義鍵值對來添加自定義用戶屬性。
將用戶屬性分配給用戶后,此后的所有事件均具有與該用戶屬性相關聯的事件。
您可以定義多個用戶屬性,但是如果您想簡化生活,可以將它們保留為少量離散值。 事件和用戶屬性太多,只會使您更難跟蹤誰做了什么,誰是誰。
您的營銷團隊有一個理論,貓用戶比狗用戶更有可能進行應用內購買。 他們想用數據備份該聲明。 這聽起來像是自定義用戶屬性的工作。
2. Adding Custom User Properties
是時候在主屏幕的左側調查問卷按鈕上添加一些功能了。
構建并運行。 當您點擊左上角的鼻子按鈕時,會彈出警報,詢問您是貓用戶還是狗用戶:
用戶回答問卷后,便會為其分配一個自定義用戶屬性。 由于截止日期很緊,因此請確保模態窗口上沒有退出按鈕。
打開ProductListView.swift
并將以下內容添加到文件頂部:
import Firebase
直接添加用戶屬性。
您已經設置了alert view
,因此您要做的就是向每個選擇按鈕添加一個用戶屬性。
在視圖主體的底部,找到alert
修改器。
您會看到“狗”和“貓”按鈕都為空。
在主要按鈕或貓按鈕的動作內,將// TODO 3
替換為:
FirebaseAnalytics.Analytics.setUserProperty(
"cat_person",
forName: "dog_or_cat_person")
對輔助按鈕或狗按鈕執行相同的操作。 將// TODO 4
替換為:
FirebaseAnalytics.Analytics.setUserProperty(
"dog_person",
forName: "dog_or_cat_person")
您可以使用setUserProperty(_:forName :)
設置用戶屬性。 給它自定義名稱dog_or_cat_person
和兩個值:dog_person
和cat_person
。
構建并運行。 打開調查表并選擇答案。
在Xcode控制臺的某個位置,打開了調試視圖,將出現新行:
它告訴您的信息不多,只是您已設置了用戶屬性。 玩應用程序并觸發不同的事件。
3. Viewing User Properties in DebugView
打開Firebase
控制臺,然后單擊DebugView
。 您會看到以橙色文字記錄的新用戶屬性:
如果在設置用戶屬性后記錄了其他事件,則每個事件都會分配一個用戶屬性。
您必須先在Firebase
控制臺中創建一個事件,然后才能根據用戶屬性的值過濾掉這些事件。
仍在Firebase
控制臺中,在左窗格中單擊User Properties
。 然后單擊Create your first user property
。
從Xcode
復制并粘貼dog_or_cat_person
。 最好復制并粘貼它,因為添加用戶屬性后就無法重命名或刪除它。 另外,自定義用戶屬性的數量上限為25
個。
提供說明,然后單擊Create
。
從那時起,當Firebase
控制臺記錄新事件時,您將能夠通過自定義用戶屬性的值對其進行過濾。
那誰贏了? 貓用戶會買更多的餅干嗎?
4. Tailoring User Experiences with Audiences
Firebase Analytics
的Audiences
功能更加強大。
它們使您能夠創建滿足特定條件的用戶組。 您可以將它們視為高級過濾選項。 它們可以放寬,也可以縮小,可以幫助您提供個性化的用戶體驗。
在Firebase
控制臺中打開Audiences
,以查看其中已添加的一些對象:
由于您添加了預定義的購買事件,因此Firebase
為您添加了Purchasers
。 這就是使用預定義事件的妙處。
考慮下一個用例。
一位用戶查看了您應用中的一個或多個產品,轉到了結帳屏幕,但未完成訂單。
這些操作僅告訴您用戶打開了該應用程序,想要下訂單,但在完成之前將其刪除。 這可能意味著結帳流程出了點問題,訂單失敗或用戶關閉了該應用。
您無法確定。
您可以創建這些用戶的受眾。 為它命名并定義要記錄的事件列表。 將其視為待辦事項列表,在此列表中,您需要先完成列表中的所有項目,然后再將列表標記為已完成。
當Firebase
檢測到此類事件時,它將將該用戶放入指定的受眾群體中。 您可以通過吸引受眾群體來僅針對那些特定用戶來個性化該應用程序。
最后,您可以通過應用內彈出式屏幕詢問這些用戶為什么還沒有完成訂單。 您可以從屬于該受眾群體的用戶那里得到具體的反饋,而不必煩擾其他用戶。
您認為Google
從何處獲得這些個性化廣告? 您的朋友給您發送了有關他前往巴哈馬群島的消息,現在,在您的余生中,您到處都會看到巴哈馬群島。
您只了解了Firebase Analytics
可以執行的一小部分。 探索更多選擇。 例如,嘗試創建一些Audiences
。
如果您不知道從哪里開始,那么Firebase Official Documentation就是一個很好的起點。
并且一定要查看Firebase Tutorial: Getting Started,以了解有關Firebase
如何為您的應用程序增強功能的更多信息。
后記
本篇主要講述了基于
Firebase Analytics
的App
使用率的跟蹤,感興趣的給個贊或者關注~~~