Minhaz Kazi, Chuyên gia hỗ trợ nhà phát triển, Google Analytics – tháng 4 2023
"Nhưng tại sao các con số lại không khớp với giao diện người dùng?"
Nếu bạn đã làm việc với dữ liệu xuất sự kiện BigQuery cho tài sản GA4 của mình, chắc chắn bạn đã đặt câu hỏi này vào lúc nào đó. Hoặc tệ hơn – một người khác đã hỏi bạn điều này. Và trong khi cố gắng trả lời câu hỏi đó, có thể bạn đã được hỏi câu hỏi tiếp theo đáng sợ:
"Vậy câu trả lời của bạn là ở đâu?"
Trong bài đăng này, chúng tôi sẽ cố gắng làm sáng tỏ cả hai yếu tố này.
Trước khi đi vào chi tiết về sự khác biệt giữa các số liệu, điều quan trọng là phải hiểu mục đích dự kiến của dữ liệu xuất sự kiện BigQuery. Người dùng Google Analytics gửi dữ liệu đã thu thập của họ đến GA thông qua một trong các phương pháp thu thập – Google Thẻ, Trình quản lý thẻ của Google, Measurement Protocol, SDK và Nhập dữ liệu. Dựa trên chế độ cài đặt của tài sản GA, Google Analytics mang lại giá trị đáng kể dữ liệu đã thu thập trước khi dữ liệu đó đến được các nền tảng báo cáo tiêu chuẩn bao gồm báo cáo chuẩn, Dữ liệu khám phá và Data API. Các giá trị này các thành phần bổ sung có thể bao gồm việc thêm tín hiệu của Google, lập mô hình, lưu lượng truy cập phân bổ, dự đoán, v.v.
Các nền tảng báo cáo chuẩn nhằm cung cấp giá trị tối đa cho người dùng GA ma sát thấp nhất. Tuy nhiên, chúng tôi hiểu rằng trên phạm vi người dùng rộng lớn, một số nhà quảng cáo có thể muốn bổ sung giá trị bổ sung bằng Google Analytics hoặc thậm chí một điều gì đó được tuỳ chỉnh hoàn toàn. Đối với những người dùng này, tính năng xuất sự kiện của BigQuery điểm xuất phát dự kiến. Tính năng xuất sự kiện BigQuery sẽ thu thập dữ liệu, được gửi từ ứng dụng hoặc ứng dụng đến Google Analytics. Xuất sự kiện BigQuery sẽ không chứa dữ liệu chi tiết về hầu hết các giá trị bổ sung nêu trên.
Do đó, đối với một số lượng lớn trường hợp sử dụng, giao diện báo cáo chuẩn và Dữ liệu BigQuery Export dự kiến sẽ không điều chỉnh được khi nói đến gia tăng giá trị. Nếu có sự nhất quán nội bộ trong cả hai và chúng khớp với nhau với những gì mình đang sưu tập, bạn sẽ sẵn sàng để tiếp tục.
Giờ hãy tìm hiểu một số lý do cụ thể dẫn đến sự khác biệt này và khám phá giảm thiểu rủi ro khi có thể. Bài đăng này tập trung vào BigQuery Chỉ xuất sự kiện hằng ngày và không xuất trực tuyến.
Lấy mẫu
Để so sánh chính xác dữ liệu BigQuery Export với báo cáo chuẩn, dữ liệu Báo cáo API hoặc báo cáo Khám phá xác nhận rằng các báo cáo này không dựa trên dữ liệu được lấy mẫu. Lấy mẫu dữ liệu trong GA4 cung cấp thêm thông tin chi tiết và cách xử lý hoạt động lấy mẫu.
Số người dùng đang hoạt động
Nếu bạn tính tất cả người dùng đã ghi lại ít nhất một sự kiện trên GA4 bạn sẽ nhận được chỉ số Tổng số người dùng. Mặc dù Tổng số người dùng có trong công cụ Khám phá trên giao diện người dùng GA4, chỉ số người dùng chính được dùng để báo cáo trong GA4 là Số người dùng đang hoạt động. Trong giao diện người dùng GA4 và trong báo cáo, nếu chỉ có Người dùng được đề cập, thường đề cập đến Số người dùng đang hoạt động. Khi tính toán số người dùng từ dữ liệu BigQuery, bạn sẽ cần lọc và chỉ giữ lại người dùng đang hoạt động để làm cho những con số này có thể so sánh với giao diện người dùng GA. Phương pháp tính toán này cũng sẽ khác nhau tuỳ theo Thông tin nhận dạng trong báo cáo mà bạn đã chọn.
Triển khai kỹ thuật
Trong dữ liệu xuất sự kiện BigQuery, nếu đếm số lượng User ID riêng biệt, bạn
sẽ nhận được số lượng Tổng số người dùng. Dưới đây là truy vấn mẫu cho thấy cả Tổng số
Số người dùng và Số người dùng mới dựa trên user_pseudo_id
:
-- Example: Get 'Total User' count and 'New User' count.
WITH
UserInfo AS (
SELECT
user_pseudo_id,
MAX(IF(event_name IN ('first_visit', 'first_open'), 1, 0)) AS is_new_user
-- Replace table name.
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
-- Replace date range.
WHERE _TABLE_SUFFIX BETWEEN '20201101' AND '20201130'
GROUP BY 1
)
SELECT
COUNT(*) AS user_count,
SUM(is_new_user) AS new_user_count
FROM UserInfo;
Để chỉ chọn những người dùng đang hoạt động, hãy giới hạn truy vấn của bạn ở những sự kiện có is_active_user
là true
:
-- Example: Get exact and approximate Active User count.
WITH
ActiveUsers AS (
SELECT
user_pseudo_id
-- Replace table name.
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
-- Replace date range.
WHERE _TABLE_SUFFIX BETWEEN '20201101' AND '20201130'
AND is_active_user
GROUP BY 1
)
SELECT
COUNT(DISTINCT user_pseudo_id) AS exact_active_user_count,
APPROX_COUNT_DISTINCT(user_pseudo_id) AS approx_active_user_count
FROM ActiveUsers;
HyperLogLog++
Google Analytics sử dụng thuật toán HyperLogLog++ (HLL++) để ước tính số lượng giá trị riêng biệt cho các chỉ số phổ biến, bao gồm Số người dùng đang hoạt động và Số phiên. Điều đó có nghĩa là khi bạn xem số lượng duy nhất của các chỉ số này trong giao diện người dùng hoặc thông qua API, chúng là có độ chính xác nhất định. Trong BigQuery, vì bạn có quyền truy cập vào dữ liệu chi tiết, bạn có thể tính số lượng giá trị riêng biệt chính xác cho những chỉ số này. Loại đối thủ sau lượt đánh bóng và các chỉ số khác nhau có thể thay đổi theo tỷ lệ nhỏ. Ở khoảng tin cậy 95%, giá trị Độ chính xác có thể là ± 1,63% cho số phiên. Mức độ chính xác sẽ thay đổi đối với các chỉ số khác nhau và sẽ thay đổi theo khoảng tin cậy. Xem HLL++ Sketches cho các mức độ chính xác ở các khoảng tin cậy khác nhau cho các tham số có độ chính xác khác nhau của HLL++.
Triển khai kỹ thuật
Xem ước tính số lượng riêng biệt trong Google Analytics để hiểu cách HLL++ triển khai trong Google Analytics và cách bạn có thể tái tạo chức năng thông qua truy vấn BigQuery.
Độ trễ khi thu thập dữ liệu
Các bảng xuất hằng ngày được tạo sau khi GA thu thập tất cả sự kiện trong ngày đó. Bảng hằng ngày có thể được cập nhật sau tối đa 72 giờ kể từ ngày của bảng với các sự kiện được đóng dấu thời gian cùng với ngày của bảng. Đọc chi tiết về vấn đề này và xem các ví dụ. Đây là vấn đề nhiều hơn nếu Firebase SDK hoặc Measurement Protocol gửi ngoại tuyến hoặc các sự kiện bị trì hoãn. Tuỳ thuộc vào thời điểm nền tảng báo cáo tiêu chuẩn và BigQuery được cập nhật trong vòng 72 giờ đó, bạn có thể thấy sự khác biệt giữa chúng. Để triển khai như vậy, bạn nên so sánh trên dữ liệu cũ hơn hơn 72 giờ.
Báo cáo có số lượng giá trị riêng biệt cao
Giả sử bạn đang xem báo cáo thông qua báo cáo chuẩn hoặc Data API. Báo cáo này hiển thị một lượng lớn dữ liệu và có các phương diện ở mức cao số lượng giá trị riêng biệt. Phương diện có số lượng giá trị riêng biệt cao có thể khiến báo cáo vượt quá hạn mức về số lượng giá trị riêng biệt cho bảng cơ bản. Khi điều này xảy ra, Google Analytics sẽ nhóm các giá trị ít gặp hơn và gắn nhãn chúng là (other).
Sử dụng ví dụ về quy mô nhỏ và được đơn giản hoá, nếu giới hạn về số lượng giá trị riêng biệt cho bảng cơ bản là 10 hàng, đây là những gì bạn có thể mong đợi sẽ xảy ra:
Như bạn có thể thấy, tổng số sự kiện vẫn không thay đổi. Tuy nhiên, ít hơn các giá trị thường xuyên được nhóm lại với nhau và bạn không thể tổng hợp lại bảng dựa trên trên bất kỳ tham số nào (ví dụ: bạn không thể lấy bảng tổng hợp và suy ra tổng số số lượng sự kiện cho một thành phố cụ thể có độ chính xác cao). Ví dụ này nhận được nhiều kết quả hơn nếu bạn lọc dữ liệu tổng hợp dựa trên bất kỳ phương diện nào.
Việc nhóm hàng (other) này chỉ xảy ra trong mô-đun báo cáo và Data API khi báo cáo vượt quá giới hạn lượng số. Nếu bạn thực hiện từ BigQuery, bạn sẽ luôn có được dữ liệu thực tế - các hàng chi tiết nhất. Đọc thêm về hàng (other) và các phương pháp hay nhất về cách tránh.
Google Tín hiệu
Việc kích hoạt Tín hiệu của Google trên tài sản GA4 sẽ mang lại một số lợi ích, bao gồm cả
loại bỏ người dùng trùng lặp trên các nền tảng và thiết bị. Nếu bạn không thu thập thông tin người dùng
Mã nhận dạng hoặc kích hoạt tín hiệu của Google và một người xem trang web của bạn trên 3 nền tảng
trình duyệt web khác nhau, thì Google Analytics sẽ phân bổ hoạt động đó cho
người dùng khác nhau và BigQuery Export sẽ có 3 user_pseudo_id
riêng biệt.
Ngược lại, khi tín hiệu của Google được kích hoạt và người đó đã đăng nhập vào
một Tài khoản Google trong cả ba trình duyệt, Google Analytics sẽ phân bổ
hoạt động cho một người dùng và phản ánh số lượng đó trong các nền tảng báo cáo chuẩn.
Tuy nhiên, BigQuery sẽ vẫn hiển thị 3 user_pseudo_id
riêng biệt vì
Thông tin về tín hiệu của Google không có trong BigQuery Export. Do đó,
các báo cáo có dữ liệu về tín hiệu của Google sẽ có nhiều khả năng sẽ có ít người dùng hơn so với
sang BigQuery Export.
Cách tốt nhất để giảm tác động này là triển khai User-ID trong GA4 của bạn
tài sản cùng với việc kích hoạt Tín hiệu của Google. Điều này sẽ đảm bảo rằng
loại bỏ trùng lặp diễn ra trước tiên dựa trên user_id
. Đối với người dùng đã đăng nhập, user_id
sẽ được điền sẵn trong BigQuery và có thể được dùng cho mục đích tính toán.
Tuy nhiên, đối với người dùng chưa đăng nhập (tức là các phiên không có user_id
),
Tín hiệu của Google sẽ vẫn được dùng để loại bỏ trùng lặp.
Ngoài ra, xin lưu ý rằng một số báo cáo trong nền tảng báo cáo chuẩn có thể có đã áp dụng ngưỡng và không trả về một số dữ liệu nhất định. Hầu hết thông tin có thể bị thường không có trong BigQuery Export.
Chế độ đồng ý và dữ liệu được mô hình hoá
Chế độ đồng ý trên trang web và ứng dụng di động cho phép bạn thông báo ý kiến của người dùng
cookie hoặc mã nhận dạng ứng dụng hoặc cookie của bạn cho Google. Khi khách truy cập từ chối,
GA4 bổ sung dữ liệu còn thiếu khi thu thập dữ liệu bằng quy trình lập mô hình sự kiện chính và hành vi
lập mô hình. Tính năng xuất sự kiện BigQuery không có dữ liệu được mô hình hoá nào.
Khi bạn triển khai chế độ đồng ý, tập dữ liệu BigQuery sẽ chứa các ping không có cookie
do GA thu thập, và mỗi phiên hoạt động sẽ có một user_pseudo_id
riêng. Do
sẽ có sự khác biệt giữa các nền tảng báo cáo chuẩn và
dữ liệu chi tiết hơn trong BigQuery. Ví dụ: nhờ lập mô hình hành vi, bạn
có thể thấy số lượng người dùng đang hoạt động ít hơn so với BigQuery Export vì
quy trình lập mô hình có thể cố gắng dự đoán nhiều phiên hoạt động trong trường hợp người dùng không đồng ý
người dùng.
Xin nhắc lại, để giảm thiểu tác động của việc này, bạn nên triển khai User-ID trong GA4 của mình
thuộc tính này. user_id
và các phương diện tuỳ chỉnh được xuất sang BigQuery bất kể
trạng thái đồng ý của người dùng.
Dữ liệu phân bổ lưu lượng truy cập
Trong BigQuery, dữ liệu phân bổ lưu lượng truy cập có sẵn cho người dùng (lượt truy cập đầu tiên) và cấp sự kiện. Đây là những dữ liệu đã thu thập. Tuy nhiên, vì Google Analytics triển khai mô hình phân bổ của chính nó ở cấp phiên, thông tin đó được không có sẵn trực tiếp trong BigQuery Export và cũng không thể được tính toán với với dữ liệu có sẵn. Tuỳ thuộc vào trường hợp sử dụng, bạn có thể cân nhắc kết hợp tập dữ liệu BigQuery với mọi dữ liệu và toà nhà có liên quan của bên thứ nhất mô hình phân bổ của riêng bạn. Trong tương lai, dữ liệu bổ sung được thu thập cho lưu lượng truy cập phân bổ giá trị đóng góp có thể được cung cấp thông qua tính năng xuất sự kiện BigQuery.
Lỗi tính toán thường gặp
- Phương pháp tính toán: Khi tính toán các chỉ số khác nhau trong BigQuery,
hãy đảm bảo bạn đang sử dụng đúng phương pháp. Ví dụ:
- Phương thức tính số phiên chuẩn cho Google Analytics 4
đang tính các tổ hợp duy nhất của
user_pseudo_id
/user_id
vàga_session_id
bất kể khung thời gian. Trong Universal Analytics, phiên sẽ đặt lại lúc nửa đêm. Nếu bạn tuân theo mô hình UA, tính số phiên cho mỗi ngày và thêm các phiên đó để có tổng số phiên, bạn sẽ tính hai lần trong nhiều ngày. - Tuỳ thuộc vào Thông tin nhận dạng trong báo cáo mà bạn đã chọn, số lượng người dùng sẽ phải cập nhật phương pháp tính toán.
- Phương thức tính số phiên chuẩn cho Google Analytics 4
đang tính các tổ hợp duy nhất của
- Phạm vi phương diện và chỉ số: Đảm bảo rằng các phép tính của bạn sử dụng phương diện và chỉ số người dùng, phiên hoạt động, mặt hàng hoặc sự kiện ở phạm vi chính xác.
- Múi giờ: Trong BigQuery Export,
event_date
là dành cho thời gian báo cáo múi giờ trong khievent_timestamp
là dấu thời gian UTC tính bằng micrô giây. Loại đối thủ sau lượt đánh bóng tốt nhất là nếu một sử dụngevent_timestamp
trong truy vấn thì bạn phải điều chỉnh nó theo múi giờ báo cáo chính xác khi so sánh với số giao diện người dùng. - Lọc dữ liệu và giới hạn xuất: Nếu bạn đã thiết lập tính năng Lọc dữ liệu cho tính năng xuất sự kiện BigQuery hoặc khối lượng xuất sự kiện hằng ngày của bạn đã vượt quá nên dữ liệu xuất sự kiện BigQuery sẽ không khớp với dữ liệu chuẩn nền tảng báo cáo.
Với tất cả những điều đó, bài đăng này có phần nào liên quan đến UNNEST. Hy vọng bạn có thể CHỌN các giải pháp phù hợp cho dự án DISTINCT của bạn TỪ các nguyên tắc tại đây. Nếu bạn nếu bạn có thắc mắc, hãy THAM GIA máy chủ GA Discord Ở nơi chúng tôi hoan nghênh các truy vấn tốt nhất!