Minhaz Kazi, Developer Advocate, Google Analytics - Nisan 2023
"Peki sayılar neden kullanıcı arayüzüyle eşleşmiyor?"
GA4 mülkünüzün BigQuery etkinlik dışa aktarma verileriyle çalıştıysanız bu soruyu bir noktada kesinlikle sormuşsunuzdur. Daha da kötüsü, sizden bir başkası istedi. Cevap vermeye çalışırken muhtemelen size korkunç bir takip sorusu da soruldu:
"Peki bu mesajı nerede görüyor?"
Bu gönderiyle her ikisine de ışık tutmaya çalışacağız.
Sayıların nasıl değişiklik gösterdiğine dair ayrıntılara girmeden önce, BigQuery etkinlik dışa aktarma verilerinin amaçlanan amacını anlamanız önemlidir. Google Analytics kullanıcıları, topladıkları verileri Google etiketi, Google Etiket Yöneticisi, Measurement Protocol, SDK'lar ve Verileri İçe Aktarma yöntemlerinden birini kullanarak GA'ya gönderir. GA mülkünün ayarlarına bağlı olarak Google Analytics, toplanan verilere standart raporlar, Explorations ve Data API gibi standart raporlama yüzeylerine ulaşmadan önce önemli ölçüde değer katar. Bu değer eklemeleri arasında Google sinyallerinin eklenmesi, modelleme, trafik ilişkilendirme, tahmin vb. yer alabilir.
Standart raporlama platformları, GA kullanıcılarına en az sorun yaşandığında en yüksek değeri sunmayı amaçlar. Ancak, geniş kullanıcı yelpazesi söz konusu olduğunda, bazılarının Google Analytics'in kattığı değerleri desteklemek isteyebileceğini, hatta tamamen özelleştirilmiş bir şeyler yapmak isteyebileceğini biliyoruz. Bu kullanıcılar için BigQuery etkinlik dışa aktarımı hedeflenen başlangıç noktasıdır. BigQuery etkinlik dışa aktarma işleminde, istemciden veya uygulamadan Google Analytics'e gönderilen toplanmış veriler bulunur. BigQuery etkinlik dışa aktarımı, yukarıda belirtilen çoğu değer eklemesiyle ilgili ayrıntılı verileri içermez.
Bu nedenle, çok sayıda kullanım alanında, bu değer katmayı sağlayan parçalar söz konusu olduğunda standart raporlama yüzeyleri ve BigQuery dışa aktarma verilerinin mutabık kılınması beklenmez. İkisinde de iç tutarlılık varsa ve bunlar topladıklarınızla eşleşiyorsa devam edebilirsiniz.
Şimdi farklılıkların belirli nedenlerinden bazılarına değinip mümkün olan durumlarda bunları azaltmanın yollarını keşfedelim. Bu yayının odak noktası, Akış dışa aktarma değil, yalnızca BigQuery günlük etkinlik dışa aktarımıdır.
Örneklendirme
BigQuery Export verilerinizin standart raporlar, Data API raporları veya Exploration raporlarıyla doğru bir şekilde karşılaştırılması için verilerin örneklenmiş verilere dayanmadığını onaylayın. GA4'teki Veri Örnekleme, daha fazla ayrıntı ve örneklemeyi ele alma yöntemleri sağlar.
Etkin kullanıcı sayısı
GA4 mülkünüzde en az bir etkinlik kaydeden tüm kullanıcıları sayarsanız Toplam Kullanıcı Sayısı metriğini elde edersiniz. Toplam Kullanıcı Sayısı metriği GA4 kullanıcı arayüzündeki Explorations'da kullanılabilir ancak GA4'te raporlama için kullanılan birincil kullanıcı metriği Etkin Kullanıcı Sayısı'dır. GA4 kullanıcı arayüzünde ve raporlarda yalnızca Kullanıcılar'dan bahsediliyorsa bu ifade genellikle Etkin Kullanıcı Sayısı'nı ifade eder. Bu nedenle, BigQuery verilerinden kullanıcı sayısını hesaplarken sayıları GA kullanıcı arayüzüyle karşılaştırılabilir hale getirmek için yalnızca etkin kullanıcıları filtrelemeniz ve tutmanız gerekir. Hesaplama yöntemi, seçtiğiniz Raporlama Kimliği'ne göre de değişiklik gösterir.
Teknik uygulama
BigQuery etkinlik dışa aktarma verilerinde farklı User-ID'lerin sayısını hesaplarsanız Toplam Kullanıcı Sayısı'nı alırsınız. Aşağıda, user_pseudo_id
metriğini temel alarak hem Toplam Kullanıcı Sayısı hem de Yeni Kullanıcı Sayısı'nı gösteren örnek bir sorgu verilmiştir:
-- 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;
Yalnızca etkin kullanıcıları seçmek için sorgunuzu is_active_user
değeri true
olan etkinliklerle sınırlandırın:
-- 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, Etkin Kullanıcı Sayısı ve Oturum Sayısı da dahil olmak üzere yaygın metriklerin kardinalitesini tahmin etmek için HyperLogLog++ (HLL++) algoritmasını kullanır. Diğer bir deyişle, kullanıcı arayüzünde veya API üzerinden bu metriklerin benzersiz sayısını görüntülediğinizde belirli bir hassasiyetle yaklaşık değerler gösterilir. BigQuery'de ayrıntılı verilere erişiminiz olduğundan bu metriklerin kardinalitesini tam olarak hesaplayabilirsiniz. Dolayısıyla, metriklerde küçük bir fark olabilir. %95 güven aralığında, oturum sayısı için doğruluk ±% 1,63 olabilir. Kesinlik düzeyleri, farklı metrikler için değişiklik gösterir ve güven aralıklarına göre değişir. HLL++'nın farklı hassasiyet parametreleriyle ilgili farklı güven aralıklarındaki hassasiyet düzeyleri için HLL++ Çizimler bölümüne bakın.
Teknik uygulama
HLL++'nın Google Analytics'te nasıl uygulandığını ve BigQuery sorgularını kullanarak işlevi nasıl çoğaltabileceğinizi anlamak için Google Analytics'te benzersiz sayı tahmini bölümüne bakın.
Veri toplama gecikmesi
Günlük dışa aktarma tabloları, GA'nın o güne ait tüm etkinlikleri toplamasından sonra oluşturulur. Günlük tablolar, tablo tarihinden 72 saat sonrasına kadar zaman damgasıyla tablonun tarihi bulunan etkinliklerle güncellenebilir. Bu konuyla ilgili ayrıntıları okuyun ve örneklere bakın. Firebase SDK'sı veya Measurement Protocol uygulamanız çevrimdışı ya da gecikmeli etkinlikleri gönderiyorsa bu durum daha çok sorun teşkil eder. Standart raporlama platformunun ve BigQuery'nin bu 72 saat içinde güncellendiği zamana bağlı olarak aralarında farklılıklar görebilirsiniz. Bu tür bir uygulama için karşılaştırmalar, 72 saatten eski veriler üzerinde yapılmalıdır.
Yüksek kardinaliteli raporlar
Bir raporu standart raporlar veya Data API aracılığıyla görüntülediğinizi varsayın. Rapor büyük miktarda veri gösterir ve yüksek kardinaliteye sahip boyutlara sahiptir. Yüksek kardinaliteli boyutlar, raporun temel tablonun kardinalite sınırını aşmasına neden olabilir. Böyle bir durumda, Google Analytics daha seyrek karşılaşılan değerleri gruplandırır ve bunları (diğer) olarak etiketler.
Basitleştirilmiş ve küçük ölçekli bir örnek kullanırsak temel tablonun kardinalite sınırı 10 satırsa şöyle bir sonuç elde edebilirsiniz:
Gördüğünüz gibi, toplam etkinlik sayısı değişmez. Bununla birlikte, daha seyrek görülen değerler birlikte gruplandırılır ve tabloyu herhangi bir boyuta göre yeniden toplayamazsınız (ör. birleştirilmiş tabloyu alıp yüksek hassasiyetle belirli bir şehir için toplam etkinlik sayısını türetemezsiniz). Birleştirilmiş verileri boyutlardan herhangi birine göre filtrelerseniz örnek daha derinlik kazanır.
(other) satırının bu gruplandırılması, yalnızca raporlama modülünde ve Data API'de, rapor kardinalite sınırını aştığında gerçekleşir. Hesaplamalarınızı BigQuery'den yaparsanız her zaman kesin referans verilerine, yani en ayrıntılı satırlara ulaşırsınız. (other) satırı ve bundan nasıl kaçınılacağıyla ilgili en iyi uygulamalar hakkında daha fazla bilgi edinin.
Google Sinyalleri
GA4 mülkünüzde Google sinyallerini etkinleştirmenin çeşitli avantajları vardır. Örneğin, kullanıcıları platformlar ve cihazlar genelinde tekilleştirebilirsiniz. User-ID'leri toplamaz veya Google Sinyallerini etkinleştirmezseniz ve bir kullanıcı web sitenizi üç farklı web tarayıcısında görüntülerse Google Analytics bu etkinliği üç farklı kullanıcıyla ilişkilendirir ve BigQuery Export'ta üç ayrı user_pseudo_id
olur.
Google sinyalleri etkinleştirildiğinde ve kullanıcı her üç tarayıcıda da tek Google Hesabına giriş yaptığında, Google Analytics bu etkinliği bir kullanıcıyla ilişkilendirir ve bu sayıyı standart raporlama platformlarına yansıtır.
Ancak Google sinyalleriyle ilgili bilgiler BigQuery Export'ta bulunmadığından BigQuery yine de üç ayrı user_pseudo_id
gösterir. Bu nedenle, Google Sinyalleri verilerine sahip raporlar, BigQuery Export'a kıyasla büyük olasılıkla daha az kullanıcı sayısına sahip olur.
Bu etkiyi azaltmanın en iyi yolu, Google sinyallerini etkinleştirmekle birlikte GA4 mülkünüze User-ID'ler uygulamaktır. Böylece, tekilleştirme ilk olarak user_id
değerine göre gerçekleşir. Oturum açmış kullanıcılar için user_id
alanı BigQuery'de doldurulur ve hesaplama amacıyla kullanılabilir.
Ancak oturum açmamış kullanıcılar (ör. user_id
içermeyen oturumlar) söz konusu olduğunda Google sinyalleri tekilleştirme için kullanılmaya devam eder.
Ayrıca, standart raporlama platformlarındaki belirli raporlara eşik uygulanmış olabileceğini ve belirli verileri döndürmediğini unutmayın. Eşiğe tabi olabilecek çoğu bilgi genellikle BigQuery Export'ta mevcut değildir.
İzin modu ve modellenmiş veriler
Web siteleri ve mobil uygulamalardaki izin modu, kullanıcılarınızın çerez veya uygulama tanımlayıcısı izin durumunu Google'a iletmenizi sağlar. Ziyaretçiler izin vermeyi reddettiğinde GA4, veri toplama boşluklarını önemli etkinlik modelleme ve davranış modelleme ile doldurur. Modellenmiş verilerin hiçbiri BigQuery etkinlik dışa aktarma özelliğinde kullanılamaz.
İzin modu uygulandığında, BigQuery veri kümesi, GA tarafından toplanan çerezsiz ping'leri içerir ve her oturumun user_pseudo_id
değeri farklı olur. Modelleme nedeniyle standart raporlama platformları ile BigQuery'deki ayrıntılı veriler arasında farklar olacaktır. Örneğin, davranış modelleme nedeniyle BigQuery Export'a kıyasla daha az sayıda etkin kullanıcı görebilirsiniz. Bunun nedeni, modellemenin rızasız kullanıcıların birden fazla oturumunu tahmin etmeye çalışabileceğidir.
Bunun etkisini azaltmak için GA4 mülkünüzde User-ID'leri uygulamanız gerekir. user_id
ve özel boyutlar, kullanıcılarınızın izin durumuna bakılmaksızın BigQuery'ye aktarılır.
Trafik ilişkilendirme verileri
BigQuery trafik ilişkilendirme verileri, kullanıcı (ilk ziyaret) ve etkinlik düzeyinde kullanılabilir. Bunlar toplanan verilerdir. Ancak Google Analytics kendi ilişkilendirme modelini oturum düzeyinde uyguladığı için bu bilgiler ne doğrudan BigQuery Export'ta kullanılabilir ne de mevcut verilerle tam doğru bir şekilde hesaplanamaz. Kullanım alanınıza bağlı olarak, BigQuery veri kümesini ilgili birinci taraf verileriyle birleştirip kendi ilişkilendirme modelinizi oluşturabilirsiniz. İleride, trafiği ilişkilendirmek için toplanan ek veriler BigQuery etkinlik dışa aktarma yoluyla kullanılabilir.
Sık karşılaşılan hesaplama hataları
- Hesaplama yöntemi: BigQuery'de farklı metrikleri hesaplarken doğru yöntemi kullandığınızdan emin olun. Örneğin:
- Google Analytics 4 mülkleri için oturum saymanın standart yöntemi, zaman aralığından bağımsız olarak
user_pseudo_id
/user_id
vega_session_id
benzersiz kombinasyonlarını saymaktır. Universal Analytics'te oturumlar gece yarısı sıfırlanır. UA modelini izler, her gün için oturumları hesaplar ve toplam oturum sayısını elde etmek için bunları toplarsanız birden fazla güne yayılan oturumları iki kez saymış olursunuz. - Seçtiğiniz Raporlama Kimliği'ne bağlı olarak, kullanıcı sayısı hesaplama yönteminin güncellenmesi gerekir.
- Google Analytics 4 mülkleri için oturum saymanın standart yöntemi, zaman aralığından bağımsız olarak
- Boyut ve metrik kapsamı: Hesaplamalarınızda doğru kullanıcı, oturum, öğe veya etkinlik düzeyinde kapsamın kullanıldığından emin olun.
- Saat Dilimi: BigQuery Export'ta
event_date
raporlama saat dilimi,event_timestamp
ise mikrosaniye cinsinden UTC zaman damgasıdır. Bu nedenle ideal olarak, sorgudaevent_timestamp
kullanılıyorsa bu değerin, kullanıcı arayüzü numaralarıyla karşılaştırılırken doğru raporlama saat dilimine göre ayarlanması gerekir. - Veri filtreleme ve dışa aktarma sınırları: BigQuery etkinlik dışa aktarma işleminiz için Veri filtreleme ayarladıysanız veya günlük etkinlik dışa aktarma hacminiz sınırı aştıysa BigQuery etkinlik dışa aktarma verileri standart raporlama yüzeyleriyle eşleşmez.
Tüm bunlarla birlikte, bu gönderide biraz UNNEST var. Umarız DISTINCT projeniz için doğru çözümleri buradaki yönergelerden SEÇebilirsiniz. Sorularınız varsa WHERE sorguların en hoş olduğu GA Discord sunucusuna KATILIN.