Menjembatani kesenjangan antara UI Google Analytics dan BigQuery Export

Minhaz Kazi, Advokat Developer, Google Analytics – April 2023


"Namun, mengapa angkanya tidak cocok dengan UI?"

Jika Anda sudah menggunakan data ekspor peristiwa BigQuery untuk properti GA4, pertanyaan ini pasti pernah Anda ajukan. Atau lebih parahnya lagi, orang lain menanyakan hal ini kepada Anda. Lalu, saat mencoba menjawabnya, Anda mungkin dihadapkan pada pertanyaan lanjutan yang ditakuti:

"Di mana lokasi informasi itu?"

Melalui artikel ini, kami akan mencoba menjelaskan keduanya.

Sebelum membahas perbedaan angka secara mendetail, mari pahami tujuan data ekspor peristiwa BigQuery yang dimaksud. Pengguna Google Analytics mengirimkan kumpulan data mereka ke GA melalui salah satu metode pengumpulan - Tag Google, Google Tag Manager, Measurement Protocol, SDK, dan Impor Data. Berdasarkan setelan properti GA, Google Analytics melakukan penambahan nilai yang signifikan ke kumpulan data sebelum sampai ke platform pelaporan standar termasuk laporan standar, Eksplorasi, dan Data API. Penambahan nilai ini dapat mencakup penyertaan Sinyal Google, pemodelan, atribusi traffic, prediksi, dsb.

Platform pelaporan standar bertujuan memberikan nilai maksimum kepada pengguna GA dengan friksi terendah. Namun, kami memahami bahwa di antara para pengguna, sebagian mungkin ingin mengganti penambahan nilai yang telah dilakukan Google Analytics atau bahkan melakukan sesuatu yang sepenuhnya disesuaikan. Untuk pengguna tersebut, ekspor peristiwa BigQuery adalah titik awal yang dimaksud. Ekspor peristiwa BigQuery akan memiliki kumpulan data, yang dikirim dari klien atau aplikasi ke Google Analytics. Ekspor peristiwa BigQuery tidak akan berisi data terperinci tentang sebagian besar penambahan nilai yang disebutkan di atas.

Oleh karena itu, untuk sejumlah besar kasus penggunaan, platform pelaporan standar dan data BigQuery Export tidak akan dapat direkonsiliasi jika menyangkut bagian penambahan nilai ini. Jika keduanya konsistensi secara internal dan cocok dengan data yang Anda kumpulkan, berarti Anda sudah siap.

Sekarang, mari kita bahas beberapa alasan spesifik perbedaan tersebut dan pelajari cara memitigasinya jika mungkin. Artikel ini hanya berfokus pada ekspor peristiwa Harian BigQuery, dan bukan ekspor Streaming.

Pengambilan sampel

Untuk secara akurat membandingkan data ekspor BigQuery Anda dengan laporan standar, laporan Data API, atau laporan Eksplorasi, pastikan laporan tersebut tidak dibuat berdasarkan data sampel. Sampling Data di GA4 memberikan detail lebih lanjut dan cara untuk menangani pengambilan sampel.

Pengguna aktif

Jika Anda menghitung semua pengguna yang telah menambahkan log setidaknya satu peristiwa di properti GA4, Anda akan mendapatkan metrik Total Pengguna. Meskipun metrik Total Pengguna tersedia di Eksplorasi di UI GA4, metrik pengguna utama yang digunakan untuk pelaporan di GA4 adalah Pengguna Aktif. Jika UI GA4 dan laporan hanya menyebut Pengguna, biasanya hal itu mengacu pada Pengguna Aktif. Jadi, saat menghitung jumlah pengguna dari data BigQuery, Anda perlu memfilter dan mempertahankan hanya pengguna aktif agar datanya dapat dibandingkan dengan UI GA. Metode penghitungan juga akan bervariasi berdasarkan Identitas Pelaporan yang Anda pilih.

Implementasi teknis

Dalam data ekspor peristiwa BigQuery, jika Anda menghitung jumlah User-ID unik, Anda akan mendapatkan jumlah Total Pengguna. Berikut contoh kueri yang menampilkan Total Pengguna dan Pengguna Baru berdasarkan 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;

Untuk memilih hanya pengguna aktif, batasi kueri Anda pada peristiwa dengan is_active_user adalah 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 menggunakan algoritme HyperLogLog++ (HLL++) untuk memperkirakan kardinalitas untuk metrik umum termasuk Pengguna Aktif dan Sesi. Artinya, jika Anda melihat jumlah unik metrik ini di UI atau melalui API, metrik tersebut merupakan perkiraan dengan presisi tertentu. Di BigQuery, karena Anda memiliki akses ke data terperinci, Anda dapat menghitung kardinalitas yang tepat untuk metrik ini. Jadi, metrik dapat bervariasi dalam jumlah kecil. Pada interval keyakinan 95%, presisinya mungkin sebesar ±1,63% untuk jumlah sesi. Tingkat presisi akan bervariasi untuk berbagai metrik dan akan berubah sesuai dengan interval keyakinan. Lihat Sketsa HLL++ untuk melihat tingkat presisi pada berbagai interval keyakinan untuk parameter presisi HLL++ yang berbeda-beda.

Implementasi teknis

Lihat Perkiraan jumlah unik di Google Analytics untuk memahami cara penerapan HLL++ di Google Analytics dan cara mereplikasi fungsi menggunakan kueri BigQuery.

Keterlambatan pengumpulan data

Tabel ekspor harian dibuat setelah GA mengumpulkan semua peristiwa untuk hari itu. Tabel harian dapat diperbarui hingga 72 jam setelah tanggal tabel yang berisi peristiwa yang diberi stempel waktu dengan tanggal tabel tersebut. Baca detail tentang hal ini dan lihat contohnya. Hal ini akan menjadi masalah yang lebih besar jika penerapan Firebase SDK atau Measurement Protocol Anda mengirimkan peristiwa yang offline atau tertunda. Bergantung pada kapan platform pelaporan standar dan BigQuery diperbarui dalam waktu 72 jam tersebut, Anda mungkin melihat perbedaan antara keduanya. Jika implementasi seperti itu dilakukan, sebaiknya bandingkan data yang lebih lama dari 72 jam.

Laporan berkardinalitas tinggi

Anggaplah Anda melihat laporan melalui laporan standar atau Data API. Laporan menampilkan data dalam jumlah besar dan memiliki dimensi dengan kardinalitas tinggi. Dimensi berkardinalitas tinggi dapat menyebabkan laporan melampaui batas kardinalitas untuk tabel pokok. Jika hal ini terjadi, Google Analytics akan mengelompokkan nilai yang lebih jarang dan melabelinya sebagai (other).

Dengan menggunakan contoh sederhana dan berskala kecil, jika batas kardinalitas untuk tabel pokok adalah 10 baris, berikut adalah hal yang akan terjadi:

Contoh sederhana untuk data Kebenaran dasar vs. Tabel gabungan dengan baris lain

Seperti yang dapat Anda lihat, jumlah total peristiwa tidak berubah. Namun, nilai yang lebih jarang dikelompokkan bersama dan Anda tidak dapat menggabungkan ulang tabel berdasarkan dimensi apa pun (misalnya, Anda tidak dapat mengambil tabel gabungan dan memperoleh total jumlah peristiwa untuk suatu kota dengan presisi tinggi). Contoh ini menjadi lebih penting jika Anda memfilter data gabungan berdasarkan salah satu dimensi.

Pengelompokan baris (other) ini hanya terjadi di modul pelaporan dan Data API saat laporan melampaui batas kardinalitas. Jika Anda melakukan penghitungan dari BigQuery, Anda akan selalu mendapatkan data kebenaran dasar, yaitu baris yang paling terperinci. Baca informasi selengkapnya tentang baris (other) dan praktik terbaik untuk menghindarinya.

Sinyal Google

Mengaktifkan Sinyal Google di properti GA4 memiliki sejumlah manfaat, termasuk menghapus duplikat pengguna di seluruh platform dan perangkat. Dengan asumsi ID pengguna dan Sinyal Google tidak diterapkan, jika seseorang melihat situs Anda di tiga browser web yang berbeda, Google Analytics akan menghitungnya sebagai tiga pengguna yang berbeda dan BigQuery Export akan memiliki tiga user_pseudo_id yang berbeda. Namun, saat Sinyal Google diaktifkan dan orang tersebut login ke satu Akun Google-nya di ketiga browser, Google Analytics akan menduplikasi satu pengguna dan menampilkan jumlah ini di platform pelaporan standar. Namun, BigQuery akan tetap menampilkan tiga user_pseudo_id yang berbeda. Tidak ada informasi Sinyal Google yang tersedia di BigQuery Export. Dengan demikian, laporan dengan data Sinyal Google kemungkinan besar akan memiliki lebih sedikit jumlah pengguna dibandingkan dengan BigQuery Export.

Cara terbaik untuk mengurangi efek ini adalah dengan menerapkan User-ID di properti GA4 Anda bersamaan dengan mengaktifkan Sinyal Google. Cara ini akan memastikan penghapusan duplikat terjadi terlebih dahulu berdasarkan user_id. Untuk pengguna yang login, kolom user_id akan diisi di BigQuery dan dapat digunakan untuk tujuan penghitungan. Namun, untuk pengguna yang tidak login (yaitu, sesi tanpa user_id), Sinyal Google akan tetap digunakan untuk penghapusan duplikat.

Perhatikan juga bahwa laporan tertentu di platform pelaporan standar mungkin telah disertai penerapan nilai minimum dan tidak menampilkan data tertentu. Sebagian besar informasi yang dapat dibatasi dengan nilai minimum biasanya tidak tersedia dalam BigQuery Export.

Mode izin di situs dan aplikasi seluler memungkinkan Anda menginformasikan status izin ID aplikasi atau cookie pengguna ke Google. Saat pengunjung menolak izin, GA4 akan mengisi kekurangan pengumpulan data dengan pemodelan konversi dan pemodelan perilaku. Tidak satu pun data sesuai model yang tersedia di ekspor peristiwa BigQuery. Jika mode izin diterapkan, set data BigQuery akan berisi ping tanpa cookie yang dikumpulkan oleh GA dan setiap sesi akan memiliki user_pseudo_id yang berbeda. Karena pemodelan, akan ada perbedaan antara data platform pelaporan standar dan data terperinci di BigQuery. Misalnya, karena pemodelan perilaku, Anda mungkin melihat lebih sedikit jumlah pengguna aktif dibandingkan dengan BigQuery Export karena pemodelan mungkin mencoba memprediksi beberapa sesi dari setiap pengguna yang tidak memberikan izin.

Sekali lagi, untuk mengurangi efek ini, Anda harus menerapkan User-ID di properti GA4. user_id dan dimensi kustom diekspor ke BigQuery, terlepas dari status izin pengguna.

Data atribusi traffic

Dalam BigQuery, data atribusi traffic tersedia di tingkat pengguna (kunjungan pertama) dan tingkat peristiwa. Ini adalah data yang dikumpulkan. Namun, karena Google Analytics menerapkan model atribusinya sendiri di tingkat sesi, informasi tersebut tidak langsung tersedia di BigQuery Export dan tidak dapat dihitung dengan akurasi penuh menggunakan data yang tersedia. Bergantung pada kasus penggunaan, Anda dapat mempertimbangkan untuk menggabungkan set data BigQuery dengan data pihak pertama yang relevan dan membuat model atribusi Anda sendiri. Di masa mendatang, data tambahan yang dikumpulkan untuk atribusi traffic mungkin tersedia melalui ekspor peristiwa BigQuery.

Error penghitungan umum

  • Metode penghitungan: Saat menghitung berbagai metrik di BigQuery, pastikan Anda menggunakan metodologi yang benar. Contoh:
    • Metode standar penghitungan sesi untuk properti Google Analytics 4 adalah menghitung kombinasi unik user_pseudo_id/user_id dan ga_session_id, terlepas dari jangka waktunya. Di Universal Analytics, sesi akan direset pada tengah malam. Jika Anda mengikuti model UA dengan menghitung sesi setiap hari dan menjumlahkannya untuk mendapatkan total sesi, Anda akan menghitung dua kali sesi yang berlangsung selama beberapa hari.
    • Bergantung pada Identitas Pelaporan yang Anda pilih, metode penghitungan jumlah pengguna harus diperbarui.
  • Cakupan dimensi dan metrik: Pastikan penghitungan Anda menggunakan cakupan tingkat pengguna, sesi, item, atau peristiwa yang benar.
  • Zona Waktu: Dalam BigQuery Export, event_date adalah untuk zona waktu pelaporan, sementara event_timestamp adalah stempel waktu UTC dalam mikrodetik. Jadi idealnya, jika seseorang menggunakan event_timestamp dalam kueri, parameter tersebut harus disesuaikan dengan zona waktu pelaporan yang benar saat dibandingkan dengan angka UI.
  • Batas pemfilteran data dan Ekspor: Jika Anda telah menyiapkan Pemfilteran Data untuk ekspor peristiwa BigQuery atau volume ekspor peristiwa harian melampaui batas, data ekspor peristiwa BigQuery tidak akan cocok dengan platform pelaporan standar.

DENGAN semua penjelasan di atas, masih ada sejumlah hal yang harus DIPERLUAS di postingan ini. Semoga Anda dapat MEMILIH solusi yang tepat untuk project UNIK Anda DARI pedoman di sini. Jika ada pertanyaan, BERGABUNGLAH dengan server GA Discord, TEMPAT ideal untuk bertanya.