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:
- Otwórz stronę wyników eksperymentu, który chcesz zmodyfikować.
- W menu Więcej kliknij Edytuj trwający eksperyment.
- 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 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 przez nich kryteriów.
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 weźmie udział w eksperymencie, 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ą 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 będą otrzymywać 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 zrozumieć prawdopodobieństwo, że wyniki eksperymentu mogły wystąpić wyłącznie z powodu przypadkowego przypadku. Prawdopodobieństwo to wartość prawdopodobieństwa lub wartość p. Wartość p to prawdopodobieństwo, że różnica w skuteczności między 2 wariantami mogła wystąpić z powodu przypadku, mimo że w istocie nie ma żadnego efektu. Wartość ta mieści się w zakresie od 0 do 1. A/B Testing używa poziomu istotności 0,05, aby:
- Wartość p mniejsza niż 0,05 wskazuje, że jeśli prawdziwa różnica wynosi 0, prawdopodobieństwo, że ta ekstremalna różnica mogła wystąpić przypadkowo, jest mniejsze niż 5%. Ponieważ wartość 0,05 jest wartością progową, każda wartość p mniejsza niż 0,05 wskazuje na istotną statystycznie różnicę między wariantami.
- 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 obserwacyjne i dane 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 z 95% poziomem ufności „prawdziwą” wartość śledzonych danych. 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ł ufnoś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 zaobserwowania danych tak skrajnych jak wyniki uzyskane w eksperymencie, przy założeniu, że nie ma prawdziwej różnicy między wariantem a elementem bazowym. Im niższa wartość p, tym większe prawdopodobieństwo, że jeśli powtórzysz eksperyment, zaobserwowana skuteczność pozostanie taka sama. 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 jednokierunkowym, 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 Wyniki 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:
- 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)
- Jak prawdopodobne jest, że każdy z wyników eksperymentu jest wyższy niż wartość odniesienia lub najlepszy wynik ogólny na podstawie wnioskowania bayesowskiego (odpowiednio prawdopodobieństwo, że wynik będzie lepszy / najlepszy)
- prawdopodobne zakresy dla każdego wskaźnika eksperymentu 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. Twoim głównym wskaźnikiem są użytkownicy bez awarii, a wariant A wyraźnie wygrywa z poziomem wyjściowym, ale wskaźniki retencji użytkowników w wariancie A są niższe niż retencja wyjściowa, przed szerszym wdrożeniem wariantu A warto przeprowadzić dodatkowe analizy.
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:
- Eksperyment zebrał wystarczającą ilość danych, aby można było podać 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.
- Eksperyment był prowadzony wystarczająco długo, aby zapewnić reprezentatywną próbę użytkowników i zmierzyć długoterminową skuteczność. W przypadku typowego eksperymentu w Zdalnej konfiguracji 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ż 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 opisane w tym przewodniku:
- Włącz eksport BigQuery do Google Analytics w konsoli Firebase
- Dostęp do danych A/B Testing za pomocą BigQuery
- 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:
- Otwórz kartę Integracje, do której możesz przejść, klikając > Ustawienia projektu w konsoli Firebase.
- Jeśli używasz już BigQuery w innych usługach Firebase, kliknij Zarządzaj. W przeciwnym razie kliknij Połącz.
- Zapoznaj się z informacjami na temat łączenia Firebase z BigQuery, a potem kliknij Dalej.
- W sekcji Skonfiguruj integrację włącz przełącznik Google Analytics.
Wybierz region i ustawienia eksportu.
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 BigQuery znajdziesz w artykule Eksportowanie danych projektu do 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 Google Analytics. Po rozwinięciu nazwy projektu zobaczysz też nazwę tabeli zdarzeń Google Analytics (
project_name.analytics_000000000.events
).BigQuery - 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 zdarzeniauser_retention
.
Gdy już zbierzesz informacje potrzebne do wygenerowania zapytania:
- W konsoli Google Cloud otwórz BigQuery.
- Wybierz projekt, a następnie kliknij Utwórz zapytanie SQL.
- Dodaj zapytanie. Przykładowe zapytania do uruchomienia znajdziesz w sekcji Przykładowe zapytania.
- 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:
- W konsoli Firebase otwórz A/B Testing i wybierz eksperyment A/B Testing, którego dotyczy zapytanie, aby otworzyć Przegląd eksperymentu.
- W menu Opcje pod integracją BigQuery kliknij Wysyłanie zapytań 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ładowy wygenerowany zapytanie dotyczy 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ń dla każdego z nich. Pamiętaj, że kreator zapytań nie podaje nazwy projektu w nazwie tabeli, ponieważ otwiera się bezpośrednio w Twoim 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 sekcji Zobacz przykładowe zapytania.
Poznawanie przykładowych zapytań
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
Możesz użyć danych z eksperymentu, aby samodzielnie zweryfikować wyniki Firebase A/B Testing. Ten fragment kodu SQL BigQuery wyodrębnia warianty eksperymentu, liczbę unikalnych użytkowników w każdym z nich oraz sumuje łączne przychody z zdarzeń in_app_purchase
i ecommerce_purchase
oraz odchylenia standardowe dla wszystkich eksperymentów w zakresie dat określonym jako _TABLE_SUFFIX
początek i _TABLE_SUFFIX
koniec. 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 przypadek użycia zapytania 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 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.