如何使用 R 将 Universal Analytics 数据备份到 BigQuery
已发表: 2023-09-26Universal Analytics (UA) 终于日落了,我们的数据现在可以自由流入我们的 Google Analytics 4 (GA4) 资源。 人们可能很想不再查看我们的 UA 设置,但是,在我们放弃 UA 之前,存储它已经处理过的数据非常重要,以便我们将来需要分析它。 为了存储您的数据,我们当然推荐 BigQuery,Google 的数据仓库服务,在本博客中,我们将向您展示从 UA 备份哪些数据以及如何备份!
为了下载我们的数据,我们将使用 Google Analytics API。 我们将编写一个脚本,从 UA 下载必要的数据并将其一次性上传到 BigQuery。 对于此任务,我们强烈建议使用 R,因为 googleAnalyticsR 和 bigQueryR 包使这项工作非常简单,因此我们编写了 R 教程!
本指南不会介绍设置身份验证的更复杂的步骤,例如下载凭据文件。 有关这方面的信息,以及有关如何将数据上传到 BigQuery 的更多信息,请查看我们关于从 R 和 Python 将数据上传到 BigQuery 的博客!
使用 R 备份 UA 数据
与任何 R 脚本一样,第一步是加载我们的库。 对于此脚本,我们需要以下内容:
库(googleAuthR)
库(googleAnalyticsR)
库(bigQueryR)
如果您以前没有使用过这些库,请在控制台中运行 install.packages(<PACKAGE NAME>) 来安装它们。
然后我们需要对所有的各种授权进行排序。 为此,您需要运行以下代码并按照所提供的说明进行操作:
googleAuthR::gar_cache_empty()
googleAuthR::gar_set_client(“C:\\Users\\Tom Brown\\Documents\\R\\APIs\\credentials.json”)
bqr_auth(email = “<您的电子邮件地址>”)
ga_id <- <您的 GA 在此处查看 ID>
当您在UA中选择视图时,可以在视图名称下方找到ga_id,如下所示:
接下来,我们必须决定实际从 UA 获取哪些数据。 我们建议拉取以下内容:
会话范围的维度 | 事件范围维度 | 页面浏览范围维度 |
客户ID | 客户ID | 页面路径 |
时间戳 | 时间戳 | 时间戳 |
来源/媒介 | 活动类别 | 来源/媒介 |
设备类别 | 事件动作 | 设备类别 |
活动 | 事件标签 | 活动 |
渠道分组 | 来源/媒介 | 渠道分组 |
活动 |
将它们放入 BigQuery 中的三个表中应该足以满足您未来所有潜在的 UA 数据需求。 要从 UA 提取此数据,首先您需要指定日期范围。 进入 UA 平台并查看一份报告,了解数据收集首次开始的时间。 然后,指定一个日期范围,从那时起一直到运行脚本的前一天,这是您将拥有完整 24 小时数据的最后一天(如果您在 UA 执行后执行此操作)日落,无论如何都会包含 100% 的可用数据)。 我们的数据收集于 2017 年 5 月开始,所以我写道:
日期 <- c(“2017-05-01”, Sys.Date()-1)
现在,我们需要根据上表指定需要从 UA 中提取的内容。 为此,我们需要运行 google_analytics() 方法三次,因为您无法同时查询不同范围的维度。 您可以直接复制以下代码:
会话拉 <- google_analytics(ga_id,
日期范围=日期,
指标 = c(“会话”),
维度 = c(“clientId”, “dateHourMinute”,
“sourceMedium”、“deviceCategory”、“campaign”、“channelGrouping”)、
反样本=真)
eventspull <- google_analytics(ga_id,
日期范围=日期,
指标 = c(“totalEvents”, “eventValue”),
维度 = c(“clientId”、“dateHourMinute”、“eventCategory”、“eventAction”、“eventLabel”、“sourceMedium”、“campaign”),
反样本=真)
pvpull <- google_analytics(ga_id,
日期范围=日期,
指标 = c(“综合浏览量”),
维度 = c(“pagePath”、“dateHourMinute”、“sourceMedium”、“deviceCategory”、“campaign”、“channelGrouping”),
反样本=真)
这应该将所有数据整齐地放入三个数据框中,标题为sessionpull (用于会话范围维度)、 eventspull (用于事件范围维度)和pvpull (用于页面浏览范围维度)。
我们现在需要将数据上传到 BigQuery,其代码应如下所示,对每个数据帧重复三次:
bqr_upload_data(“<您的项目>”、“<您的数据集>”、“<您的表>”、<您的数据框>)
就我而言,这意味着我的代码如下:
bqr_upload_data(“我的项目”,“test2”,“bloguploadRSess”,sessionspull)
bqr_upload_data(“我的项目”,“test2”,“bloguploadREvent”,eventspull)
bqr_upload_data(“我的项目”,“test2”,“bloguploadRpv”,pvpull)
全部写完后,您就可以设置脚本来运行,坐下来放松一下! 完成后,您将能够前往 BigQuery,并且您应该会看到所有数据现在所属的位置!
通过安全地保存您的 UA 数据以备不时之需,您可以将全部精力集中在最大限度地发挥 GA4 设置的潜力上 - Semetrical 可以为您提供帮助! 请查看我们的博客,了解有关如何充分利用数据的更多信息。 或者,要获得有关所有事物分析的更多支持,请查看我们的网络分析服务,了解我们如何为您提供帮助。