【问题标题】:Is there a way to retrieve Google Analytics 4 data on a schedule using Node.js?有没有办法使用 Node.js 按计划检索 Google Analytics 4 数据?
【发布时间】:2021-11-15 12:07:36
【问题描述】:

这就是我想要实现的目标:

  1. 请用户授权收集他们在 Google Analytics(分析)4 媒体资源(或 Universal Analytics,但我不想这样做)上的数据
  2. 每隔 n 小时以编程方式检索和存储数据

通过请求谷歌的 OAUTH2 授权并在前端使用 gapi 调用 Reporting API v4 https://developers.google.com/analytics/devguides/reporting/core/v4,我能够做到 (1) 客户端。

但是,我不确定如何在没有用户交互的情况下按计划执行此操作。我搜索了谷歌的 API 文档,我相信有一种方法可以在 python https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-py 中做到这一点,但我目前仅限于 Node 和浏览器。我想我可以在 python 中创建一个服务器来获取数据并与 Node 应用程序连接,但这是我试图避免的另一层复杂性。有没有办法在 Node 中做所有事情?

【问题讨论】:

    标签: python node.js google-cloud-platform google-analytics google-api-js-client


    【解决方案1】:

    所有 GCP API 都以允许每个人生成各种语言的客户端库的方式记录,包括 node.js。用于分析报告的 node.js 客户端的文档是 here

    关于如何在 GCP 上安排这个问题,我建议你使用 Cloud Scheduler。这将命中在 Cloud Run 上运行的端点,该端点将执行实际工作。或者,如果您已经在其他地方运行了服务,您可以简单地在那里添加所需的端点并将 Cloud Scheduler 指向它。

    我建议你的整体设计是这样的:

    • 建立一个网站,让用户通过 OAUTH2 登录过程, 请求相关的 Google Analytics Reporting API 范围 需要提出请求。
    • 将获得的凭据存储在他们的用户数据库中。(最好 Firestore 在数据存储模式下)
    • 设置Cloud Run 服务(或其他任何服务),具有两个端点
    • 迭代端点:遍历用户列表并添加任务 到Cloud Tasks 以点击每个下载端点。
    • 下载端点:获取用户 ID(例如,作为查询参数)和 为此用户执行下载。您将需要加载 来自数据库的用户凭据,并使用它来访问 报告 API。
    • 将下载的数据存储在所需的位置,例如Cloud Storage、Firestore、Cloud SQL
    • 设置Cloud Scheduler 在所需的迭代端点 频率。

    对于上面提到的 GCP 服务,基本上除了 Analytics 之外的所有服务,您都可以使用 node.js 的“云”客户端,可以使用 here

    注意:您提出的问题是一个非常广泛的问题,这个答案只是一个建议。您可以考虑其他最适合您的设计。

    【讨论】:

    • 正是我想要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 2023-02-11
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    相关资源
    最近更新 更多