Google AnalyticsとBigQueryを連携して高速柔軟な集計を可能に

目次

Xin chào, tôi là Đức từ bộ phận Development.

Hiện tôi đang đảm nhận project BigQuery cho phép thu thập và phân tích dữ liệu.

Ở bài viết lần này, tôi sẽ giới thiệu khái quát về BigQuery và làm thế nào để trích xuất dữ liệu từ Google Analytics đến BigQuery.

Hoàn cảnh ra đời project BigQuery

Hiện tại PRTIMES đang sử dụng các cơ sở dữ liệu cả ở on-premise và trên AWS. Thêm vào đó, để phục vụ cho việc truy xuất và phân tích dữ liệu, PRTIMES đang sử dụng metabase trên EC2 từ dữ liệu backup của database on-premise.

Tuy nhiên nếu ta tiến hành những câu truy vấn nặng trên một database thông thường thì sẽ vấp phải những trở ngại lớn. Việc đưa vào sử dụng data warehouse có thể giải quyết vấn đề nêu trên.

Ngoài ra, access logs của CDN CloudFront hiện cũng đang được lưu trữ trên S3. Dữ liệu từ đây có thể import vào BigQuery.

Google Analytics, công cụ cho phép theo dõi một cách tổng quan về tình trạng website. Khi  liên kết với BigQuery, dữ liệu có thể được tổng hợp nhanh chóng và linh hoạt. Thêm vào đó phân tích dữ liệu thô có thể đi sâu vào dữ liệu và giúp tìm ra lời giải cho các câu hỏi chi tiết hơn về kinh doanh.

BigQuery là gì ?

Việc phân tích và lưu trữ dữ liệu từ nhiều nguồn dữ liệu lớn có thể mất rất nhiều thời gian và chi phí do không có cơ sở hạ tầng phù hợp. 

BigQuery là một dịch vụ phù hợp để giải quyết các vấn đề nêu trên. Đây là một Cloud Service do Google cung cấp, ưu điểm lớn là có thể thực hiện công việc phân tích mà không cần lo lắng về các vấn đề bảo trì hoặc quản lý cũng như mở rộng.

Google Cloud
BigQuery: Cloud Data Warehouse  |  Google Cloud
BigQuery: Cloud Data Warehouse  |  Google CloudBigQuery is a serverless, cost-effective and multicloud data warehouse designed to help you turn big data into valuable business insights. Start free.

Tìm hiểu và Phân tích

 Sau một thời gian tìm hiểu về BigQuery cùng với đó là tìm hiểu cách thức để trích xuất dữ liệu từ Google Analytics(GA4) đến BigQuery. Cơ bản là nó khá dễ dàng.

Tuy nhiên khi bắt tay vào tìm hiểu hệ thống hiện có, tôi nhận ra rằng nó không thực dễ như tôi đã nghĩ. Phiên bản Analytics hiện tại đang được sử dụng là Universal Analytics(UA) – một phiên bản cũ hơn. Để có thể liên kết và trích xuất dữ liệu sang BigQuery, cần phải sử dụng phiên bản enterprise là Google Analytics 360.

Giá thành để sử dụng phiên bản này rơi vào khoảng 17,000,000 Yên một năm.

Thay vào đó, ta có thể sử dụng phiên bản GA4 mới, tuy ít tính năng hơn, nhưng bù lại không tốn phí.

Đối với những trang sử dụng phiên bản UA bằng cách nhúng thẻ tag bằng file gtag.js. Nếu tạo thuộc tính GA4 mới, có thể thu thập dữ liệu thông qua thẻ gtag.js đã được sử dụng.

Tuy nhiên, PRTIMES không sử dụng gtag.js mà là analytics.js. Với việc hiện tại đang sử dụng analytics.js, khó có thể tái sử dụng tracking code sẵn có. Thay vào đó, sử dụng Google Tag Manager(GTM) để cài đặt và quản lý tag vào websites. So với việc cài đặt tag thủ công từ đầu vào từng page để sử dụng được GA4, sử dụng GTM là một cách tối ưu hơn.

Đối với những ai quan tâm đến sự khác biệt giữa UA và GA4 có thể tham khảo đường link bên dưới.

あわせて読みたい
ユニバーサル アナリティクスのデータと Google アナリティクス 4 のデータ - アナリティクス ヘルプユニバーサル アナリティクスと Google アナリティクス 4 のデータモデルの比較この記事は、ユニバーサル アナリティクスから Google アナリティクス 4

Triển khai

Tracking bằng Google Tag Manager

Sử dụng GTM mang lại một số lợi ích tiêu biểu:

  • Server-Side Tagging
  • UI dễ tiếp cận
  • Debug mode
  • Quản lý version

Hơn nữa, hiện tại dù chưa được sử dụng triệt để, nhưng GTM cũng đã được thiết lập ở một phần của hệ thống. Ta không cần phải bắt đầu lại từ đầu mà chỉ cần bổ sung vào những phần còn thiếu.

Liên kết Analytics đến BigQuery

Khi thiết lập liên kết, Google cung cấp hai tùy chọn về tần suất trích xuất dữ liệu.

・Daily: dữ liệu sẽ được trích xuất một ngày một lần

・Streaming: dữ liệu được trích xuất liên tục sau mỗi giây

Ở thời điểm hiện tại real-time data streaming chưa thực sự cần thiết, vì vậy chỉ thiết lập cho hệ thống trích xuất dữ liệu mỗi ngày một lần là đủ. Dữ liệu của ngày hôm trước sẽ được tạo và thêm vào bảng mới ở BigQuery vào lúc 5-6 giờ sáng ngày hôm sau.

Dưới đây là một ví dụ của việc sử dụng BigQuery lên dữ liệu. Có thể kiểm tra PV của /service từ 2021/08/01 đến 2021/08/15 bằng query sau.

SELECT
 (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location') AS page_location,
 COUNT(1) AS pageviews
FROM
 `analytics_276758704.events_*`
WHERE
 _TABLE_SUFFIX BETWEEN '20210801' and '20210815'
 AND event_name = 'page_view'
 AND (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location') = 'https://prtimes.jp/service/'
GROUP BY 1
ORDER BY 2 DESC

結果:

Vấn đề tồn đọng

Kể từ tháng 10 năm 2020, GA4 đã được xem là lựa chọn mặc định khi tạo các thuộc tính Google Analytics mới. Điều này cũng sẽ chuẩn hóa việc tích hợp với BigQuery.

Tuy nhiên, GA4 vẫn còn đang trong quá trình hoàn thiện và vẫn còn thiếu nhiều tính năng so với phiên bản Universal 360. Sau khi chuyển sang GA4, hiện tại websites vẫn đang sử dụng cả UA và GA4 song song.

Tiếp theo

Như đã đề cập ở phần bối cảnh thực hiện project, có thể thấy rằng vẫn còn rất nhiều nguồn dữ liệu có thể thu thập và khai thác. Đối với tôi đây là một cơ hội lớn để cải thiện bản thân. Mỗi ngày đều là một thử thách và cơ hội để nâng cao kiến thức. Tôi sẽ tiếp tục viết về những gì tôi học được, những điều tôi cảm thấy trong quá trình thực hiện dự án.

1 2

この記事を書いた人

2020年に新卒入社。
現在は開発チームのエンジニアとしてやっています。

目次
閉じる