Google Analytics'te benzersiz sayı tahmini

Minhaz Kazi, Geliştirici Destekçisi, Google Analytics – Ekim 2022

Büyük veri kümelerinde tam olarak farklı sayıların (ör. kardinalite) ölçülmesi performansı etkiler. Google Analytics 4 mülkleri En çok kullanılan metrikler için kardinaliteyi tahmin etmek amacıyla HyperLogLog++ (HLL++) algoritması Etkin Kullanıcılar ve Oturumlar dahil. Örneğin, Etkin Google Analytics kullanıcı arayüzündeki kullanıcı sayısı ve Data API üzerinden yaklaşık bir sayı olacaktır. Bu metrikler için HLL++ kullanmak daha yüksek tahmin doğruluğu ve daha düşük hata sınırlarıyla daha iyi performans sağlar. Bu Blog yayınında, HLL++'nın Google Analytics 4 mülklerinde nasıl kullanıldığına dair ayrıntılar yer alıyor. ve BigQuery etkinlik dışa aktarımını kullanarak tahminlerden bazılarını nasıl çoğaltabileceğinizi dışı verilerdir.

HLL++ hakkında

HLL++ kardinaliteyi tahmin ederken daha az bellek kullanır ve performansı iyileştirir. HLL++, HyperLogLog algoritması üzerinden yapılan genişletmelere sahiptir ve HyperLogLog in Practice: Son Teknoloji Durumu Algoritmik Mühendisliği Kardinalite Tahmin Algoritması. HLL++ precision parametresindeki değişiklikler ve hesaplanan istatistiklerin doğruluğundan bahsedilir. Her bir parametre değeri hatayı azaltır ancak bellek tüketimini artırır.

BigQuery'de benzersiz sayı uygulaması

  • Tam kardinaliteyi ölçmek için COUNT(DISTINCT) değerini kullanın. Bu yaklaşım, daha fazla bellek içerir ve özellikle büyük veri kümelerinde daha uzun sürer.
  • APPROX_COUNT_DISTINCT, HLL++ ile sonuçları tahmin eder. Ancak, APPROX_COUNT_DISTINCT, kullanıcıların yaklaşık değeri yapılandırmasına izin vermiyor emin olun.
  • Özel precision değerlerini kullanmak için HyperLogLog++ işlevlerini kullanın. Görüntüleyin İzin verilen precision değerleri ve güven için HLL++ Çizimler aralıklarında görüntüleyebilirsiniz.
  • sparse precision, HLL+ için başka bir parametredir. BigQuery'de sparse precision değeri kullanıcı tarafından tanımlanamaz ve precision + 5 olarak sabitlenir.

Google Analytics 4 mülklerinde HLL++ Uygulaması

Google Analytics 4, şu öğelerin kardinalitesini ölçmek için aşağıdaki yapılandırmayı kullanır: kullanabilirsiniz.

Metrik precision sparse precision
Oturumlar 12 17
Etkin Kullanıcı Sayısı 14 25
Toplam Kullanıcı Sayısı 14 25

Google Analytics Etkinlik verileriyle BigQuery HLL++ İşlevlerini kullanma

Google Analytics 4 mülkünüzün etkinlik verileri BigQuery'de mevcutsa kullanıcı arayüzündeki metrikleri BigQuery verileriyle eşleştirmeyi deneyebilir. Aşağıdaki örnekler varsayalım:

  • Google Analytics 4 için raporlama kimliği By device only olarak ayarlandı
  • Diğer olası tutarsızlık kaynakları, ör. raporlama saat diliminizi ele alınır.

Toplam Kullanıcı Sayısı

COUNT(DISTINCT) kullanılarak tam sayı:

SELECT
  COUNT(DISTINCT user_pseudo_id) AS exact_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

APPROX_COUNT_DISTINCT kullanılarak yapılan yaklaşık sayı:

SELECT
  APPROX_COUNT_DISTINCT(user_pseudo_id) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

BigQuery HLL++ işlevlerini kullanarak APPROX_COUNT_DISTINCT kodunu çoğaltabilirsiniz. Bu APPROX_COUNT_DISTINCT ile aynı veya çok benzer sonuçlar döndürür:

SELECT
  HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 15)) AS approx_total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

Son olarak, verileri Google Analytics kullanıcı arayüzünde kopyalamak için precision = 14 işlevini kullanın:

SELECT
  HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS total_user_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

Etkin kullanıcı sayısı

BigQuery etkinlik dışa aktarma tablosundan Etkin Kullanıcı Sayısı sayısını hesaplamak için öncelikle Etkinlikleri yalnızca Etkin Kullanıcılar için filtrelemeniz gerekir. Etkin Kullanıcı filtresi bu makalenin kapsam dışında.

WITH ActiveUsers AS
(
  SELECT
    user_pseudo_id
  FROM
    `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
  WHERE
  <implement active user filter logic>
)
SELECT
  HLL_COUNT.EXTRACT(HLL_COUNT.INIT(user_pseudo_id, 14)) AS active_user_count,
FROM ActiveUsers

Oturum sayısı

ga_session_id etkinlik parametresi, şunun için tekilleştirilmiş oturumları tanımlar: her bir kullanıcıya oluşturabilirsiniz. user_pseudo_id ve ga_session_id kombinasyonu şöyle olacak: benzersiz oturumlar oluşturun. Bu, resmî bir kapanışla Google Analytics 4 mülklerinde oturumları sayma. Oturumlar için precision 12'dir.

SELECT
  HLL_COUNT.EXTRACT(
    HLL_COUNT.INIT(
      CONCAT(
        user_pseudo_id,
        (SELECT `value` FROM UNNEST(event_params) WHERE key = 'ga_session_id' LIMIT 1).int_value),
      12)) AS session_count,
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

Bu blog yayınındaki sorguları Temel Sorgular ve BigQuery etkinliğinden ek analizler elde etmek için Gelişmiş Sorgu örnekleri Google Analytics 4 mülklerinizin verilerini dışa aktarabilirsiniz. Mülkünüz büyük miktarda etkinlik verisi içeriyorsa, HLL++ işlevlerini kullanarak BigQuery hesabınızda yaygın olarak kullandığınız diğer metriklerin kardinalitesini tahmin edin daha fazla bilgi edineceksiniz. HLL++ ve kardinalite hesaplamasının neden pahalı olduğu hakkında daha fazla bilgi edinmek için hakkında daha fazla bilgi edinmek için Cloud Blogu'ndaki ayrıntılı blog yayınını okuyun: Büyük veri kümelerinde ayrımı hızlandırmak için HLL++ kullanma.