Google Analytics kullanıcı arayüzü ile BigQuery Export arasındaki boşluğu doldurma

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 makalede 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 makalede Akış dışa aktarma değil, yalnızca BigQuery günlük etkinlik dışa aktarımı ele alınmaktadı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 Veri API'sı aracılığıyla görüntülediğinizi varsayalım. 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:

Kesin referans verileri ve Diğer satırla birleştirilmiş tablo için basitleştirilmiş örnek

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 ve Google Sinyalleri'nin uygulanmadığı varsayıldığında, bir kullanıcı web sitenizi üç farklı web tarayıcısında görüntülerse Google Analytics bunu üç farklı kullanıcı olarak sayar ve BigQuery Export'ta üç ayrı user_pseudo_id olur. Ancak Google sinyalleri etkinleştirildiğinde ve kullanıcı üç tarayıcıda da tek Google Hesabına giriş yaptığında, Google Analytics bir kullanıcıyı kopyalar ve bu sayıyı standart raporlama platformlarında gösterir. Ancak BigQuery yine de üç ayrı user_pseudo_id gösterir. BigQuery Export'ta Google sinyalleriyle ilgili bilgi bulunmaz. 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.

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ı dönüşüm 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. Gelecekte, trafik ilişkilendirme 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 ve ga_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.
  • 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, sorguda event_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.