Aby pomóc Ci w maksymalnym zwiększeniu trafności i przydatnoś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 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:
- Nazwa eksperymentu
- Opis
- Warunki kierowania
- Wartości wariantów
Aby edytować eksperyment:
- W konsoli Firebase kliknij kolejno DevOps i zaangażowanie > Testowanie A/B.
- Otwórz stronę wyników eksperymentu, który chcesz zmodyfikować.
- W menu Więcej wybierz Edytuj trwający eksperyment.
- Wprowadź zmiany i kliknij Opublikuj.
Pamiętaj, że zmiana zachowania aplikacji podczas trwającego eksperymentu może wpłynąć na wyniki.
Logika przypisywania wariantów w Zdalnej konfiguracji
Użytkownicy, którzy spełniają wszystkie warunki kierowania eksperymentu (w tym warunek dotyczący 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ą dostępne od razu, gdy użytkownik 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 jest 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 wykorzystuje wnioskowanie częstościowe, 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 tak duża lub większa różnica w skuteczności między 2 wariantami 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, dzięki czemu:
- Wartość p mniejsza niż 0,05 oznacza, że jeśli prawdziwa różnica wynosi 0, istnieje mniej niż 5% szans, że zaobserwowana różnica o tak ekstremalnej wartości może wystąpić losowo. 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 na przykład śledzisz przychody z reklam na użytkownika, wyświetla się zaobserwowany przychód na użytkownika, a jeśli śledzisz użytkowników bez awarii, śledzi 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 parametru wyświetlają się te statystyki:
Dane rzeczywiste
- Łączna wartość śledzonych danych (liczba utrzymanych użytkowników, liczba użytkowników, u których wystąpiła awaria, łączny przychód)
- Współczynnik specyficzny dla danych (współczynnik utrzymania, współczynnik konwersji, przychód 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 na przykład wyniki eksperymentu wskazują, że 95% przedział ufności dla szacowanego łącznego przychodu wynosi od 5 do 10 USD, istnieje 95% prawdopodobieństwo, ż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 ekstremalnych 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 znaczną 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. Firebase używa testu t o nierównych wariancjach w przypadku zmiennych ciągłych (wartości liczbowe, np. przychody) oraz testu z proporcji 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).
Wyniki eksperymentu zawierają ważne informacje o każdym wariancie eksperymentu, w tym:
- o ile wyższa lub niższa jest każda wartość eksperymentu w porównaniu z elementem bazowym, mierzona 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 parametru eksperymentu – sposób na zrozumienie scenariuszy „najlepszego” i „najgorszego” przypadku.
Określanie najlepszego wariantu
W przypadku eksperymentów wykorzystujących wnioskowanie częstościowe, 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.
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 niepowodzenia (np. dolną granicę przedziału ufności dla poprawy) oraz wpływ na dane inne niż cel główny.
Jeśli na przykład Twoim głównym parametrem są 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.
Na podstawie ogólnej oceny skuteczności w zakresie danych głównych i pomocniczych możesz wdrożyć dowolny wariant, a nie tylko najlepszy.
Czas trwania eksperymentu
Firebase zaleca, aby eksperyment trwał 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 trwał wystarczająco długo, aby zapewnić reprezentatywną próbkę użytkowników i zmierzyć skuteczność w dłuższej perspektywie. Zalecany minimalny czas trwania typowego eksperymentu w Zdalnej konfiguracji 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 i 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 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 (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łącz BigQuery eksport w przypadku Google Analytics w konsoli Firebase
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 sekcji Ceny i BigQuery piaskownica.
Najpierw upewnij się, że eksportujesz dane Analytics do BigQuery:
W konsoli Firebase otwórz ustawienia
Ustawienia > Integracje tab.Na karcie BigQuery kliknij Zarządzaj i sprawdź, czy Twój projekt eksportuje dane Analytics do BigQuery.
Jeśli na karcie widnieje napis Połącz, musisz skonfigurować eksport (przejdź do następnego kroku).
Jeśli musisz skonfigurować eksport:
Zapoznaj się z sekcją Łączenie Firebase z BigQuery i kliknij Dalej.
W sekcji Konfiguracja integracji włącz Google Analytics.
Wybierz region i ustawienia eksportu.
Kliknij Link do BigQuery.
W zależności od tego, jak eksportujesz dane, udostępnienie tabel może potrwać do 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 dotyczące konkretnego eksperymentu, musisz uzyskać niektóre lub wszystkie z tych informacji, aby użyć ich w zapytaniu:
- Identyfikator eksperymentu: możesz go uzyskać z adresu URL strony Przegląd eksperymentu. Jeśli na przykład 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: jest 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 więc eksperyment trwał 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.
Gdy zbierzesz informacje potrzebne do wygenerowania zapytania:
- W konsoli Google Cloud otwórz BigQuery.
- 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 kliknij kolejno DevOps i zaangażowanie > Testowanie A/B.
- Wybierz eksperypt A/B Testing, o którego dane chcesz wysłać zapytanie, aby otworzyć Przegląd eksperymentu.
- W menu Opcje w sekcji BigQuery integracja wybierz Wyślij 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 elementem bazowym) o nazwie „Eksperyment powitalny”. Zwraca ono 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 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
Dodatkowe przykłady zapytań znajdziesz w sekcji Przeglądanie przykładowych zapytań.
Przeglądaj przykładowe zapytania
W sekcjach poniżej znajdziesz przykłady zapytań, za pomocą których możesz wyodrębniać A/B Testing dane 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 SQLBigQuery
wyodrębnia warianty eksperymentu, liczbę unikalnych użytkowników w każdym wariancie oraz sumuje łączny przychód
ze zdarzeń in_app_purchase i ecommerce_purchase oraz odchylenia standardowe
wszystkich eksperymentów w zakresie czasu określonym jako daty rozpoczęcia_TABLE_SUFFIX
i zakończenia. Dane uzyskane z tego zapytania możesz wykorzystać w generatorze istotności statystycznej w przypadku testów t jednostronnych, aby sprawdzić, czy wyniki podane przez Firebase są zgodne z Twoją analizą.
Więcej informacji o tym, jak A/B Testing oblicza wnioskowanie, znajdziesz w sekcji Interpretacja 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 kod ilustruje, jak uzyskać dane dotyczące 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, z których 24 mogą być uruchomione eksperymentów. Te limity są wspólne z wdrożeniami Remote Config. Jeśli na przykład masz 2 uruchomione wdrożenia i 3 uruchomione eksperymenty, możesz mieć maksymalnie 19 dodatkowych wdrożeń lub eksperymentów.
Jeśli osiągniesz limit 300 eksperymentów, przed utworzeniem nowego eksperymentu musisz usunąć istniejący.
Jeśli osiągniesz limit 24 uruchomionych eksperymentów i wdrożeń, przed rozpoczęciem nowego eksperymentu musisz zatrzymać uruchomiony 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. Rozmiar eksperymentu może wynosić do około 200 KiB. Obejmuje to nazwy wariantów, parametry wariantów i inne metadane konfiguracji.