Sprawdzanie danych z Testów A/B za pomocą BigQuery

Oprócz wyświetlania danych eksperymentu A/B Testing w konsoli Firebase możesz je też sprawdzać i analizować w BigQuery. Chociaż tabela A/B Testing nie ma osobnej tabeli BigQuery, przynależność do eksperymentu i wariantu jest przechowywana w każdym zdarzeniu Google Analytics w tabelach zdarzeń Analytics.

Właściwości użytkownika zawierające informacje o eksperymencie mają postać userProperty.key like "firebase_exp_%" lub userProperty.key = "firebase_exp_01", gdzie 01 to identyfikator eksperymentu, a userProperty.value.string_value zawiera indeks (liczony od 0) wariantu eksperymentu.

Możesz używać tych właściwości użytkownika w eksperymencie do wyodrębniania danych eksperymentu. Dzięki temu możesz dzielić wyniki eksperymentu na wiele różnych sposobów i niezależnie weryfikować wyniki A/B Testing.

Aby rozpocząć, wykonaj te czynności zgodnie z opisem w tym przewodniku:

  1. Włącz eksport BigQuery do Google Analytics w konsoli Firebase
  2. Dostęp do danych A/B Testing za pomocą BigQuery
  3. Przykładowe zapytania

Włączanie eksportowania danych BigQuery do Google Analytics w konsoli Firebase

Jeśli korzystasz z abonamentu Spark, możesz używać piaskownicy BigQuery do uzyskiwania dostępu do BigQuery bezpłatnie, z zastosowaniem limitów piaskownicy. Więcej informacji znajdziesz w cenniku i piaskownicy BigQuery.

Najpierw sprawdź, czy dane Analytics są eksportowane do BigQuery:

  1. Otwórz kartę Integracje, do której możesz przejść, klikając > Ustawienia projektu w konsoli Firebase.
  2. Jeśli używasz już BigQuery w innych usługach Firebase, kliknij Zarządzaj. W przeciwnym razie kliknij Połącz.
  3. Zapoznaj się z informacjami na temat łączenia Firebase z BigQuery, a potem kliknij Dalej.
  4. W sekcji Skonfiguruj integrację włącz przełącznik Google Analytics.
  5. Wybierz region i ustawienia eksportu.

  6. Kliknij Połącz z BigQuery.

W zależności od tego, jak chcesz wyeksportować dane, może minąć nawet dzień, zanim tabele staną się dostępne. Więcej informacji o eksportowaniu danych projektu do pliku BigQuery znajdziesz w artykule Eksportowanie danych projektu do pliku BigQuery.

Dostęp do danych A/B Testing w usłudze BigQuery

Zanim wykonasz zapytanie o dane dotyczące konkretnego eksperymentu, musisz uzyskać część lub wszystkie te informacje, aby użyć ich w zapytaniu:

  • Identyfikator eksperymentu: możesz go znaleźć w adresie URL strony Przegląd eksperymentu. Jeśli np. adres URL wygląda tak: https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25, identyfikator eksperymentu to 25.
  • Identyfikator usługi Google Analytics: 9-cyfrowy identyfikator usługi Google Analytics. Znajdziesz go w sekcji Google Analytics. Pojawia się też w sekcji BigQuery, gdy rozwiniesz nazwę projektu, aby wyświetlić nazwę tabeli zdarzeń Google Analytics (project_name.analytics_000000000.events).
  • Data eksperymentu: aby tworzyć szybsze i skuteczniejsze zapytania, warto ograniczyć je do Google Analytics codziennie partycji tabeli zdarzeń, które zawierają dane eksperymentu – tabeli z sufiksem YYYYMMDD. Jeśli więc eksperyment trwał od 2 lutego do 2 maja 2024 r., musisz podać wartość _TABLE_SUFFIX between '20240202' AND '20240502'. Przykład: Wybieranie wartości konkretnego eksperymentu.
  • Nazwy zdarzeń: zwykle odpowiadają one danym celu skonfigurowanym w eksperymencie. Na przykład in_app_purchase zdarzenia, ad_impression lub user_retention zdarzenia.

Gdy już zbierzesz informacje potrzebne do wygenerowania zapytania:

  1. W konsoli Google Cloud otwórz BigQuery.
  2. Wybierz projekt, a następnie kliknij Utwórz zapytanie SQL.
  3. Dodaj zapytanie. Przykładowe zapytania do uruchomienia znajdziesz w sekcji Przykładowe zapytania.
  4. Kliknij Wykonaj.
.

Wykonywanie zapytań o dane eksperymentu za pomocą zapytania wygenerowanego automatycznie przez konsolę Firebase

Jeśli korzystasz z abonamentu Blaze, na stronie Przegląd eksperymentu znajdziesz przykładowe zapytanie, które zwraca nazwę eksperymentu, jego warianty, nazwy zdarzeń i liczbę zdarzeń w eksperymencie, który wyświetlasz.

Aby uzyskać i uruchomić automatycznie wygenerowane zapytanie:

  1. W konsoli Firebase otwórz A/B Testing i wybierz eksperyment A/B Testing, którego dotyczy zapytanie, aby otworzyć Przegląd eksperymentu.
  2. W menu Opcje w sekcji integracji BigQuery kliknij Wysyłanie zapytań do danych eksperymentu. Spowoduje to otwarcie projektu BigQuery w konsoli Google Cloud i wyświetlenie podstawowego zapytania, którego możesz użyć do uzyskania danych eksperymentu.

Ten przykład pokazuje wygenerowane zapytanie dotyczące eksperymentu z 3 wariantami (w tym z elementem bazowym) o nazwie „Eksperyment z zimowym powitaniem”. Zwraca nazwę aktywnego eksperymentu, nazwę wariantu, niepowtarzalne zdarzenie i liczbę zdarzeń. Pamiętaj, że kreator zapytań nie podaje nazwy projektu w nazwie tabeli, ponieważ otwiera się bezpośrednio w projekcie.

  /*
    This query is auto-generated by Firebase A/B Testing for your
    experiment "Winter welcome experiment".
    It demonstrates how you can get event counts for all Analytics
    events logged by each variant of this experiment's population.
  */
  SELECT
    'Winter welcome experiment' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'Welcome message (1)'
      WHEN '2' THEN 'Welcome message (2)'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_000000000.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

Więcej przykładów zapytań znajdziesz w artykule Przykładowe zapytania.

Przykładowe zapytania

W następnych sekcjach znajdziesz przykłady zapytań, które możesz wykorzystać do wyodrębniania danych eksperymentu A/B Testing z tabel zdarzeń Google Analytics.

Wyodrębnianie wartości odchylenia standardowego zakupów i eksperymentów ze wszystkich eksperymentów

Dane z eksperymentu możesz wykorzystać do samodzielnego sprawdzania wyników Firebase A/B Testing. Ten instrukcja SQL BigQuery wyodrębnia warianty eksperymentu, liczbę unikalnych użytkowników w każdym z nich oraz sumuje łączne przychody z zdarzeń in_app_purchaseecommerce_purchase oraz odchylenia standardowe dla wszystkich eksperymentów w zakresie dat określonym jako początek i koniec _TABLE_SUFFIX. Dane uzyskane z tego zapytania możesz wykorzystać w generatorze istotności statystycznej w przypadku testów t-Studenta w jednym kierunku, aby sprawdzić, czy wyniki podawane przez Firebase są zgodne z Twoją analizą.

Więcej informacji o tym, jak A/B Testing oblicza wnioskowanie, znajdziesz w artykule Interpretowanie wyników testów.

  /*
    This query returns all experiment variants, number of unique users,
    the average USD spent per user, and the standard deviation for all
    experiments within the date range specified for _TABLE_SUFFIX.
  */
  SELECT
    experimentNumber,
    experimentVariant,
    COUNT(*) AS unique_users,
    AVG(usd_value) AS usd_value_per_user,
    STDDEV(usd_value) AS std_dev
  FROM
    (
      SELECT
        userProperty.key AS experimentNumber,
        userProperty.value.string_value AS experimentVariant,
        user_pseudo_id,
        SUM(
          CASE
            WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
              THEN event_value_in_usd
            ELSE 0
            END) AS usd_value
      FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
      CROSS JOIN UNNEST(user_properties) AS userProperty
      WHERE
        userProperty.key LIKE 'firebase_exp_%'
        AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
        AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
      GROUP BY 1, 2, 3
    )
  GROUP BY 1, 2
  ORDER BY 1, 2;

Wybieranie wartości konkretnego eksperymentu

Ten przykładowy zapytanie pokazuje, jak uzyskać dane dotyczące konkretnego eksperymentu w BigQuery. To przykładowe zapytanie zwraca nazwę eksperymentu, nazwy wariantów (w tym podstawowego), nazwy zdarzeń i liczby zdarzeń.

  SELECT
    'EXPERIMENT_NAME' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'VARIANT_1_NAME'
      WHEN '2' THEN 'VARIANT_2_NAME'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_ANALYTICS_PROPERTY.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
    AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
  GROUP BY
    experimentVariant, eventName