首页 > 其他分享 >将Google Analytics for Firebase数据导入BigQuery

将Google Analytics for Firebase数据导入BigQuery

时间:2023-09-12 15:03:19浏览次数:52  
标签:dim Google BigQuery Analytics Firebase 数据


点击打开英文链接


发送反馈

将Google Analytics for Firebase数据导入BigQuery

本教程介绍了如何将Google Analytics for Firebase中的事件日志导出到Google BigQuery中,以便深入分析数据。

Firebase 是一个构建移动应用程序的平台,其中包括数据和文件存储,实时同步,身份验证等功能。 Google Analytics for Firebase会 跟踪您的Firebase功能的使用情况,并提供关于应用使用情况和用户参与度的信息。

BigQuery 是一个PB级分析数据仓库,您可以使用它近乎实时地在大量数据上运行类似SQL的查询。

将您的Google Analytics数据导入BigQuery有以下几个优点:

  • 自定义事件参数 - 在Google Analytics中,您可以定义要跟踪的自定义事件和参数。通过将数据导入BigQuery,您可以通过标准和自定义事件参数进行丰富的分析。
  • 来自多个来源的汇总数据 -如果您在多个位置(例如Google Analytics 360,Google Analytics for Firebase和由移动后端服务收集的自定义分析)跟踪用户事件,则可以将来自所有这些来源的数据导入到BigQuery中以执行分析,提供您的事件数据的完整图片。
  • 访问原始数据 - Google Analytics仪表板提供了事件数据的汇总视图。如果您将数据导入BigQuery,则可以访问原始数据值,并且在分析事件的方式方面具有更大的灵活性。您可以访问所有25个事件参数和用户属性。
  • 访问控制 - 当您将数据导出到BigQuery时,您拥有该数据,并且您可以使用BigQuery ACL来管理项目和数据集的权限,从而可以在无需访问Firebase应用程序的情况下共享数据。
  • 归档冷数据 -如果您需要保留原始分析数据,则可以将数据提取到BigQuery中,然后将其归档到Google云存储或另一个存储位置,以获得廉价的长期存储。

目标

本教程介绍如何:

  • 将Google Analytics for Firebase链接到BigQuery。这会导致Google Analytics每天将事件日志导出到BigQuery。
  • 将代码添加到将事件日志发送到Google Analytics的iOS或Android应用程序。
  • 查询存储在BigQuery中的分析数据。

成本

要将Google Analytics数据传输到BigQuery,您必须将Firebase项目升级到Blaze服务级别。有关更多信息,请参阅Firebase定价

另外,在BigQuery中存储和查询数据会产生费用。有关更多信息,请参阅 BigQuery定价

在你开始之前

  1. 创建一个Firebase项目。
  2. 在Cloud Platform控制台中,选择您的Firebase项目。启用BigQuery API。
    启用API
  3. 构建将事件发送到Google Analytics的应用程序。示例应用程序适用于 iOS, Android和 C ++

将Google Analytics数据链接到BigQuery

将您的Firebase应用连接到BigQuery可让您访问您的原始非抽样事件数据以及您的所有参数和用户属性。在将Firebase应用连接到BigQuery项目后,Google Analytics每天将您的事件数据导出到相应的BigQuery数据集。

此外,还会为当天收到的事件导入表格。该表被命名app_events_intraday_YYYYMMDD。某些字段未在日内表中填充,有关更多信息,请参阅 BigQuery导出架构

您可以查询,导出或加入包含外部数据的数据集,以执行自定义分析。

将您的Firebase项目链接到BigQuery

要将您的Firebase项目链接到BigQuery,请执行以下操作:

  1. 打开 Firebase控制台 ,然后选择该项目。
  2. 点击设置齿轮,然后选择项目设置。
  3. 选择集成选项卡,然后单击BigQuery 卡上的链接。
  4. 在BigQuery对话框中,验证是否已启用Google Analytics。
  5. 选择是否将广告标识符作为BigQuery导出的一部分。这样做可以提供更丰富的数据,但会在BigQuery中产生额外的存储和查询成本。
  6. 点击链接到BigQuery。

将项目链接到BigQuery后,首次每天导出事件时,会在关联的BigQuery项目中创建相应的数据集。每天,每个链接应用程序的原始事件数据将填充相关数据集中的新表格。

注意:随着日常表格的积累,您可能希望将旧表格迁移到云端存储,或者如果不再需要这些数据,请将其从BigQuery中删除。这可以降低您的数据存储成本。

管理哪些应用向BigQuery发送数据

默认情况下,当您将Firebase项目链接到BigQuery时,该项目中的所有应用都会链接到BigQuery以及稍后添加到项目中的任何应用。

要配置哪些应用向BigQuery发送数据,请执行以下操作:

  1. 打开 Firebase控制台 ,然后选择该项目。
  2. 点击设置齿轮,然后选择项目设置。
  3. 选择集成选项卡,然后单击BigQuery 卡上的管理。
  4. 要让应用停止向BigQuery发送数据,请关闭该应用旁边的开关。
  5. 点击停止导出确认。

从BigQuery中取消关联Firebase项目

从BigQuery中取消项目链接:

  1. 打开 Firebase控制台 ,然后选择该项目。
  2. 点击设置齿轮,然后选择项目设置。
  3. 选择集成选项卡,然后单击BigQuery 卡上的管理。
  4. 在BigQuery详细信息下,单击取消链接项目。
  5. 点击取消链接BigQuery进行确认。

使用BigQuery查询Google Analytics的Firebase数据

将数据加载到BigQuery后,您可以使用BigQuery在其上运行类似SQL的查询。有关更多信息,请参阅 BigQuery文档中的查询数据

BigQuery提供了一个Web UI,它可以使您的数据运行查询与填写表单并单击运行查询一样简单。有关更多信息,请参阅BigQuery文档中的使用Web UI快速入门

以下是您可以在Google Analytics数据上运行的查询示例。这些查询会生成Google Analytics仪表板中不可用的报告。

查询自定义事件参数

在Google Analytics中,您可以为事件设置自定义参数键和值。密钥被分类为String和值能够具有的类型 StringLongDouble

以下查询演示如何生成汇总自定义事件值以提供业务洞察力的报告。

例1:

一位手机游戏开发人员想知道她的游戏的哪个级别触发了游戏中最多的购买流程。为此,她将以下自定义事件调用添加到当玩家触发游戏内购买流程时运行的游戏。

在此示例中,自定义事件的名称(trigger_purchase其中包含一个键)level指定一个整数值,该整数值表示玩家触发购买时所处的级别。

IOS - OBJECTIVE C

IOS - SWIFT

ANDROID - JAVA


[FIRAnalytics logEventWithName:@"trigger_purchase"
                 parameters:@{
                               @"level": 3,
 }];

BigQuery中为此自定义事件生成的条目如下:

领域


event_dim.name

trigger_purchase

event_dim.params.key

水平

event_dim.params.value.int_value

3

为了确定每个级别的购买次数,她编写了一个查询,报告trigger_purchase事件计数的分布,并按用户当前所在的级别进行分组。此查询在2015年1月1日至2016年12月31日之间运行。


SELECT COUNT(event_dim.name) as NumberOfPurchases,
 event_dim.params.value.int_value as level
 FROM
 TABLE_DATE_RANGE(com_game_example_ANDROID.app_events_, TIMESTAMP('2015-01-01'), TIMESTAMP('2016-12-31'))
 WHERE event_dim.name = 'trigger_purchase'
 GROUP BY level

例2:

另一位开发同一款游戏的开发人员想要确定哪些角色类别击败了大多数对手。为此,他在球员击败对手时将以下自定义事件记录添加到游戏中。

在这个例子中,自定义事件的名称是defeat_opponent,并且它有一个键character,它指定一个字符串值来指定对手的名字。

IOS - OBJECTIVE C

IOS - SWIFT

ANDROID - JAVA


 

[FIRAnalytics logEventWithName:@"defeat_opponent"
                 parameters:@{
                               @"character": "Hercules"
 }];

BigQuery中为此自定义事件生成的条目如下所示:

领域


event_dim.name

defeat_opponent

event_dim.params.key

字符

event_dim.params.value.string_value

大力神

为了找到最成功的角色类,他编写了一个查询,该角色计算角色类参与失败对手自定义事件的次数。


 

SELECT COUNT(event_dim.name) as DefeatEvents,
 event_dim.params.value.string_value as CharacterClass
 FROM
 TABLE_DATE_RANGE( com_game_example_ANDROID.app_events_, TIMESTAMP('2015-01-01'), TIMESTAMP('2016-12-31'))
 WHERE event_dim.name = 'defeat_opponent'
 AND event_dim.params.key = 'character'
 GROUP BY CharacterClass
 ORDER BY DefeatEvents desc

查询用户事件

除查询自定义事件外,您还可以生成汇总用户事件值以提供业务洞察力的报告。

例3:

应用程序开发人员希望使用 Firebase云消息传递 向最近未使用该应用程序的用户发送重新参与推送通知。要构建通知的联系人列表,开发人员使用以下查询来查找过去一年中未在前两周访问过该应用的用户。此查询返回iOS和Android用户以及用户最初打开应用程序的日期。

在下面的查询中,该user_dim.user_id字段包含开发人员通过调用setUserId API 在应用程序中设置的用户标识 。设置此值后,Google Analytics会将其保留并将其包括在与该用户关联的所有未来行中。该值不会追溯添加到过去的行。

如果开发者没有设置user_dim.user_id 标识符,他们可以使用app_info.app_instance_id包含由Firebase生成的默认标识符的字段来代替 user_dim.user_id。请注意,app_info.app_instance_id每次将Firebase应用程序卸载并重新安装在同一设备上时,Firebase都会生成一个新 的应用程序。

导出到BigQuery的iOS应用程序com_retail_example_IOS.app_events_[DATE]的数据表是 和Android相应的数据表com_retail_example_ANDROID.app_events_[DATE],其中[DATE]当前日期在哪里 。


 

SELECT
   userId,
   DATE(MIN( firstOpenTime )) firstOpenTime
 FROM (
   SELECT
     user_dim.user_id AS userId,
     user_dim.first_open_timestamp_micros AS firstOpenTime
   FROM (TABLE_DATE_RANGE([com_retail_example_IOS.app_events_],
     DATE_ADD(CURRENT_TIMESTAMP(), -1, 'YEAR'), CURRENT_TIMESTAMP())),
     (TABLE_DATE_RANGE([com_retail_example_ANDROID.app_events_],
     DATE_ADD(CURRENT_TIMESTAMP(), -1, 'YEAR'), CURRENT_TIMESTAMP())) )
 WHERE
   userId NOT IN (
   SELECT
     user_dim.user_id AS userId
   FROM (TABLE_DATE_RANGE([com_retail_example_IOS.app_events_],
     DATE_ADD(CURRENT_TIMESTAMP(), -14, 'DAY'), CURRENT_TIMESTAMP())),
     (TABLE_DATE_RANGE([com_retail_example_ANDROID.app_events_],
     DATE_ADD(CURRENT_TIMESTAMP(), -14, 'DAY'), CURRENT_TIMESTAMP())) )
 GROUP BY
   userId

例4:

应用程序开发人员希望在iOS和Android平台上确定拥有最活跃用户的国家/地区。为此,他们使用以下查询来列出给定日期的每个国家/地区的用户数量和事件数量。

内查询返回user_idcountry一排,然后再执行该行内的所有事件的计数。该查询使用 WITHIN RECORD 子句event_dimRECORD,是处理聚合嵌套记录的最佳途径。

外部查询利用了EXACT_COUNT_DISTINCTuserId,为用户的总数量提供精确的数。另外,开发人员可以使用COUNT(DISTINCT user_id),但是这会给出一个估计值而不是确切的值。当数据量非常大时,估算速度可能会更快,并且您正在寻找随时间推移的趋势,这种情况下精度可能不如速度重要。


SELECT
   country,
   EXACT_COUNT_DISTINCT(user_id) AS users,
   SUM(noOfEvents) AS totalEvents
 FROM (
   SELECT
     user_dim.app_info.app_instance_id AS user_id,
     user_dim.geo_info.country AS country,
     COUNT(event_dim.name) WITHIN RECORD noOfEvents
   FROM
     [com_retail_example_IOS.app_events_20160723],
     [com_retail_example_ANDROID.app_events_20160723]
     )
 GROUP BY
   1
 ORDER BY
   2 DESC

了解BigQuery中的Google Analytics架构

将Firebase的Google Analytics(分析)连接到BigQuery时,Firebase每天都会将数据导出到BigQuery。它的格式如下:

数据集

Google Analytics for Firebase为每个Firebase应用在BigQuery中创建一个新的数据集。数据集名称格式为:[app_name]_[PLATFORM],其中 app_name是捆绑包ID(iOS)或包名称(Android)。

Google Analytics将句点转换为包ID或包名称中的下划线以匹配BigQuery命名约定。Google Analytics使用大写字母指定平台名称以符合Firebase命名约定。

例如,与包ID为“com.username.myapp”的iOS应用程序相对应的数据集将导致名为的数据集com_username_myapp_IOS

Google Analytics每天都会在与该应用对应的BigQuery数据集中创建一个新表。这些表格使用模式命名,app_events_YYYYMMDD并包含为指定日期记录的事件。

表格中的每一行都对应一组事件。捆绑包的大小由应用程序确定,该应用程序将调用中的数据发送到Google Analytics for Firebase SDK。

Google Analytics将用户事件导出为列,其中包括自定义数据事件。有关导出到BigQuery的标准列的列表,请参阅Firebase帮助文档中的BigQuery Export模式

打扫干净

为避免向您的Google Cloud Platform帐户收取本教程中使用的资源的费用:

停止结算费用的最简单方法是删除项目。由于Firebase项目和Cloud Platform项目是一样的,您可以使用Firebase或Cloud Platform控制台将其删除。

 

警告:删除项目会导致以下后果:

  • 如果您使用的是现有项目,则还会删除您在项目中完成的其他任何工作。
  • 您不能重复使用已删除项目的项目ID。如果您创建了计划在将来使用的自定义项目ID,请改为删除项目内部的资源。此步骤可确保使用项目ID的appspot.comURL(例如URL)保持可用。

如果您正在探索多个教程和快速入门,重复使用项目而不是删除它们可以防止您超出项目配额限制。

在GCP控制台中,转到“项目”页面。

转到项目页面

在项目列表中,选择要删除的项目并单击删除项目。

在对话框中输入项目ID,然后单击 关闭以删除该项目。

 

如果您不想删除云平台和Firebase项目,可以通过从BigQuery中删除数据集来降低成本。

  1. 转到BigQuery Web UI。
    转到BIGQUERY WEB UI。
  2. 在导航中,将鼠标悬停在您的应用的数据集上。
  3. 点击
  4.  导航中数据集名称旁边的向下箭头图标,然后点击删除数据集。
  5. 在删除数据集对话框中,通过输入数据集的名称并单击确定来确认删除命令。

 

标签:dim,Google,BigQuery,Analytics,Firebase,数据
From: https://blog.51cto.com/u_14523369/7445442

相关文章

  • Bigquery - CTE 官网
    WorkwithrecursiveCTEsbookmark_borderInGoogleSQLforBigQuery,a WITH clausecontainsoneormorecommontableexpressions(CTEs)withtemporarytablesthatyoucanreferenceinaqueryexpression.CTEscanbe non-recursive, recursive,orboth.The......
  • 从Google开发者大会浅谈LLM的应用
    这周参加了在上海世博中心举办GoogleI/OConnect中国开发者大会,有几年没参加这么高质量的活动,有点感慨。     期间重点听了关于GCP和Google AI大语言模型的主题演讲,发现目前各大厂商仍然还处于大语言模型的早期应用阶段,GooglePaLM2也不例外。作为业界最领先的AI公司之......
  • googlectf2023 gradebook 复现(TOCTOU)
    Gradebook结构根据函数sub_2247开头的部分可以推测出gradebook的结构0x4year0x8gradebookname(32bytes)0x28studentname(32bytes)0x48sizeofthisgradebook(uint)0x50firstgradestructureoffset0x58newgradestructureoffset每一条记录grade......
  • 【回顾】Google Cloud Next '23 引入GKE Enterprise——容器平台的下一阶段发展
    【CloudAce是GoogleCloud全球战略合作伙伴,在亚太地区、欧洲、南北美洲和非洲拥有二十多个办公室。CloudAce在谷歌专业领域认证及专业知识目前排名全球第一位,并连续多次获得GoogleCloud各类奖项。作为谷歌云托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证......
  • Google Hacking语法总结
    GoogleHacking语法总结GoogleHacking是利用谷歌搜索的强大,来在浩瀚的互联网中搜索到我们需要的信息。轻量级的搜索可以搜素出一些遗留后门,不想被发现的后台入口,中量级的搜索出一些用户信息泄露,源代码泄露,未授权访问等等,重量级的则可能是mdb文件下载,CMS未被锁定install页面,网站......
  • 关于 Google 搜索运作方式的解析
    Google搜索是一款全自动搜索引擎,会使用名为“网页抓取工具”的软件定期探索网络,找出可添加到Google索引中的网页。实际上,Google搜索结果中收录的大多数网页都不是手动提交的,而是我们的网页抓取工具在探索网络时找到并自动添加的。本文档从网站的角度介绍了Google搜索运作方式......
  • 【抽奖】重磅!Cloud Ace 荣获三项 2023 年 Google Cloud 年度合作伙伴大奖
    【CloudAce是GoogleCloud全球战略合作伙伴,在亚太地区、欧洲、南北美洲和非洲拥有二十多个办公室。CloudAce在谷歌专业领域认证及专业知识目前排名全球第一位,并连续多次获得GoogleCloud各类奖项。作为谷歌云托管服务商,我们提供谷歌云、谷歌地图、谷歌办公套件、谷歌云认证......
  • Google Chrome 最新版及历史版本下载
    (含更新组件)新版及历史版本https://www.lanzout.com/b0khja5ghttps://pan.baidu.com/s/1Q5FptUnS0BjGMk5erwOhyw 提取码:36oz......
  • Google C++编程规范(Google C++ Style Guide)
    参考链接:Google代码规范C++总结Google开源项目风格指南——中文版GoogleC++StyleGuide是一份不错的C++编码指南,我制作了一张比较全面的说明图,可以在短时间内快速掌握规范的重点内容。不过规范毕竟是人定的,记得活学活用。看图前别忘了阅读下面两条重要建议:保持一致也......
  • 银河麒麟服务器操作系统V10SP2离线安装Google Chrome浏览器
    https://blog.csdn.net/ShenSeKyun/article/details/132224932https://www.google.cn/chrome/index.htmlGOOGLE网址最下方下载LINUX版本的浏览器安装包打开终端,输入rpm-ivhgoogle-chrome-stable_current_x86_64.rpmyuminstall google-chrome-stable_current_x86_64.rpm......