You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby on Rails迁移GA4:View ID缺失下的服务端请求实现咨询

Ruby on Rails 中 GA4 服务端请求迁移实现方案

1. 替换依赖 Gem

弃用旧的 google/apis/analytics_v3,改用 Google 官方提供的 GA4 专用 Ruby Gem google-analytics-data:

  • 在 Gemfile 中添加:
    gem 'google-analytics-data'
    
  • 执行 bundle install 完成安装

2. 配置认证与权限

GA4 使用服务账号认证,步骤如下:

  • 从 Google Cloud 控制台创建服务账号,下载 JSON 密钥文件
  • 将服务账号邮箱添加到 GA4 媒体资源的用户列表中,授予「查看者」或更高权限
  • 在 Rails 项目中加载密钥,示例:
    require "google/analytics/data"
    
    def ga4_client
      @ga4_client ||= Google::Analytics::Data::V1beta::AnalyticsData::Client.new do |config|
        config.credentials = "path/to/your/service-account-key.json"
      end
    end
    

3. 替换数据请求代码

GA4 的 API 逻辑与 UA(Universal Analytics)差异较大,核心是使用 run_report 方法替代原有的 get_ga_data,同时注意以下变化:

  • 原 View ID 替换为 GA4 媒体资源ID,格式为 properties/{PROPERTY_ID}(比如 properties/2134567890)
  • UA 的指标前缀 ga: 移除,直接使用 GA4 指标名(比如原 ga:users 改为 users)
  • 数据返回结构不同,需调整获取总计数据的方式

原 UA 代码:

@service.get_ga_data(VIEW_ID, @start_date, @end_date, 'ga:users').totals_for_all_results

迁移后的 GA4 代码:

def get_ga4_users(start_date, end_date, property_id)
  response = ga4_client.run_report(
    request: {
      property: "properties/#{property_id}",
      date_ranges: [{ start_date: start_date, end_date: end_date }],
      metrics: [{ name: "users" }]
    }
  )

  # 获取总计用户数
  response.totals.first&.value.to_i
end

# 调用示例
get_ga4_users(@start_date, @end_date, "2134567890")

关键注意事项

  • GA4 的指标、维度命名规则与 UA 不完全一致,需对照官方文档调整(比如原 ga:sessions 对应 GA4 的 sessions)
  • 如果需要多个指标或维度,直接在 metrics/dimensions 数组中添加对应配置
  • 若遇到权限报错,检查服务账号是否已添加到 GA4 媒体资源,且权限配置正确

内容的提问来源于stack exchange,提问作者Manolo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 14:01:30