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 wariantów

Aby edytować eksperyment:

  1. Otwórz stronę wyników eksperymentu, który chcesz zmodyfikować.
  2. W menu Więcej kliknij Edytuj trwają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 wariantu w Zdalnej konfiguracji

Użytkownicy, którzy spełniają wszystkie warunki kierowania eksperymentu (w tym warunek dotyczący odsetka ekspozycji), 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 wejdzie w ramy eksperymentu, jest trwale przypisany do wariantu eksperymentalnego i otrzymuje wartości parametrów z eksperymentu tak długo, jak długo eksperyment pozostaje aktywny, nawet jeśli jego właściwości użytkownika ulegną zmianie i nie spełnia on już kryteriów kierowania eksperymentu.

zdarzenia aktywacji

Zdarzenia aktywacji eksperymentu ograniczają pomiar 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ć większy odsetek użytkowników do danego wariantu.

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. A/B Testing używa poziomu istotności 0,05, aby:

  • Wartość p mniejsza niż 0,05 wskazuje na istotną statystycznie różnicę między wariantami, co oznacza, że nie jest ona przypadkowa.
  • 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 dane Przychody z reklam na użytkownika, wyświetlane są obserwowane przychody na użytkownika, a jeśli śledzisz użytkowników bez awarii, śledzenie obejmuje odsetek użytkowników, którzy nie doświadczyli awarii. 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 dotyczący danej wartości (współczynnik utrzymania, współczynnik konwersji, przychody na użytkownika)
  • Różnica procentowa (wzrost) między wersją a wersją podstawową

Dane wnioskowania

  • 95% przedział ufności (różnica średnich) zawiera „prawdziwą” wartość śledzonych danych z poziomem ufności 95%. Jeśli na przykład eksperyment wykaże, że 95% CI całkowitych przychodów mieści się w zakresie od 5 do 10 USD, istnieje 95% prawdopodobieństwo, że rzeczywista różnica średnich wartości mieści się w zakresie od 5 do 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.HH:MM:SS

  • 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 taka sama 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, mierzone bezpośrednio (czyli rzeczywiste zaobserwowane dane)
  • 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ższe wyniki niż punkt odniesienia.
  • Różnica procentowa w stosunku do wartości bazowej: na podstawie średnich szacunków modelu danych dla wariantu i wartości bazowej.
  • 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ą uzyskano bezpośrednio (czyli rzeczywiste zaobserwowane dane).
  2. Jak prawdopodobne jest, że każdy wskaźnik eksperymentalny jest wyższy niż punkt odniesienia lub najlepszy ogólnie, na podstawie wnioskowania bayesowskiego (odpowiednio prawdopodobieństwo, że będzie lepszy / najlepszy)
  3. prawdopodobne zakresy dla każdego wskaźnika eksperymentalnego na podstawie wnioskowania bayesowskiego – scenariuszy „najlepszego” i „najgorszego” (wiarygodne przedziały);

Wyznaczanie 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 realizacją celu. 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. Warto wziąć pod uwagę spodziewane korzyści z wprowadzenia zmiany, ryzyko związane z jej wprowadzeniem (np. dolny koniec przedziału ufności dla poprawy) oraz wpływ na dane inne niż główny cel.

Jeśli np. Twoje podstawowe dane to „Użytkownicy bez awarii”, a wariant A wyraźnie wygrywa z poziomem wyjściowym, ale dane o zachowaniu użytkowników w wariantach A są gorsze od danych wyjściowych, warto przeprowadzić dodatkowe analizy, zanim wprowadzisz wariant A na większą skalę.

Na podstawie ogólnej oceny skuteczności pod kątem danych głównych i dodatkowych możesz wdrożyć dowolny wariant, a nie tylko najlepszy.

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. Możesz skorzystać z internetowego kalkulatora rozmiaru próby, aby oszacować zalecany rozmiar próby w eksperymencie.
  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ązanych 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ż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 znajdziesz w sekcji 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 zdarzenia 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 automatycznie wygenerowanego 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 użyć z generatorem 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

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 wdrożenia i 3 eksperymenty, możesz mieć maksymalnie 19 dodatkowych wdrożeń lub eksperymentów.

  • Jeśli osiągniesz limit 300 eksperymentów lub limit 24 wersji roboczych eksperymentów, przed utworzeniem nowego eksperymentu musisz usunąć istniejący eksperyment.

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

Eksperyment może zawierać 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.