版本记录
版本号 | 时间 |
---|---|
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
使用率的跟踪,感兴趣的给个赞或者关注~~~