基于Firebase平臺開發(六) —— 基于Firebase Analytics的App使用率的跟蹤(一)

版本記錄

版本號 時間
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

單擊FinishSwiftPM將為您做所有事情。 在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。 它們的值可以是StringInt

當人們使用您的應用程序時,互動會觸發許多事件。 他們在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的預定義事件。 您添加名為AnalyticsParameterPaymentTypeAnalyticsParameterPriceAnalyticsParameterCurrency的預定義參數。

您可以根據用戶選擇為他們分配paymentTypetotalPrice的值。 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_personcat_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 AnalyticsAudiences功能更加強大。

它們使您能夠創建滿足特定條件的用戶組。 您可以將它們視為高級過濾選項。 它們可以放寬,也可以縮小,可以幫助您提供個性化的用戶體驗。

Firebase控制臺中打開Audiences,以查看其中已添加的一些對象:

由于您添加了預定義的購買事件,因此Firebase為您添加了Purchasers。 這就是使用預定義事件的妙處。

考慮下一個用例。

一位用戶查看了您應用中的一個或多個產品,轉到了結帳屏幕,但未完成訂單。

這些操作僅告訴您用戶打開了該應用程序,想要下訂單,但在完成之前將其刪除。 這可能意味著結帳流程出了點問題,訂單失敗或用戶關閉了該應用。

您無法確定。

您可以創建這些用戶的受眾。 為它命名并定義要記錄的事件列表。 將其視為待辦事項列表,在此列表中,您需要先完成列表中的所有項目,然后再將列表標記為已完成。

Firebase檢測到此類事件時,它將將該用戶放入指定的受眾群體中。 您可以通過吸引受眾群體來僅針對那些特定用戶來個性化該應用程序。

最后,您可以通過應用內彈出式屏幕詢問這些用戶為什么還沒有完成訂單。 您可以從屬于該受眾群體的用戶那里得到具體的反饋,而不必煩擾其他用戶。

您認為Google從何處獲得這些個性化廣告? 您的朋友給您發送了有關他前往巴哈馬群島的消息,現在,在您的余生中,您到處都會看到巴哈馬群島。

您只了解了Firebase Analytics可以執行的一小部分。 探索更多選擇。 例如,嘗試創建一些Audiences

如果您不知道從哪里開始,那么Firebase Official Documentation就是一個很好的起點。

并且一定要查看Firebase Tutorial: Getting Started,以了解有關Firebase如何為您的應用程序增強功能的更多信息。

后記

本篇主要講述了基于Firebase AnalyticsApp使用率的跟蹤,感興趣的給個贊或者關注~~~

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容