Aby pomóc Ci zmaksymalizować trafność i przydatność wyników testów, na tej stronie znajdziesz szczegółowe informacje o tym, jak Firebase A/B Testing działa.
Rozmiar próbki
Firebase A/B Testing wnioskowanie nie wymaga określenia minimalnego rozmiaru próbki przed rozpoczęciem eksperymentu. Zasadniczo należy wybrać największy poziom ekspozycji na eksperyment, który Ci odpowiada. Większe rozmiary próbek 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 kalkulatora rozmiaru próbki online, aby znaleźć zalecany rozmiar próbki na podstawie charakterystyki eksperymentu.
Edytowanie eksperymentów
Możesz edytować wybrane parametry trwających eksperymentów, w tym:
- Nazwę 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 wybierz Edytuj aktywny eksperyment.
- Wprowadź zmiany i kliknij Opublikuj.
Pamiętaj, że zmiana zachowania aplikacji podczas trwającego eksperymentu może wpłynąć na jego wyniki.
Logika przypisywania wariantów w Zdalnej konfiguracji
Użytkownicy, którzy spełniają wszystkie warunki kierowania eksperymentu (w tym warunek procentowego udziału), są przypisywani do wariantów eksperymentu zgodnie z wagami wariantów i haszem identyfikatora eksperymentu oraz identyfikatora instalacji Firebase użytkownika.Firebase
Google Analytics Listy odbiorców podlegają opóźnieniom i nie są od razu dostępne, gdy użytkownik po raz pierwszy spełni 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 dodawani do kwalifikujących się list odbiorców w ciągu 24–48 godzin od momentu, gdy spełnią kryteria.
W przypadku kierowania opartego na czasie rozważ użycie Google Analytics właściwości użytkownika lub wbudowanych opcji kierowania, takich jak kraj lub region, język, i wersja aplikacji.
Gdy użytkownik weźmie udział w eksperymencie, zostanie na stałe przypisany do jego wariantu i będzie otrzymywać wartości parametrów z eksperymentu, dopóki eksperyment pozostanie aktywny, nawet jeśli zmienią się jego właściwości użytkownika i nie będzie już spełniać kryteriów kierowania eksperymentu.
Zdarzenia aktywacji
Zdarzenia aktywacji eksperymentu ograniczają pomiar eksperymentu do użytkowników aplikacji, którzy wywołują zdarzenie aktywacji. Zdarzenie aktywacji eksperymentu nie ma wpływu na parametry eksperymentu pobierane przez aplikację. Wszyscy użytkownicy, którzy spełniają kryteria kierowania eksperymentu, otrzymają parametry eksperymentu. Dlatego ważne jest, aby wybrać zdarzenie aktywacji, które występuje po pobraniu i aktywowaniu parametrów eksperymentu, ale przed użyciem parametrów eksperymentu do zmodyfikowania zachowania aplikacji.
Wagi wariantów
Podczas tworzenia eksperymentu można zmienić domyślne wagi wariantów, aby większy odsetek użytkowników eksperymentu przypisać do wariantu.
Zinterpretuj wyniki testu
Firebase A/B Testing używa wnioskowania opartego na modelu frekwencyjnym , aby pomóc Ci zrozumieć prawdopodobieństwo, że wyniki eksperymentu mogły wystąpić wyłącznie z powodu losowości. Prawdopodobieństwo to jest reprezentowane przez wartość prawdopodobieństwa lub wartość p. Wartość p to prawdopodobieństwo, że różnica w skuteczności między 2 wariantami o takiej lub większej wartości mogła wystąpić z powodu losowości, jeśli w rzeczywistości nie ma efektu, mierzonego wartością od 0 do 1. A/B Testing używa poziomu istotności 0,05, aby:
- Wartość p mniejsza niż 0,05 oznacza, że jeśli prawdziwa różnica wynosi 0, prawdopodobieństwo, że zaobserwowana różnica o takiej wartości wystąpi losowo, jest mniejsze niż 5%. Ponieważ 0,05 to próg, każda wartość p mniejsza niż 0,05 wskazuje na istotną statystycznie różnicę między wariantami.
- Wartość p większa niż 0,05 oznacza, że różnica między wariantami nie jest istotna statystycznie.
Dane eksperymentu są odświeżane raz dziennie, a czas ostatniej aktualizacji jest widoczny u góry strony wyników eksperymentu.
Wykres wyników eksperymentu przedstawia skumulowane średnie wartości wybranych danych. Jeśli np. śledzisz przychody z reklam na użytkownika, wyświetlają się zaobserwowane przychody na użytkownika, a jeśli śledzisz użytkowników bez awarii, wyświetla się odsetek użytkowników, którzy nie napotkali awarii. Te dane są kumulowane od początku eksperymentu.
Wyniki są podzielone na Dane rzeczywiste i Dane wnioskowania. Dane rzeczywiste są obliczane bezpośrednio na podstawie danych Google Analytics, a dane wnioskowania zawierają wartości p i przedziały ufności, które pomagają ocenić istotność statystyczną danych rzeczywistych.
W przypadku każdego wskaźnika wyświetlają się te statystyki:
Dane rzeczywiste
- Łączna wartość śledzonych danych (liczba użytkowników, którzy pozostali, liczba użytkowników, u których wystąpiła awaria, łączna kwota przychodów)
- Współczynnik specyficzny dla danych (współczynnik utrzymania, współczynnik konwersji, przychody na użytkownika)
- Różnica procentowa (wzrost) między wariantem a elementem bazowym
Dane wnioskowania
95% przedział ufności (różnica średnich) wyświetla przedział, który z 95% prawdopodobieństwem zawiera „prawdziwą” wartość śledzonych danych. Jeśli np. wyniki eksperymentu wskazują, że 95% przedział ufności szacowanych łącznych przychodów wynosi od 5 do 10 USD, istnieje 95% prawdopodobieństwa, że prawdziwa różnica średnich mieści się w przedziale od 5 do 10 USD. Jeśli przedział ufności obejmuje 0, nie wykryto istotnej statystycznie różnicy między wariantem a elementem bazowym.
Wartości przedziału ufności są wyświetlane w formacie zgodnym ze śledzonymi danymi. Na przykład czas (w formacie
HH:MM:SS) w przypadku utrzymania użytkowników, USD w przypadku przychodów z reklam na użytkownika i procent w przypadku współczynnika konwersji.Wartość p, która reprezentuje 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ększa pewność, że zaobserwowana skuteczność pozostanie prawdziwa, jeśli powtórzymy eksperyment. Wartość 0,05 lub niższa wskazuje na istotną różnicę i niskie prawdopodobieństwo, że wyniki były przypadkowe. Wartości p są oparte na teście jednostronnym, w którym wartość wariantu jest większa niż wartość elementu bazowego. W przypadku zmiennych ciągłych (wartości liczbowe, np. przychody) Firebase używa testu t o nierównych wariancjach, a w przypadku danych o konwersjach (wartości binarne, np. utrzymanie użytkowników, użytkownicy bez awarii, użytkownicy, którzy wywołują zdarzenie Google Analytics) – testu z proporcji.
Wyniki eksperymentu zawierają ważne informacje o każdym wariancie eksperymentu, w tym:
- o ile wyższe lub niższe są poszczególne dane eksperymentu w porównaniu z elementem bazowym, mierzone bezpośrednio (czyli rzeczywiste dane rzeczywiste);
- prawdopodobieństwo, że zaobserwowana różnica między wariantem a elementem bazowym mogła wystąpić z powodu losowości (wartość p);
- zakres, który prawdopodobnie zawiera „prawdziwą” różnicę w skuteczności między wariantem a elementem bazowym w przypadku każdego wskaźnika eksperymentu – sposób na zrozumienie scenariuszy „najlepszego” i „najgorszego” przypadku.
Interpretowanie wyników eksperymentów opartych na Google Optimize
Firebase A/B Testing wyniki eksperymentów rozpoczętych przed 23 października 2023 r. były oparte na Google Optimize. Google Optimize używał wnioskowania bayesowskiego do generowania przydatnych statystyk na podstawie danych eksperymentu.
Wyniki są podzielone na „dane rzeczywiste” 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 wskaźnika wyświetlają się te statystyki:
Rzeczywiste dane
- Wartość łączna (suma danych dla wszystkich użytkowników w wariancie)
- Wartość średnia (średnia wartość danych dla użytkowników w wariancie)
- % różnicy wobec punktu odniesienia
Modelowane dane
- Prawdopodobieństwo przekroczenia wartości podstawowej: prawdopodobieństwo, że wartość danych jest wyższa w przypadku tego wariantu niż w przypadku elementu bazowego.
- Różnica procentowa wobec punktu odniesienia: na podstawie mediany szacunków modelu danych dla wariantu i elementu bazowego.
- Zakresy danych: zakresy, w których wartość danych najprawdopodobniej się znajduje, z 50% i 95% pewnością.
Ogólnie wyniki eksperymentu dostarczają 3 ważnych informacji o każdym wariancie eksperymentu:
- o ile wyższe lub niższe są poszczególne dane eksperymentu w porównaniu z elementem bazowym, mierzone bezpośrednio (czyli rzeczywiste dane rzeczywiste);
- jak prawdopodobne jest, że poszczególne dane eksperymentu są wyższe niż element bazowy lub najlepsze ogólnie, na podstawie wnioskowania bayesowskiego (prawdopodobieństwo, że wariant jest lepszy lub najlepszy);
- prawdopodobne zakresy poszczególnych danych eksperymentu na podstawie wnioskowania bayesowskiego – scenariusze „najlepszego” i „najgorszego” przypadku (wiarygodne przedziały).
Określanie najlepszego wariantu
W przypadku eksperymentów korzystających z wnioskowania opartego na modelu frekwencyjnym, 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 wskazywał wariant jako "wyraźnie najlepszy", jeśli miał on ponad 95% szans na uzyskanie lepszych wyników niż wariant bazowy w zakresie danych głównych. Jeśli kilka wariantów spełniało kryteria „wyraźnie najlepszego”, tylko wariant o najlepszych ogólnych wynikach był oznaczany jako „wyraźnie najlepszy”.
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ę oczekiwane korzyści z wprowadzenia zmiany, ryzyko (np. dolną granicę przedziału ufności w przypadku poprawy) oraz wpływ na dane inne niż cel główny.
Jeśli np. Twoje główne dane to „Użytkownicy bez awarii”, a wariant A jest wyraźnie lepszy od elementu bazowego, ale dane dotyczące utrzymania użytkowników w wariancie A są gorsze niż w przypadku elementu bazowego, przed szerszym wdrożeniem wariantu A warto przeprowadzić dodatkowe analizy.
Możesz wdrożyć dowolny wariant, nie tylko najlepszy, na podstawie ogólnej oceny skuteczności w zakresie danych głównych i pomocniczych.
Czas trwania eksperymentu
Firebase zaleca, aby eksperyment był prowadzony do momentu spełnienia tych warunków:
- Eksperyment zgromadził wystarczającą ilość danych, aby uzyskać przydatny wynik. Eksperymenty i dane wyników są aktualizowane raz dziennie. Aby ocenić zalecany rozmiar próbki eksperymentu, możesz skorzystać z kalkulatora rozmiaru próbki online.
- Eksperyment był prowadzony wystarczająco długo, aby zapewnić próbę reprezentatywną użytkowników i zmierzyć skuteczność w dłuższej perspektywie. W przypadku typowego eksperymentu w Zdalnej konfiguracji zalecany minimalny czas trwania to 2 tygodnie.
Dane eksperymentu są przetwarzane przez maksymalnie 90 dni od jego rozpoczęcia. 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 specyficzne dla eksperymentu. W tym momencie klienci zaczynają pobierać wartości parametrów na podstawie warunków ustawionych w szablonie Remote Config. Historyczne dane eksperymentu są przechowywane do momentu usunięcia eksperymentu.
Schemat BigQuery
Oprócz wyświetlania danych eksperymentu A/B Testing w konsoli Firebase możesz też sprawdzać i analizować dane eksperymentu w BigQuery. Testowanie A/B nie ma osobnej BigQuery tabeli, ale informacje o eksperymencie i członkostwie w wariancie są przechowywane w każdym Google Analytics zdarzeniu w tabelach zdarzeń Analytics.A/B Testing
Właściwości użytkownika, które zawierają 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 (liczony od zera) indeks wariantu eksperymentu.
Do wyodrębniania danych eksperymentu możesz używać tych właściwości użytkownika 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:
- Włącz eksport do BigQuery w przypadku Google Analytics w konsoli Firebase
- Uzyskaj dostęp do danych za pomocą BigQueryA/B Testing
- Przeglądaj przykładowe zapytania.
Włączanie eks0portu do Google Analytics w konsoli FirebaseBigQuery
Jeśli korzystasz z abonamentu Spark, możesz bezpłatnie używać BigQuery piaskownicy aby uzyskać dostęp BigQuery, z zastrzeżeniem limitów piaskownicy. Więcej informacji znajdziesz w sekcjach Ceny i BigQuery piaskownica.
Najpierw upewnij się, że eksportujesz dane Analytics do BigQuery:
- Otwórz kartę Integracje, do której możesz przejść, klikając kolejno > Ustawienia projektu w konsoli Firebase.
- Jeśli korzystasz już z BigQuery w innych usługach Firebase, kliknij Zarządzaj. W przeciwnym razie kliknij Połącz.
- Zapoznaj się z sekcją Informacje o łączeniu Firebase z BigQuery i kliknij Dalej.
- W sekcji Skonfiguruj integrację włącz Google Analytics przełącznik.
Wybierz region i ustawienia eksportu.
Kliknij Link do BigQuery.
W zależności od tego, jak eksportujesz dane, tabele mogą być dostępne nawet po upływie 1 dnia. Więcej informacji o eksportowaniu danych projektu do BigQuery, zobacz Eksportowanie danych projektu do BigQuery.
Uzyskiwanie dostępu do danych A/B Testing w BigQuery
Zanim wyślesz zapytanie o dane konkretnego eksperymentu, musisz uzyskać co najmniej niektóre z tych informacji, aby użyć ich w zapytaniu:
- Identyfikator eksperymentu: możesz go uzyskać z adresu 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. - Google Analytics identyfikator usługi: to 9-cyfrowy
Google Analytics identyfikator usługi. Możesz go znaleźć w
Google Analytics. Pojawia się też w BigQuery, gdy rozwiniesz
nazwę projektu, aby wyświetlić nazwę tabeli zdarzeń Google Analytics (
project_name.analytics_000000000.events). - Data eksperymentu: aby utworzyć szybsze i wydajniejsze zapytanie, warto ograniczyć zapytania do partycji tabeli zdarzeń Google Analytics dziennych, które zawierają dane eksperymentu – tabel o nazwie z sufiksem
YYYYMMDD. Jeśli np. eksperyment był prowadzony od 2 lutego 2024 r. do 2 maja 2024 r., należy określić_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 zdarzenia
in_app_purchase,ad_impressionlubuser_retention.
Po zebraniu informacji potrzebnych do wygenerowania zapytania:
- Otwórz BigQuery w konsoli Google Cloud.
- Wybierz projekt, a potem kliknij Utwórz zapytanie SQL.
- Dodaj zapytanie. Przykładowe zapytania znajdziesz w sekcji Przeglądanie przykładowych zapytań.
- Kliknij Wykonaj.
Wysyłanie zapytań o dane eksperymentu za pomocą automatycznie wygenerowanego zapytania w konsoli Firebase
Jeśli korzystasz z abonamentu Blaze, na stronie Przegląd eksperymentu znajdziesz przykładowe zapytanie, które zwraca nazwę eksperymentu, warianty, nazwy zdarzeń i liczbę zdarzeń w wyświetlanym eksperymencie.
Aby uzyskać i uruchomić automatycznie wygenerowane zapytanie:
- W konsoli Firebase otwórz A/B Testing i wybierz eksperyment A/B Testing, o którego dane chcesz wysłać zapytanie, aby otworzyć stronę Przegląd eksperymentu.
- W menu Opcje w sekcji BigQuery integracja kliknij Zapytanie o dane eksperymentu. Spowoduje to otwarcie projektu w BigQuery w konsoli Google Cloud Google Cloud i udostępnienie podstawowego zapytania, za pomocą którego możesz wysyłać zapytania o dane eksperymentu.
Ten przykład przedstawia wygenerowane zapytanie dotyczące eksperymentu z 3 wariantami (w tym z elementem bazowym) o nazwie „Eksperyment powitalny”. Zwraca nazwę aktywnego eksperymentu, nazwę wariantu, unikalne zdarzenie i liczbę zdarzeń w przypadku każdego zdarzenia. Pamiętaj, że kreator zapytań nie określa 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
Dodatkowe przykłady zapytań znajdziesz w sekcji Przeglądanie przykładowych zapytań.
Przeglądanie przykładowych zapytań
W sekcjach poniżej znajdziesz przykłady zapytań, których możesz użyć do wyodrębnienia A/B Testing danych eksperymentu z Google Analytics tabel zdarzeń.
Wyodrębnianie wartości odchylenia standardowego zakupu i eksperymentu ze wszystkich eksperymentów
Do niezależnego weryfikowania wyników możesz używać danych wyników eksperymentu
Firebase A/B Testing. To instrukcja SQL wyodrębnia warianty eksperymentu, liczbę unikalnych użytkowników w każdym wariancie oraz sumuje łączną kwotę przychodów ze zdarzeń in_app_purchase i ecommerce_purchase oraz odchylenia standardowe wszystkich eksperymentów w zakresie czasu określonym jako daty rozpoczęcia i zakończenia _TABLE_SUFFIX.BigQuery Dane uzyskane z tego zapytania możesz użyć z generatorem istotności statystycznej w przypadku testów t jednostronnych, 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 sekcji 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 kod ilustruje, jak uzyskać dane konkretnego eksperymentu w BigQuery. To przykładowe zapytanie zwraca nazwę eksperymentu, nazwy wariantów (w tym element bazowy), nazwy zdarzeń i liczbę 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 ograniczone do 300 eksperymentów, 24 trwających eksperymentów, i 24 eksperymentów w wersji roboczej. Te limity są wspólne z wdrożeniami Remote Config. Jeśli np. masz 2 trwające wdrożenia i 3 trwające eksperymenty, możesz mieć maksymalnie 19 dodatkowych wdrożeń lub eksperymentów.
Jeśli osiągniesz limit 300 eksperymentów lub limit 24 eksperymentów w wersji roboczej, przed utworzeniem nowego eksperymentu musisz usunąć istniejący.
Jeśli osiągniesz limit 24 trwających eksperymentów i wdrożeń, przed rozpoczęciem nowego eksperymentu musisz zatrzymać trwający eksperyment lub wdrożenie.
Eksperyment może mieć maksymalnie 8 wariantów (w tym element bazowy) i do 25 parametrów w przypadku każdego wariantu. Eksperyment może mieć rozmiar do około 200 KiB. Obejmuje to nazwy wariantów, parametry wariantów i inne metadane konfiguracji.