首页 > 解决方案 > Google Analytics 非抽样报告:如何设置目标位置(Google Drive 或 GCS)?

问题描述

从 GA Management API 获取非抽样报告

我需要以编程方式下载谷歌分析非抽样报告,并最终将它们每天存储到 BigQuery 中。

我的第一步实际上是能够下载非抽样报告。

通过 GA 管理 API v3 导航,我可以使用 python 获取给定报告的元数据:

{
    "id": "ONJ5uJntQ5Ku4U5vZ6z5tQ",
    "kind": "analytics#unsampledReport",
    "selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXX/webproperties/UA-XXXX/profiles/XXXX/unsampledReports/ONJ5uJntQ5Ku4U5vZ6z5tQ",
    "title": "MCF Export 20201124 20201124",
    "accountId": "XXXX",
    "webPropertyId": "UA-XXXX",
    "profileId": "XXXX",
    "status": "COMPLETED",
    "created": "2020-11-25T21:22:35.308Z",
    "updated": "2020-11-25T21:24:13.695Z"
}

正如这篇相关文章中提到的:无法使用 Java 从 Google Analytics 下载非抽样报告

selflink 属性是资源的实际链接,但不是下载端点。

要 DL 报告,需要查询 GDrive OR GCS API。

我的问题是:如何判断报告必须去哪里?

就目前而言,在查询报告数据时,没有位置 URI,我仍然收到类似这个家伙的部分答案:为什么 Google Analytics API for Unsampled Reports 没有显示 Google Drive 下载链接?

这是官方的谷歌分析管理 API 文档:https ://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtReference/management/unsampledReports/get

从以下代码:

 analytics.management().unsampledReports().get(
            accountId=ACCOUNT_ID,
            webPropertyId=WEB_PROPERTY_ID,
            profileId=PROFILE_ID,
            unsampledReportId='XXXX'
        ).execute()

我应该得到:

{
  "id": string,
  "kind": "analytics#unsampledReport",
  "selfLink": string,
  "title": string,
  "accountId": string,
  "webPropertyId": string,
  "profileId": string,
  "start-date": string,
  "end-date": string,
  "metrics": string,
  "dimensions": string,
  "filters": string,
  "segment": string,
  "status": string,
  "downloadType": string,
  "driveDownloadDetails": {
    "documentId": string
  },
  "cloudStorageDownloadDetails": {
    "bucketId": string,
    "objectId": string
  },
  "created": datetime,
  "updated": datetime
}

尽管如此,我的回答仍然缺少任何下载信息......

我将非常感谢您的帮助。

标签: pythongoogle-analytics

解决方案


答案在 中driveDownloadDetails.documentId,因此您必须使用 Google Drive API 通过其 ID 获取此文件。

我使用 Google Apps Script 制作了一个附加组件,以在电子表格中导出 Google Analytics 未采样数据,调用“ GA360 Unsampled ”,例如,我通过该信息获得了对文件的引用(然后管理 blob、parseCSV 等...):

...
fileId = driveDownloadDetails.documentId;
...

var file = DriveApp.getFileById(fileId);

显然,您将不得不使用您正在使用的语言的语法。


推荐阅读