Firebase Analytics已经升级为Google Analytics 4,详细请看Google Analytics 4相关内容。
Firebase Analytics是一款专门为APP设计的分析工具,它是Fisebase SDK的一部分,一个帮助你开发应用的移动平台,有很多的工具已经集成在Firebase SDK里面,但这一节只是关注Firebase Analytics的部署。
这篇文章的目的是教你怎么在APP上部署和使用Firebase Analytics,同时将数据发送给GA的属性。
背景
Firebase Analytics:使用Firebase需要付出什么?
根据官方endangered,使用Firebase去收集用户使用你APP的数据是不收费的,也没有数据限制,只对事件的类型有显示,最多可以有500个,这对大部分的用户都是足够的。
注意:Firebase的数据是基于events,没有屏幕的概念。当触发的时候,你需要将日志事件记录连同其他一些参数信息发给Firebase,这个是与Google Analytics跟踪APP最大的不同,你仍然可以通过Firebase和GTM去跟踪。
Google Tag Manager
Firebase使用的数Google Tag Manager的数据层,可以和Google Analytics直接有hits交互,当事件被Firebase获取,GTM也可以收集到,发送给Google Analytics,这意味着有可能提供汇总的数据报告,能更好的了解用户的网站行为。
注意:这些功能对于原始APP是没有问题,但是对于混合app,例如使用PhoneGap APP,你可能需要做一些额外的工作
具体设置步骤
这里我们只关注firebase设置和接受事件的几个基本步骤,跟用Google analytics跟踪屏幕和事件类似。firebase提供了新的功能,这些不会包含在这篇文章中,如果你们有兴趣去了解,可以查看官方文档。
设置Firebase账户
通过下面的几个步骤可以给APP建立一个Firebase账户。
如果你有安卓和苹果两个版本的APP,你可以用两个Firebase账户也可以使用同一个Firebase账户,如果你想用同一个Firebase账户,你需要在先设置一个项目配置,然后在新建第一个项目配置,这就可以实现跟踪两个app的数据,例如
开始设置
如果你已经有应用的包名或Bundle Id,那就可以开始设置,访问console.google.com并且新建一个醒目:
一旦你新建一个项目,你就会看到如下图的页面,页面的左边是显示Firebase的功能,例如崩溃报告,分析,在这里我们使用的是Firebase Analytics。
在中心区域,你可以看到选项添加Firebase去你的ios应用,添加Firebase去你的安卓应用和添加Firebase去你的网页应用,点击与你app最接近的类型,然后你会看到提示要求你输入包名或Boundle
获取配置文件
一旦你完成了包名或boundle id的填写,你会获得一个配置文件,这个文件是需要部署在app里面的。整个过程都会有一些提示指引的,按照提示完成完成每一个步骤。
点击左侧的导航栏中的analytics,你将会看到一系列的报告,比如仪表盘,事件,受众等:
还有其他一些数据可以收集,但是今天这一篇主要讲解如何部署。
部署Firebase SDK
详细的部署过程你需要看一些文档:
需要注意在底部有个额外的配置可以设置,例如崩溃报告,这根据你的需要去设置。
部署GTM SDK
正如前面提到的,你可以通过GTM去收集Firebase的数据并且将数据发送给GA,这样可以同时使用两个报告的数据。
首先,需要确保已经给APP添加了GTM的容器,进入http://tagmanager.google.com,给APP新建一个容器,选择与你APP最为相近的类型:
一旦你新建好,根据下面的两个文档去部署GTM的SDK到你的APP:
- Android: https://developers.google.com/tag-manager/android/v5/#add-gtm-to-project
- iOS: https://developers.google.com/tag-manager/ios/v5/#add-gtm-to-project
如果你留意到前面的提示,你会看到一个获取事件的例子,这里有个注意点:
Google Tag Manager uses Firebase Analytics’ events, parameters, and user properties to trigger and build tags you’ve configured in the Google Tag Manager web interface. In this sense, your Firebase Analytics implementation acts as your data layer.
这个的关键是GTM是Firebase是工作的,如果你只是使用GTM和Firebase,那么你完全可以忽略这段话,这段话的主要点在GTM同时向Firebase和GA发送数据的。、
获取Firebase 事件
你可能会好奇开发获取之前是怎样的,如果你想获取屏幕,你必须只是被看到的屏幕的名字,例如,实现将所有的屏幕列出并标记详细的信息是非常有必要的。
下面看一个安卓的例子:
<span style="font-size: 12pt;">Bundle params = new Bundle(); params.putString("image_name", name); params.putString("full_text", text); mFirebaseAnalytics.logEvent("share_image", params); </span>
在这个例子中,share_image是自定义事件名,而image_name和full_text参数信息。Firebase里面自动跟踪了部分时间,比如first_open,如果你想了解更多可以看:https://support.google.com/firebase/answer/6317485?hl=en&ref_topic=6317484
如果你想了解更多关于获取event的过程,这里还有一些更难的文档:
Android: https://firebase.google.com/docs/analytics/android/events
iOS: https://firebase.google.com/docs/analytics/ios/events
如果你已经获取了相关事件,你可以再firebase analytics里面看到,这些信息会出现在事件报告里面:
你不需要在GTM容器里面配置tags,如果你想将这些数据传递给GA,那就需要在GTM配置对应的tag
额外的:发送屏幕和事件数据到Google Analytics
正如我所说,Firebase获取事件记录将会出现在Firebase Analtyics,你不需要在GTM配置额外得信息,但是如果你想将这些数据发送给Google Analytics,你就需要获取一些变量和在GTM中配置一些tag。
Google Analytics屏幕跟踪
下面举个例子,如果通过事件跟踪屏幕:
<span style="font-size: 12pt;">Bundle params = new Bundle(); params.putString("screen_name", name); mFirebaseAnalytics.logEvent("screenview", params); </span>
在GTM中,我们可以够获取上面信息,然后将数据发送给Google Analytics,下面我们就一些来配置变量,触发器和代码。
最后新建一个Google Analytics代码,你可以将这部分数据发送到新的GA property去。
这样你就完成了屏幕的跟踪,发布到线上后就可以收集数据,可以看到:
Google Analytics事件跟踪
现在我们已经跟踪到了屏幕,接下来看看如何设置事件跟踪,这里以IOS作为例子,如下代码:
<span style="font-size: 12pt;">FIRAnalytics.logEventWithName("search", parameters: [ "search_term": search_term, "screen_name": screen_name ]) </span>
跟前面第一步类似,用事件参数变量接受firebase的时间:
新建另一个事件参数,搜索的内容将作为event action:
新建一个触发器,触发条件为事件名为search:
最后设置一个新的Google Analytics代码:
疑难点
现在我们已经设置好了这些代码,你可能会有疑问:我们要怎么测试的呢?在APP上测试Firbase和Google Analytics是一个很大的挑战,在这里我推荐用一些工具来debug:
- Charles Proxy,Fiddler
- Android Studion console
- Xcode Debug Console
- GA里的实时
最后
我希望这个已经足够清晰,能够帮助你配置和使用firebase analytics,Firebase里还有很多其他的功能,这些将在后面在做介绍。
需要记住的是,如果你的app是混合app,你需要更复杂的一些配置。
注意,现在再GA和Firebase 账户关联起来,然后可以再GA里面直接看Firebase的报告了:
来源:http://www.lunametrics.com