Informacje o Testach A/B Firebase

Aby pomóc Ci w maksymalizacji trafności i użyteczności wyników testów, na tej stronie znajdziesz szczegółowe informacje o tym, jak działa Firebase A/B Testing.

Rozmiar próbki

Firebase A/B Testing wnioskowanie nie wymaga określenia minimalnej wielkości próby przed rozpoczęciem eksperymentu. Ogólnie zalecamy wybranie największego poziomu ekspozycji na eksperyment, na którym możesz eksperymentować bez obaw. Większe próby zwiększają szanse na uzyskanie istotnego statystycznie wyniku, zwłaszcza gdy różnice w skuteczności między wariantami są niewielkie. Możesz też skorzystać z internetowego kalkulatora wielkości próby, aby znaleźć zalecaną wielkość próby na podstawie charakterystyki eksperymentu.

Edytowanie eksperymentów

Możesz edytować wybrane parametry trwających eksperymentów, w tym:

  • Nazwa eksperymentu
  • Opis
  • Warunki kierowania
  • Wartości wersji

Aby edytować eksperyment:

  1. Otwórz stronę z wynikami eksperymentu, który chcesz zmodyfikować.
  2. W menu Więcej kliknij Edytuj bieżący eksperyment.
  3. Wprowadź zmiany i kliknij Opublikuj.

Pamiętaj, że zmiana działania aplikacji podczas trwania eksperymentu może mieć wpływ na wyniki.

Zasada przypisywania wariantów w Zdalnej konfiguracji

Użytkownicy, którzy spełniają wszystkie warunki kierowania eksperymentu (w tym warunek procentowego udziału w wyświetleniach), są przypisywani do wariantów eksperymentu zgodnie z wagą wariantu i haszem identyfikatora eksperymentu oraz identyfikatora instalacji Firebase użytkownika.

Google AnalyticsListy odbiorców mogą się wyświetlać z opóźnieniem i nie są dostępne od razu, gdy użytkownik spełnia kryteria listy odbiorców:

  • Gdy utworzysz nową listę odbiorców, zebranie przez nią nowych użytkowników może potrwać 24–48 godzin.
  • Nowi użytkownicy są zwykle dołączani do odpowiednich list odbiorców w ciągu 24–48 godzin od momentu spełnienia wymagań.

W przypadku kierowania związanego z czasem rozważ użycie właściwości użytkownika Google Analytics lub wbudowanych opcji kierowania, takich jak kraj lub region, język i wersja aplikacji.

Gdy użytkownik dołączy do eksperymentu, zostanie on na stałe przypisany do jego wariantu eksperymentu i otrzyma wartości parametrów z eksperymentu, dopóki eksperyment pozostanie aktywny, nawet jeśli jego właściwości użytkownika się zmienią i nie będą spełniać kryteriów kierowania eksperymentu.

zdarzenia aktywacji

Zdarzenia aktywacji eksperymentu ograniczają pomiary eksperymentu do użytkowników aplikacji, którzy wywołali zdarzenie aktywacji. Zdarzenie aktywacji eksperymentu nie ma żadnego wpływu na parametry eksperymentu pobierane przez aplikację. Parametry eksperymentu otrzymają wszyscy użytkownicy, którzy spełniają kryteria kierowania. Dlatego ważne jest, aby wybrać zdarzenie aktywacji, które występuje po pobraniu i aktywowaniu parametrów eksperymentu, ale przed ich użyciem do zmodyfikowania działania aplikacji.

Wagi wariantów

Podczas tworzenia eksperymentu możesz zmienić domyślne wagi wariantów, aby przypisać do nich większy odsetek użytkowników.

Interpretowanie wyników testu

Firebase A/B Testing korzysta z inferencji częstościowej, aby pomóc Ci określić prawdopodobieństwo, że wyniki eksperymentu mogły wystąpić wyłącznie z powodu przypadkowego przypadku. Prawdopodobieństwo to jest wyrażane za pomocą wartości prawdopodobieństwa, czyli wartości p. Wartość p to prawdopodobieństwo, że różnica w skuteczności między 2 wariantami mogła wystąpić przez przypadek. Wartość ta mieści się w przedziale od 0 do 1. Funkcja A/B Testing używa poziomu istotności 0,05, dzięki czemu:

  • Wartość p mniejsza niż 0,05 oznacza statystycznie istotną różnicę między wariantami, co oznacza, że raczej nie wystąpiła przypadkowa wartość.
  • Wartość p większa niż 0,05 wskazuje, że różnica między wariantami nie jest istotna statystycznie.

Dane eksperymentu są odświeżane raz dziennie, a czas ostatniej aktualizacji wyświetla się u góry strony z wynikami eksperymentu.

Wykres wyników eksperymentu pokazuje skumulowane średnie wartości wybranych danych. Jeśli na przykład śledzisz przychody z reklam na użytkownika, wyświetlane są zarejestrowane przychody na użytkownika, a jeśli śledzisz użytkowników, u których nie wystąpił błąd, możesz też śledzić odsetek użytkowników, u których nie wystąpiła awaria. Te dane są skumulowane od początku eksperymentu.

Wyniki są dzielone na dane obserwacyjnedane wnioskowania. Dane obserwowane są obliczane bezpośrednio na podstawie danych Google Analytics, a dane wnioskowania dostarczają wartości p i przedziałów ufności, które ułatwiają ocenę istotności statystycznej danych obserwowanych.

W przypadku każdego rodzaju danych wyświetlane są te statystyki:

Dane rzeczywiste

  • Łączna wartość danych śledzonych (liczba powracających użytkowników, liczba użytkowników, którzy doświadczyli awarii, łączne przychody)
  • Współczynnik określonych danych (współczynnik utrzymania, współczynnik konwersji, przychody na użytkownika)
  • Różnica procentowa (wzrost) między wersją a wersją podstawową

Dane wnioskowania

  • 95% CI (różnica średnich) wyświetla przedział zawierający wartość „prawda” śledzonych danych z 95% poziomem ufności. Jeśli na przykład eksperyment przynosi CI 95% przy szacunkowych łącznych przychodach w przedziale od 5 do 10 USD, z 95% prawdopodobieństwem rzeczywista różnica w środkach będzie pomiędzy 5 a 10 USD. Jeśli przedział CI zawiera 0, oznacza to, że nie wykryto statystycznie istotnej różnicy między wariantem a elementem bazowym.

    Wartości przedziału ufności są wyświetlane w formacie odpowiadającym śledzonej metryce. Na przykład czas (w godzinach) w przypadku utrzymania użytkowników, USD w przypadku przychodów z reklamy na użytkownika i procent w przypadku współczynnika konwersji.

  • Wartość p, która określa prawdopodobieństwo, że między wariantem a elementem bazowym nie ma prawdziwej różnicy. Innymi słowy, każda zaobserwowana różnica jest prawdopodobnie wynikiem przypadku. Im niższa wartość p, tym większe prawdopodobieństwo, że obserwowana skuteczność pozostanie prawdziwa w przyszłości. Wartość 0,05 lub niższa wskazuje na istotną różnicę i małe prawdopodobieństwo, że wyniki są przypadkowe. Wartości p są oparte na teście jednostronnym, w którym wartość wariantu jest większa niż wartość punktu odniesienia. Firebase używa testu t-Studenta z nierówną wariancją w przypadku zmiennych ciągłych (wartości liczbowe, np. przychody) oraz testu z proporcją z kryterium z zmienną z nierówną wariancją w przypadku danych o konwersjach (wartości binarne, np. utrzymanie użytkowników, użytkownicy, których nie dotknęła awaria, użytkownicy, którzy wywołali zdarzenie Google Analytics).

Wyniki eksperymentu zawierają ważne statystyki dotyczące każdego wariantu eksperymentu, w tym:

  • O ile dane eksperymentu są wyższe lub niższe od wartości wyjściowych (czyli rzeczywistych zaobserwowanych danych).
  • Prawdopodobieństwo, że zaobserwowana różnica między wariantem a elementem bazowym mogła wystąpić przez przypadek (wartość p)
  • Zakres, który prawdopodobnie zawiera „rzeczywistą” różnicę w skuteczności między wariantem a elementem bazowym w przypadku każdego rodzaju danych eksperymentu – sposób na poznanie scenariuszy „najlepszego” i „najgorszego” wyniku.

Interpretowanie wyników eksperymentów przeprowadzonych za pomocą Google Optimize

Firebase A/B Testing w przypadku eksperymentów rozpoczętych przed 23 października 2023 r. były generowane przez Google Optimize. Google Optimize używa wnioskowania bayesowskiego do generowania statystyk na podstawie danych z eksperymentu.

Wyniki są podzielone na „dane obserwowane” i „dane modelowane”. Dane rzeczywiste są obliczane bezpośrednio na podstawie danych Analytics, a dane modelowane są obliczane z zastosowaniem naszego bayesowskiego modelu analizy danych rzeczywistych.

W przypadku każdego rodzaju danych wyświetlane są te statystyki:

Rzeczywiste dane

  • Łączna wartość (suma danych dla wszystkich użytkowników w wariantach)
  • Średnia wartość (średnia wartość danych dla użytkowników w wariantach)
  • % różnicy wobec punktu odniesienia

Dane modelowane

  • Prawdopodobieństwo przekroczenia wartości podstawowej: prawdopodobieństwo, że ten wariant osiągnie wyższą wartość niż punkt odniesienia.
  • Różnica procentowa w stosunku do punktu odniesienia: na podstawie mediany szacunkowych danych modelu dla wariantu i punktu odniesienia
  • Zakresy danych: zakresy, w których wartość danych jest najbardziej prawdopodobna z poziomem pewności 50% i 95%.

Ogólnie wyniki eksperymentu dostarczają 3 ważnych informacji o każdym wariancie w eksperymencie:

  1. O ile każdy wskaźnik eksperymentu jest wyższy lub niższy od wartości podstawowej, jak wynika z bezpośrednich pomiarów (czyli rzeczywistych danych obserwowanych)
  2. Jak prawdopodobieństwo, że każdy rodzaj danych eksperymentu jest wyższy niż wartość bazowa / najlepszy ogólnie, na podstawie wnioskowania Bayesa (prawdopodobieństwo, że będzie on lepszy / najlepszy).
  3. Prawidłowe zakresy dla każdego wskaźnika eksperymentu na podstawie wnioskowania Bayesa – scenariusze „najlepszy przypadek” i „najgorszy przypadek” (przedziały wiarygodności)

Określenie lidera

W przypadku eksperymentów korzystających z inferencji częstościowej Firebase wskazuje wariant jako najlepszy, gdy występuje statystycznie istotna różnica skuteczności między wariantem a elementem bazowym w zakresie danych związanych z celem. Jeśli wiele wariantów spełnia to kryterium, wybrany zostanie wariant z najniższą wartością P.

W przypadku eksperymentów, które korzystały z Google Optimize, Firebase uznała wariant za „wyraźnego lidera”, jeśli jego szanse na lepsze wyniki niż wariant bazowy w zakresie danych głównego wskaźnika były większe niż 95%. Jeśli kilka wersji spełniało kryterium „wyraźnego lidera”, jako „wyraźny lider” została oznaczona tylko ta wersja, która osiągała najlepsze wyniki.

Najlepszy wariant jest wskazywany wyłącznie na podstawie celu głównego, dlatego przed podjęciem decyzji o jego wdrożeniu warto rozważyć wszystkie istotne czynniki i zweryfikować wyniki danych pomocniczych. Możesz wziąć pod uwagę oczekiwane korzyści wynikające z wprowadzenia zmiany, ryzyko negatywnego (np. dolny koniec przedziału ufności, w którym występuje poprawa) oraz wpływ na dane inne niż główny cel.

Jeśli np. Twoje podstawowe dane to użytkownicy, u których nie wystąpiła awaria, a wariant A jest zdecydowanie lepszy od wartości bazowej, ale dane o utrzymaniu użytkowników w przypadku wariantu A zapewniają wskaźnik utrzymania użytkowników, przed jego szerszym wdrożeniem warto przeprowadzić dokładniejszą analizę.

Możesz wdrożyć dowolny wariant (nie tylko wariant wiodący) na podstawie ogólnej oceny skuteczności zarówno w przypadku danych podstawowych, jak i dodatkowych.

Czas trwania eksperymentu

Firebase zaleca, aby eksperyment był prowadzony do momentu spełnienia tych warunków:

  1. Eksperyment zebrał wystarczającą ilość danych, aby można było uzyskać przydatne wyniki. Dane o eksperymentach i wynikach są aktualizowane raz dziennie. Aby oszacować zalecany rozmiar próbki do eksperymentu, możesz skorzystać z kalkulatora wielkości próbki online.
  2. Eksperyment był aktywny wystarczająco długo, aby zapewnić reprezentatywną próbę użytkowników i zmierzyć długoterminową skuteczność. W przypadku typowego eksperymentu związanego ze Zdalną konfiguracją zalecany minimalny czas działania to 2 tygodnie.

Dane eksperymentu są przetwarzane przez maksymalnie 90 dni od rozpoczęcia eksperymentu. Po 90 dniach eksperyment jest automatycznie zatrzymywany. Wyniki eksperymentu nie są już aktualizowane w konsoli Firebase, a eksperyment przestaje wysyłać wartości parametrów związane z eksperymentem. W tym momencie klienci zaczynają pobierać wartości parametrów na podstawie warunków określonych w szablonie Remote Config. Dane historyczne eksperymentu są przechowywane do momentu jego usunięcia.

Schemat 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żyć tych właściwości użytkownika w eksperymencie, aby wyodrębnić dane eksperymentu. Dzięki temu możesz dzielić wyniki eksperymentu na wiele różnych sposobów i niezależnie sprawdzać wyniki funkcji A/B Testing.

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

  1. Włącz w konsoli Firebase eksport BigQuery dla Google Analytics
  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, tabele mogą być dostępne po upływie nawet 1 dnia. 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

Przed wysłaniem zapytania o dane związane z konkretnym eksperymentem musisz uzyskać niektóre lub wszystkie z tych danych do użycia 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. np. zdarzenia in_app_purchase, ad_impression lub user_retention.

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 pod integracją z BigQuery wybierz Zapytanie o dane 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 sekcjach poniżej znajdziesz przykłady zapytań, za pomocą których możesz wyodrębniać dane eksperymentu A/B Testing z tabel zdarzeń Google Analytics.

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

Na podstawie wyników eksperymentu możesz niezależnie weryfikować wyniki 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 testu.

  /*
    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

Limity

A/B Testing jest ograniczona do łącznej liczby 300 eksperymentów, 24 eksperymentów w trakcie i 24 wersji roboczych eksperymentów. Te limity są wspólne dla wdrożeń Remote Config. Jeśli na przykład masz 2 aktywne wdrożenia i 3 aktywne eksperymenty, możesz utworzyć maksymalnie 19 dodatkowych wdrożeń lub eksperymentów.

  • Po osiągnięciu limitu 300 eksperymentów lub 24 wersji roboczych eksperymentów musisz usunąć istniejący eksperyment przed utworzeniem nowego.

  • Jeśli osiągniesz limit 24 eksperymentów i wdrożeń, musisz zatrzymać eksperyment lub wdrożenie, zanim rozpoczniesz nowe.

Eksperyment może obejmować maksymalnie 8 wariantów (w tym element bazowy) oraz maksymalnie 25 parametrów dla każdego wariantu. Rozmiar eksperymentu może wynosić maksymalnie około 200 KiB. Obejmuje to nazwy wariantów, parametry wariantów i inne metadane konfiguracji.