Informacje o Testach A/B Firebase

Aby pomóc Ci zmaksymalizować trafność i przydatność wyników testów, na tej stronie znajdziesz szczegółowe informacje o sposobie działania Testów A/B Firebase.

Rozmiar próbki

Aby można było rozpocząć eksperyment, wnioskowanie z Testów A/B Firebase nie wymaga wskazania minimalnej wielkości próbki. Wybierz najwyższy poziom ekspozycji w eksperymencie, który Ci odpowiada. Większe rozmiary próbek zwiększają szanse na uzyskanie statystycznie istotnych wyników, zwłaszcza gdy różnice pod względem skuteczności między wariantami są niewielkie. Warto też skorzystać z kalkulatora rozmiaru próbki online, aby określić zalecany rozmiar próbki na podstawie charakterystyki eksperymentu.

Edytuj eksperymenty

Możesz edytować wybrane parametry prowadzonych eksperymentów, m.in.:

  • 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 wybierz Edytuj aktywny eksperyment.
  3. Wprowadź zmiany i kliknij Opublikuj.

Pamiętaj, że zmiana działania aplikacji podczas trwającego eksperymentu może wpłynąć na jego wyniki.

Logika przypisywania wariantów Zdalnej konfiguracji

Użytkownicy, którzy spełniają wszystkie warunki kierowania eksperymentu (w tym warunek procentu ekspozycji), są przypisywani do wariantów eksperymentu zgodnie z wagą wariantu oraz za pomocą skrótu identyfikatora eksperymentu oraz identyfikatora instalacji Firebase użytkownika.

Listy odbiorców z Google Analytics podlegają opóźnieniom i nie są dostępne od razu, gdy użytkownik spełnia kryteria dotyczące 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ą zazwyczaj zapisywani na kwalifikujących się odbiorców w ciągu 24–48 godzin od ich spełnienia.

W przypadku kierowania ograniczonego czasowo rozważ użycie właściwości użytkownika Google Analytics lub wbudowanych opcji kierowania, np. na kraj lub region, język i wersję aplikacji.

Gdy użytkownik dołączy do eksperymentu, zostanie on na stałe przypisany do jego wariantu 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ą pomiar 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ę. Wszyscy użytkownicy, którzy spełniają kryteria kierowania eksperymentu, otrzymają parametry eksperymentu. Dlatego ważne jest, aby wybrać zdarzenie aktywacji, które nastąpi po pobraniu i aktywowaniu parametrów eksperymentu, ale przed użyciem parametrów eksperymentu do zmodyfikowania działania aplikacji.

Wagi wariantów

Podczas tworzenia eksperymentu można zmienić domyślne wagi wariantu, aby uwzględnić w nim większy odsetek użytkowników objętych eksperymentem.

Zinterpretuj wyniki testu

Testy A/B Firebase korzystają z wnioskowania frekwencyjnego, aby ułatwić Ci określenie prawdopodobieństwa, że wyniki eksperymentu mogły wystąpić wyłącznie z powodu losowego. To prawdopodobieństwo jest określane przez wartość prawdopodobieństwa lub wartość p. Wartość p to prawdopodobieństwo, że różnica w skuteczności 2 wariantów może wystąpić na skutek przypadku losowego, mierzona jako wartość z zakresu od 0 do 1. Testy A/B używają poziomu istotności 0,05, aby:

  • Wartość p mniejsza niż 0,05 oznacza statystycznie istotną różnicę między wariantami, co oznacza, że raczej nie wystąpiło przez przypadek.
  • 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 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ła awaria, możesz śledzić odsetek użytkowników, u których nie wystąpiła awaria. Te dane są kumulowane od początku eksperymentu.

Wyniki są podzielone na Obserwowane dane i Dane wnioskowania. Obserwowane dane 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ą obserwowanych danych.

W przypadku każdego rodzaju danych wyświetlane są następujące statystyki:

Dane rzeczywiste

  • Łączna wartość śledzonych danych (liczba utrzymanych użytkowników, liczba użytkowników, którzy uległy awarii, łączne przychody)
  • Współczynnik zależny od danych (współczynnik utrzymania, współczynnik konwersji, przychody na użytkownika)
  • Różnica procentowa (wzrost) między wariantem a wartością bazową

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 zakres CI zawiera 0, nie wykryto istotnej statystycznie różnicy między wariantem a punktem odniesienia.

    Wartości przedziału ufności pojawiają się w formacie pasującym do śledzonych danych. Na przykład: czas (w HH:MM:SS) utrzymania użytkowników, USD w przypadku przychodów z reklam na użytkownika i procent współczynnika konwersji.

  • Wartość P, która reprezentuje prawdopodobieństwo braku rzeczywistej różnicy między wariantem a wartością bazową. Inaczej mówiąc, każda zaobserwowana różnica prawdopodobnie jest 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 mniejsza oznacza istotną różnicę i niskie prawdopodobieństwo, że wyniki są przypadkowe. Wartości P opierają się na teście jednostronnym, w którym wartość wariantu jest większa niż wartość punktu odniesienia. Firebase używa testu t-rów o nierównej wariancji w przypadku zmiennych ciągłych (wartości numerycznych, np. przychody) oraz testu proporcji z dla danych o konwersjach (wartości binarne, np. utrzymanie użytkowników, liczba użytkowników, których nie dotknęła awaria, liczba użytkowników, którzy wywołali zdarzenie Google Analytics).

Wyniki eksperymentu dostarczają ważnych informacji dla każdego jego wariantu, m.in.:

  • Jak wyższe lub niższe wartości poszczególnych danych eksperymentu w porównaniu z wartością bazową, mierzone bezpośrednio (czyli rzeczywiste obserwowane dane)
  • Prawdopodobieństwo, że zaobserwowana różnica między wariantem a wartością bazową mogła wystąpić z powodu przypadku losowego (wartość p).
  • Zakres, który prawdopodobnie będzie zawierał „prawdziwą” różnicę w skuteczności między wariantem a wartością bazową dla każdego wskaźnika eksperymentu, czyli sposób zrozumienia scenariuszy skuteczności w przypadku „najlepszych” i „najgorszych” scenariuszy

Zinterpretuj wyniki eksperymentów opartych na Google Optimize

Wyniki testów A/B Firebase w przypadku eksperymentów rozpoczętych przed 23 października 2023 r. były oparte na Google Optimize. Do wygenerowania szczegółowych statystyk na podstawie danych z eksperymentu Google Optimize zastosowało wnioskowanie Bayesa.

Wyniki są podzielone na „zaobserwowane dane” i „dane modelowane”. Rzeczywiste dane były obliczane bezpośrednio na podstawie danych analitycznych, a dane modelowane pozyskiwały z zastosowania do zaobserwowanych danych naszego modelu Bayesa.

W przypadku każdego rodzaju danych wyświetlane są następujące statystyki:

Rzeczywiste dane

  • Łączna wartość (suma danych dla wszystkich użytkowników w wariancie)
  • Średnia wartość (ś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 dane dla tego wariantu są wyższe niż w przypadku punktu 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 prawdopodobieństwo znalezienia wartości wskaźnika jest największe, z pewnością od 50% do 95%

Ogólnie wyniki eksperymentu dają nam 3 ważne obserwacje dotyczące każdego z wariantów w eksperymencie:

  1. Jak bardzo wyższe lub niższe wartości poszczególnych danych eksperymentu są w porównaniu z wartością bazową, co jest mierzone bezpośrednio (tj. rzeczywiste obserwowane dane)
  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 z wnioskowaniem na podstawie częstotliwości Firebase deklaruje, że najlepszy jest wariant, jeśli występuje statystycznie istotna różnica w skuteczności między wariantem a wartością bazową w odniesieniu do danych celu. Jeśli kilka wariantów spełnia te kryteria, wybierany jest wariant z najniższą wartością p.

W przypadku eksperymentów korzystających z Google Optimize usługa Firebase zadeklarowała, że wariant jest „wyraźnym liderem”, jeśli w przypadku danych podstawowych w ponad 95% przypadków będzie lepszy niż wariant bazowy. Jeśli kilka wariantów spełnia kryteria „wyraźny najlepszy wynik”, jako „wyraźny najlepszy wynik” wskazano tylko wariant o najwyższej skuteczności.

Ponieważ określanie najlepszego wariantu odbywa się tylko na podstawie głównego celu, przed podjęciem decyzji o wdrożeniu wiodącego wariantu należy wziąć pod uwagę wszystkie istotne czynniki i przejrzeć wyniki wskaźników dodatkowych. Możesz wziąć pod uwagę spodziewaną zaletę 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 w przypadku wariantu A dane o utrzymaniu użytkowników są na poziomie odniesienia, 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ł kontynuowany, dopóki nie zostaną spełnione te warunki:

  1. Eksperyment zebrał wystarczającą ilość danych, aby uzyskać przydatny wynik. Eksperymenty i dane o ich 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 trwał wystarczająco długo, aby zapewnić reprezentatywną próbkę użytkowników i dokonać pomiaru długoterminowej skuteczności. Zalecany minimalny czas działania typowego eksperymentu Zdalnej konfiguracji to 2 tygodnie.

Dane eksperymentu są przetwarzane przez maksymalnie 90 dni od jego rozpoczęcia. Po 90 dniach eksperyment zostaje automatycznie zatrzymany. Wyniki eksperymentu nie są już aktualizowane w konsoli Firebase, a eksperyment przestaje wysyłać wartości parametrów związane z eksperymentem. Na tym etapie klienty zaczynają pobierać wartości parametrów na podstawie warunków określonych w szablonie Zdalnej konfiguracji. Historyczne dane eksperymentu są przechowywane, dopóki go nie usuniesz.

Schemat BigQuery

Oprócz wyświetlania danych eksperymentu A/B w konsoli Firebase możesz przeglądać i analizować dane eksperymentu w BigQuery. Testy A/B nie mają osobnej tabeli BigQuery, ale przynależność do eksperymentów i wariantów jest przechowywana w przypadku każdego zdarzenia Google Analytics w tabelach zdarzeń Analytics.

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 indeks wariantu eksperymentu (wartość zero).

Możesz skorzystać z 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 weryfikować wyniki testów A/B.

Aby rozpocząć, wykonaj następujące czynności zgodnie z opisem w tym przewodniku:

  1. Włącz w konsoli Firebase eksport do BigQuery w Google Analytics
  2. Uzyskiwanie dostępu do danych Testów A/B za pomocą BigQuery
  3. Przykładowe zapytania

Włącz w konsoli Firebase eksport do BigQuery w przypadku Google Analytics

Jeśli masz abonament Spark, możesz użyć piaskownicy BigQuery, aby uzyskać bezpłatny dostęp do BigQuery (z uwzględnieniem limitów piaskownicy). Więcej informacji znajdziesz w artykule Ceny i piaskownica BigQuery.

Najpierw upewnij się, że eksportujesz dane Analytics do BigQuery:

  1. Otwórz kartę Integracje, do której możesz uzyskać dostęp, klikając > Ustawienia projektu w konsoli Firebase.
  2. Jeśli korzystasz już z BigQuery z innymi usługami Firebase, kliknij Zarządzaj. W przeciwnym razie kliknij Połącz.
  3. Przeczytaj artykuł Łączenie Firebase z BigQuery i 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 wybranego sposobu eksportowania danych udostępnienie tabel może potrwać nawet 1 dzień. Więcej informacji o eksportowaniu danych projektu do BigQuery znajdziesz w artykule Eksportowanie danych projektu do BigQuery.

Dostęp do danych Testów A/B w 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 ma postać https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25, identyfikator eksperymentu to 25.
  • Identyfikator usługi w Google Analytics: to 9-cyfrowy identyfikator usługi w Google Analytics. Znajdziesz ją 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 przyspieszyć i usprawnić zapytanie, warto ograniczyć zapytania do partycji tabel dziennych zdarzeń Google Analytics, które zawierają dane eksperymentu – tabele oznaczone za pomocą sufiksu YYYYMMDD. Jeśli więc Twój eksperyment trwał od 2 lutego do 2 maja 2024 r., musisz określić _TABLE_SUFFIX between '20240202' AND '20240502'. Przykład znajdziesz w sekcji Wybieranie wartości określonego eksperymentu.
  • Nazwy zdarzeń: zwykle odpowiadają one danym celu skonfigurowanym przez Ciebie w eksperymencie. np. zdarzenia in_app_purchase, ad_impression lub user_retention.
.

Po zgromadzeniu informacji potrzebnych do wygenerowania zapytania:

  1. Otwórz BigQuery w konsoli Google Cloud.
  2. Wybierz projekt, a następnie kliknij Utwórz zapytanie SQL.
  3. Dodaj zapytanie. Przykładowe zapytania, które należy wykonać, znajdziesz w sekcji Przeglądanie przykładowych zapytań.
  4. Kliknij Uruchom.

Zapytanie o dane eksperymentu za pomocą zapytania wygenerowanego automatycznie w konsoli Firebase

Jeśli korzystasz z abonamentu Blaze, na stronie Omówienie eksperymentu znajdziesz przykładowe zapytanie zwracające nazwę eksperymentu, jego warianty, nazwy zdarzeń oraz liczbę zdarzeń z wyświetlanego eksperymentu.

Aby uzyskać i uruchomić automatycznie wygenerowane zapytanie:

  1. W konsoli Firebase otwórz Testy A/B i wybierz eksperyment A/B, którego ma dotyczyć zapytanie, aby otworzyć Przegląd eksperymentu.
  2. W menu Opcje w sekcji Integracja z BigQuery wybierz Zapytanie o dane eksperymentu. Spowoduje to otwarcie projektu w BigQuery w konsoli Google Cloud i udostępnienie podstawowego zapytania, którego możesz używać do wysyłania zapytań o dane eksperymentu.

Przykład poniżej pokazuje wygenerowane zapytanie do eksperymentu z 3 wariantami (w tym z elementem bazowym) o nazwie „Zimowy eksperyment powitalny”. Zwraca nazwę aktywnego eksperymentu, nazwę wariantu, niepowtarzalne 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

Więcej przykładów zapytań znajdziesz w artykule Przykładowe zapytania.

Przykładowe zapytania

W sekcjach poniżej znajdziesz przykłady zapytań, których możesz użyć do wyodrębnienia danych eksperymentu z testami A/B z tabel zdarzeń Google Analytics.

Wyodrębnij wartości odchyleń standardowych zakupu i eksperymentu ze wszystkich eksperymentów

Dane z wyników eksperymentu możesz wykorzystać do niezależnej weryfikacji wyników Testów A/B Firebase. Ta instrukcja SQL BigQuery wyodrębnia warianty eksperymentu, liczbę unikalnych użytkowników w każdym wariancie oraz sumuje łączne przychody ze zdarzeń in_app_purchase i ecommerce_purchase oraz odchylenia standardowe dla wszystkich eksperymentów w zakresie czasowym określonym jako data rozpoczęcia i zakończenia _TABLE_SUFFIX. Danych uzyskanych z tego zapytania możesz użyć w generatorze istotności statystycznej dla jednostronnych testów T, aby sprawdzić, czy wyniki dostarczane przez Firebase pasują do Twojej analizy.

Więcej informacji o tym, jak Testy A/B obliczają 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;

Wybierz wartości z konkretnego eksperymentu

Przykład poniżej pokazuje, jak uzyskać dane z konkretnego eksperymentu w BigQuery. To przykładowe zapytanie zwraca nazwę eksperymentu, nazwy wariantów (w tym punkt odniesienia), 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

W teście A/B można utworzyć maksymalnie 300 eksperymentów, 24 eksperymenty aktywne i 24 wersje robocze. Te limity są udostępniane wdrażaniem Zdalnej konfiguracji. 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.

  • Po osiągnięciu limitu 24 aktywnych eksperymentów i wdrożeń musisz zatrzymać aktywny eksperyment lub wdrożenie, zanim rozpoczniesz nowy.

Eksperyment może obejmować maksymalnie 8 wariantów (w tym element bazowy) i do 25 parametrów dla każdego z nich. Eksperyment może mieć rozmiar do około 200 KiB. Obejmuje to nazwy wariantów, parametry wariantów i inne metadane konfiguracji.