对于那些使用Android应用程序,在其中启动广告系列,分析结果以及对于不再可以使用Google Analytics(分析)的人来说,这篇文章很有用。本文包含有关如何将BigQuery连接到Firebase以及如何在Data Studio中精美呈现的说明。
自2010年以来, Axmor一直在开发移动应用程序。 2016年,俄罗斯最大的航空公司之一向我们订购了其机票销售Android客户应用程序的修订和后续开发。除其他事项外,我们的任务包括开发工具,以收集定期在应用程序内部进行的促销活动的分析数据,并以可视形式提供数据。
直到2020年,我们出于这些目的以及其他应用程序都使用了Google Analytics(分析)。但是2月4日,该公司关闭了此功能,并建议改用Firebase Analytics。事实证明,该SDK(来自英语软件开发工具包)并未提供前一个工具包提供的所有可能性,特别是,它不允许构建非标准报告。
Firebase Analytics的局限性是什么以及如何处理
为了描述我们解决此问题的经验,让我们转到出售机票的应用程序。当Google Analytics(分析)关闭并替换Firebase Analytics(Firebase Analytics)时,我们面临的任务是保持对客户的用户行为分析的深度相同,从而能够快速设置新的非标准报告,同时提供美观的可视化视图。
在Google Analytics(分析)中,我们可以看到用户前往哪个屏幕,他们正在寻找票证的目的地,他们来自哪个城市,在应用程序中被授权的数量以及匿名的数量。另外,我们总是看到每个方向都购买了多少票,促销后某些方向的销售额如何增长,等等。使用Firebase Analytics,统计信息的第二部分(我们可以详细分析转换)仅以原始形式提供,这意味着我们需要一种方法来丰富转换。
我们可以在Firebase Analytics中执行以下操作:
- 设置购买活动;
- 在参数中,我们指明产品的名称-方向或其标识符和价格;
- 然后,在网站上的报告中,我们可以看到针对哪个航班售出了多少张机票,平均购买价格,总购买量。
插图中的信息与实际情况不符,为了商业秘密,所有数字均已更改 这不会影响示例的意义和清晰度,我们基本上只是说明Firebase的功能。
在这里,我们查看多少用户购买了多少票的方向。例如,客户想知道他们为叶卡捷琳堡-莫斯科航线购买了多少门票。Firebase Analytics不提供此类答案。
报告的信息内容受标准参数集的限制-我们只能看到一般情况。
数据分析的另一个示例,在我们的案例中无法在Firebase Analytics中完全实现:该应用程序显示有关航班和路线的内部广告。客户想知道随后观看广告的用户数量。当然,还有按商品,股票等分类的收入明细。同样,标准工具没有给我们这个机会。
如何使用BigQuery分析Android应用内的销售
我们开始寻找一种方法来获取不同部分中的快速可视化报告。如果需要更深入的数据分析,Google建议连接BigQuery Web服务。但是据我们了解,它就像麻雀上的大炮一样,因为该工具据称可用于大数据。但是,在对该工具进行了详细研究后,发现它甚至适用于需要分析相对少量数据但同时又非标准的任务。可以肯定的是,在过去的几年中,大数据的概念已经发生了变化-现在,在Excel中处理所有这些都不方便。
BigQuery连接
将BigQuery连接到Firebase Analytics很简单。 Google建议在几乎每个Firebase Analytics页面上执行此操作。有详细的说明。
唯一的警告是,要将BigQuery连接到事件数据,您需要切换到Firebase中的Blaze付款计划。这意味着您将在使用Firebase服务时向其收费。根据我们的经验,BigQuery服务在小型项目上谨慎使用是廉价的。
在通过BigQuery进行的免费计划中,您只能访问Crashlytics,预测,云消息传递和性能监控数据。
您需要了解,BigQuery不是Firebase Analytics的一部分。它是一项单独的Google服务,旨在处理大量数据。在这种情况下,Firebase Analytics for BigQuery是可能的数据源之一。连接BigQuery将使您能够找到相关性和更多见解。
连接后会发生什么
将BigQuery连接到Firebase Analytics之后,我们可以查看以原始格式收集的数据。我们只能访问BigQuery连接到我们的项目后收集的数据。如果您今天连接BigQuery,则可以处理从今天开始的数据,而昨天的数据则不会。
因此,我们连接了所有内容,然后转到服务的主页。我们在资源中看到了我们的项目。数据中只有一个表-
events
。 Firebase Analytics的所有数据都在此处收集。
实际上,这不是一张桌子。每天的数据被放置在一个表中使用一个名称
events_<>
,例如events_20200308
。
让我们看一下数据本身。Firebase Analytics的所有事件均记录在表中
events_*
。表中的每一行都是一个单独的事件。许多列代表事件参数:日期,设备信息,用户信息等。尽管数据显示在表中,但它并不完全是普通的。它是树结构的表格表示。以下是表格行的JSON结构示例。为简洁起见,并非所有数据都包含在结构中,但可以从中了解整体情况:
查看数据结构,您可以看到它包含:
- . , - . :
event_date
,event_timestamp
,event_name
. - -. , ,
event_params
user_properties
. — . . — --. , - -. —
device
. . —device.category
,device.operating_system
device.operating_system_version
.
尽管数据结构乍一看似乎很复杂,但仔细检查会变得更加容易。最终,我们掌握了Firebase Analytics中所有事件的信息。我们只需要从中提取所需的数据即可。
让我们尝试提出一些请求。例如,让我们显示事件的所有日期:
SELECT event_date
FROM `project_name.data_set.events_20200202`
我们将看到结果:
project_name.data_set.events_20200202
在这种情况下,是特定表的名称,该表由项目名称,数据集的名称以及包含Firebase Analytics中事件的每日表组成。也就是说,在此查询中,我们从具有2月2日事件的表中获取了事件的日期:)不是很有用,但是它将作为查询的示例。实际上,从所有可用数据中采样更为有用。在这种情况下,可以指定而不是指定table project_name.data_set.events_*
。让我们为请求添加有用性,并找出名称为的事件的日期和城市"booking_purchase"
:
SELECT geo.city, event_date
FROM `project_name.data_set.events_*`
WHERE event_name = "booking_purchase" and geo.city != ""
我们得到:
感兴趣的只是表中的特殊字段-数组。例如
event_params
。建议使用UNNEST运算符来处理此类字段。该运算符采用数组字段并将其转换为表。
让我们改进查询并显示参数值
"direction"
:
SELECT
geo.city,
event_date,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "direction") AS direction,
FROM
`project_name.data_set.events_*`
WHERE
event_name = "booking_purchase" and geo.city != ""
结果:
所以我们添加了什么。我们已经将UNNEST运算符应用于该领域
event_params
。结果,我们得到了一个表格,其中的行是事件的参数,而列是这些参数的属性。参数具有两个属性:键和值。值-与4个字段的对象:string_value
,int_value
,float_value
和double_value
。这些字段对于不同的数据类型是必需的,因为参数值可以是字符串,int,float,double。然后,通过子查询,我们取出了具有key
等于字段的参数的字符串值direction
。这就是处理表中数组字段的方式。
让我们了解一下Firebase Analytics无法提供的功能-应用中出售的每种产品的收入明细:
- 在Firebase Analytics中,我们传递了购买事件
"booking_purchase"
。 - 在其中,我们传递了两个参数:
"direction"
和"price"
。方向-产品标识符,价格-其价格。
我想知道售出了多少产品,金额是多少。查找请求的请求看起来像这样:
SELECT
direction,
count(direction) as count,
sum(price) as total_sum
FROM
(
SELECT
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = "direction") AS direction,
(SELECT value.double_value FROM UNNEST(event_params) WHERE key = "price") AS price
FROM
`project_name.data_set.events_*`
WHERE
event_name = "booking_purchase"
)
group by direction
order by total_sum desc
结果:
我们获得了所需的数据。
如何在Data Studio中呈现报表
假设某个客户想要随时进入并查看销售统计信息。您可以保存查询,并告诉客户他们可以转到BigQuery控制台,运行查询并查看结果。但是Google提供了更好的解决方案。
可以在Data Studio服务中可视化查询结果。该服务使您能够以表格,图形,图表,美观和功能的形式呈现数据,这些数据不亚于Firebase Analytics的数据。让我们看看如何做到这一点。
要创建报告,您需要转到服务的主页并创建一个新文档。选择BigQuery作为数据源:
可以从表,保存的视图或直接通过查询构建报告。后一个选项允许您使用日期参数。使用这些参数,可以按日期限制数据选择,从而优化处理的数据量。结果类似于Google Analytics(分析)和Firebase的界面-具有相同的形式和功能。该公司似乎采用了可视化方面的最佳实践,并将其公开发布:
我们添加了一个条件,以便仅针对在参数
DS_START_DATE
和之间发生的事件进行选择DS_END_DATE
。这些参数将直接从报表中传递给请求。我们创建一个报告,然后立即看到以下内容:
接下来,您可以添加日期范围选择。为此,将适当的
组件添加到表单中:
在此组件中选择的日期将直接作为参数
DS_START_DATE
和进入查询DS_END_DATE
。结果,在查看模式下,报告将如下所示:
同样,您可以在表单上添加和自定义其他组件-图形,图表,图像,文本等。之后,可以通过链接共享或提供对所需帐户的访问权限来共享报告。
BiqQuery是一个不用担心的有效工具
移动应用程序是强大的销售和营销工具,尤其是当它们采用数据驱动的方法时。您不必担心BiqQuery,并认为此工具很复杂,并且通常来说,大数据对您来说太酷了。BigQuery将您的分析部门提升到Spotify,Delivery Food和其他数据巨头的水平,并以成本的一小部分,提供每位进阶分析师在营销或营销中必须掌握的最简单的SQL,以提供其享受的相同性能。在产品中。
BigQuery的优势:
- 它配置迅速,可让您在几秒钟内处理数据。没有服务器,没有昂贵的基础架构,也没有管理员。
- , , , : , , -, CRM.
- , — .
- SQL — .
- Data Studio, .