Cách truy xuất dữ liệu từ Google Analytics (GA4) bằng gem google-api-client và Query Explorer với Rails

Cách truy xuất dữ liệu từ Google Analytics (GA4) bằng gem google-api-client và Query Explorer với Rails
Tìm hiểu cách truy xuất dữ liệu từ Google Analytics (GA4) trong hướng dẫn này. Khám phá cách sử dụng gem 'google-api-client' để lấy dữ liệu và sửa đổi code theo nhu cầu của bạn. Làm theo hướng dẫn từng bước về cách tạo tệp JSON, nhận ID thuộc tính GA4, kiểm tra truy vấn của bạn bằng cách sử dụng Query Explorer trước khi viết code.
Đã được tạo:

Làm cách nào để truy cập dữ liệu Google Analytics (GA4) trong Ruby on Rails?

Để truy xuất dữ liệu từ Google Analytics, bạn có thể sử dụng trang web https://ga-dev-tools.google/ga4/query-explorer/ để thực hiện các truy vấn. Trên trang web này, bạn sẽ tìm thấy một liên kết đến tài liệu runReport của Google Analytics Data API (GA4) tại https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runReport. Hiện tại, gem 'google-api-client' không hỗ trợ POST https://analyticsdata.googleapis.com/v1beta/{property=properties/*}:runReport mà chỉ hỗ trợ v1alpha. Tuy nhiên, tôi sẽ trình bày cách lấy Dữ liệu Google Analytics mà vẫn sử dụng 'google-api-client'.

Trong hướng dẫn này, tôi khai báo hai biến môi trường trong tệp .env.
ANALYTICS_DATA_CREDENTIALS="config/vulehuan-ga.json"
GA4_PROPERTY_ID="307325329"
Để tạo tập tin service, bạn có thể sử dụng code sau cho app/services/my_analytics_data_service.rb:
# frozen_string_literal: true
require 'google/apis/analyticsdata_v1alpha'

class MyAnalyticsDataService < Google::Apis::AnalyticsdataV1alpha::AnalyticsDataService
  def run_report(run_report_request_object = nil, fields: nil, quota_user: nil, options: nil, &block)
    command = make_simple_command(:post, "v1beta/properties/#{ENV['GA4_PROPERTY_ID']}:runReport", options)
    command.request_representation = Google::Apis::AnalyticsdataV1alpha::RunReportRequest::Representation
    command.request_object = run_report_request_object
    command.response_representation = Google::Apis::AnalyticsdataV1alpha::RunReportResponse::Representation
    command.response_class = Google::Apis::AnalyticsdataV1alpha::RunReportResponse
    command.query['fields'] = fields unless fields.nil?
    command.query['quotaUser'] = quota_user unless quota_user.nil?
    execute_or_queue_command(command, &block)
  end
end

Tập tin này chỉ thay đổi đường dẫn API trong hàm run_report của Google::Apis::AnalyticsdataV1alpha::AnalyticsDataService thành v1beta/properties/#{ENV['GA4_PROPERTY_ID']}:runReport.

Code mẫu bên dưới truy xuất số lượt xem trang trong vòng 28 ngày và lưu code đó vào bảng google_analytic_reports. Tùy thuộc vào nhu cầu của bạn, bạn có thể sửa đổi code cho phù hợp. Vui lòng test tại https://ga-dev-tools.google/ga4/query-explorer/ trước khi viết code. Khi test, bạn sẽ nhận được các giá trị để nhập vào code, chẳng hạn như metrics screenPageViews, order_bys với loại ALPHANUMERIC và dimensions date. Chỉ cần test trên https://ga-dev-tools.google/ga4/query-explorer/, chọn truy vấn thích hợp, xem dữ liệu nào có sẵn và cập nhật code của bạn cho phù hợp.

# Set up authentication
scopes = [Google::Apis::AnalyticsdataV1alpha::AUTH_ANALYTICS_READONLY]
credentials = Google::Auth::ServiceAccountCredentials.make_creds(
  json_key_io: File.open("#{Rails.root}/#{ENV['ANALYTICS_DATA_CREDENTIALS']}"),
  scope: scopes
)
client = MyAnalyticsDataService.new
client.authorization = credentials

# Set the date range for the report
end_date = Date.today.prev_day # Set the end date to yesterday
start_date = end_date - 27 # Set the start date to 28 days ago
# Build the request https://ga-dev-tools.google/ga4/query-explorer/ OR https://ga-dev-tools.google/query-explorer/
request = Google::Apis::AnalyticsdataV1alpha::RunReportRequest.new(
  dimensions: [Google::Apis::AnalyticsdataV1alpha::Dimension.new(name: 'date')],
  metrics: [
    Google::Apis::AnalyticsdataV1alpha::Metric.new(
      name: 'screenPageViews',
    )
  ],
  date_ranges: [
    Google::Apis::AnalyticsdataV1alpha::DateRange.new(
      start_date: start_date.strftime('%Y-%m-%d'),
      end_date: end_date.strftime('%Y-%m-%d')
    )
  ],
  order_bys: [
    Google::Apis::AnalyticsdataV1alpha::OrderBy.new(
      dimension: Google::Apis::AnalyticsdataV1alpha::DimensionOrderBy.new(dimension_name: 'date', order_type: 'ALPHANUMERIC'),
      desc: false
    )
  ]
)
response = client.run_report(request)
GoogleAnalyticReport.create(
  response.rows.map do |row|
    date = Date.strptime(row.dimension_values.first.value, '%Y%m%d')
    sessions = row.metric_values.first.value.to_i
    { report_date: date, total_views: sessions }
  end
)

Giải thích code của tôi và cách sử dụng nó

Trong đoạn code trên, tôi sử dụng client = MyAnalyticsDataService.new. Như đã đề cập ở trên, MyAnalyticsDataService ghi đè hàm run_report với ý định gọi POST https://analyticsdata.googleapis.com/v1beta/{property=properties/*}:runReport và nhận dữ liệu kết quả.

Tiếp theo, tôi sẽ cung cấp hướng dẫn về cách tạo tệp JSON hoặc lấy giá trị của ID thuộc tính GA4 (hai biến môi trường được đề cập ở phần đầu của hướng dẫn này).
ANALYTICS_DATA_CREDENTIALS="config/vulehuan-ga.json"
GA4_PROPERTY_ID="307325329"

ANALYTICS_DATA_CREDENTIALS là đường dẫn đến tệp JSON được tạo từ Google Console. Trong code, json_key_io: File.open("#{Rails.root}/#{ENV['ANALYTICS_DATA_CREDENTIALS']}"), tôi đã sử dụng Rails.root và đặt tệp JSON vào thư mục config. Bạn có thể sửa đổi cả biến môi trường và code json_key_io cho phù hợp.

Để tạo tệp JSON ở trên, hãy mở trang https://developers.google.com/analytics/devguides/reporting/data/v1/quickstart-client-libraries và chọn 'Enable the Google Analytics Data API v1'. Làm theo các bước được cung cấp và trong hộp thoại kết quả, hãy nhấp vào DOWNLOAD CLIENT CONFIGURATION và lưu tệp credentials.json vào thư mục làm việc của bạn.

Sử dụng trình soạn thảo văn bản, mở tệp credentials.json mà bạn đã tải xuống ở bước trước và tìm kiếm trường client_email để lấy địa chỉ email của tài khoản dịch vụ. Nó sẽ trông giống như [email protected]. Sử dụng địa chỉ email này để thêm người dùng vào thuộc tính Google Analytics 4 mà bạn muốn truy cập qua API dữ liệu Google Analytics v1. Đối với hướng dẫn này, chỉ cần có quyền Viewer.

Bạn có thể lấy GA4_PROPERTY_ID giống như ảnh chụp màn hình bên dưới:

Phần kết luận

Tóm lại, việc truy xuất dữ liệu từ Google Analytics có thể được thực hiện bằng cách sử dụng trang web https://ga-dev-tools.google/ga4/query-explorer/ để thực hiện các truy vấn. Mặc dù gem 'google-api-client' hiện chỉ hỗ trợ v1alpha chứ không hỗ trợ POST https://analyticsdata.googleapis.com/v1beta/{property=properties /*}:runReport, chúng ta vẫn có thể lấy dữ liệu Google Analytics bằng cách ghi đè hàm run_report của Google::Apis::AnalyticsdataV1alpha::AnalyticsDataService thành v1beta/properties/#{ENV['GA4_PROPERTY_ID']}:runReport. Bằng cách khai báo các biến môi trường trong tệp .env và sử dụng code được cung cấp, chúng ta có thể truy xuất dữ liệu mong muốn và lưu dữ liệu đó vào cơ sở dữ liệu của mình. Để có được thông tin đăng nhập cần thiết, hãy làm theo các bước được cung cấp trong hướng dẫn và kiểm tra truy vấn trên https://ga-dev-tools.google/ga4/query-explorer/ trước khi viết code.

Xin chào! Bạn đã xem qua một bài viết có tiêu đề Cách truy xuất dữ liệu từ Google Analytics (GA4) bằng gem google-api-client và Query Explorer với Rails của tác giả Vũ Lê Huân. Trong trường hợp bạn muốn tìm hiểu thêm thông tin về tác giả, bạn có thể truy cập https://vulehuan.com/vi/ho-so-ca-nhan/vulehuan.html.
Tôi rất vui được chia sẻ rằng trang web của tôi hoàn toàn miễn phí sử dụng và tôi tận tâm cung cấp các tài nguyên hữu ích cho người dùng của mình. Nếu bạn thấy trang web của tôi hữu ích và muốn hỗ trợ tôi, bây giờ bạn có thể chuyển khoản ủng hộ. Các khoản đóng góp được chuyển trực tiếp vào tài khoản ngân hàng của tôi và giúp tôi tiếp tục cung cấp nội dung chất lượng.
Cảm ơn sự hỗ trợ của bạn!
Bạn cũng có thể đóng góp cho tôi bằng cách đăng ký các dịch vụ này:
Vui lòng Đăng nhập để đăng bình luận.
Tìm kiếm
Analytics