Informacje o Testach A/B Firebase

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

Rozmiar próbki

Wnioski w ramach Testów A/B Firebase nie wymagają identyfikacji minimalnej próbki przed rozpoczęciem eksperymentu. Ogólnie należy wybrać największy poziom ekspozycji w eksperymencie, który Ci odpowiada. Większe rozmiary zwiększają szanse na uzyskanie wyniku istotnego statystycznie, zwłaszcza wtedy, gdy różnice pod względem skuteczności między wariantami są niewielkie. Możesz również skorzystać z kalkulatora rozmiaru próbki online, aby znaleźć zalecany rozmiar próbki na podstawie charakterystyki eksperymentu.

Edytuj eksperymenty

Możesz edytować wybrane parametry trwających eksperymentów, m.in.:

  • Nazwa eksperymentu
  • Opis
  • Warunki kierowania
  • Wartości wersji

Aby edytować eksperyment:

  1. Otwórz stronę wyników 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 trwania 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 wartość procentowa ekspozycji), są przypisywani do wariantów eksperymentu zgodnie z wagami wariantów oraz hasz identyfikatora eksperymentu i identyfikatora instalacji Firebase użytkownika.

Listy odbiorców Google Analytics podlegają opóźnieniom i nie są dostępne od razu, gdy użytkownik spełnia kryteria listy odbiorców:

  • Gdy utworzysz nową listę odbiorców, zebranie przez Ciebie nowych użytkowników może potrwać 24–48 godzin.
  • Nowi użytkownicy są zazwyczaj dodawani do kwalifikujących się odbiorców po 24–48 godzinach od momentu spełnienia kryteriów.

Jeśli zależy Ci na ograniczeniu czasu, rozważ zastosowanie właściwości użytkownika lub wbudowanych opcji kierowania, takich jak kraj, region, język i wersja aplikacji w Google Analytics.

Po rozpoczęciu eksperymentu użytkownik zostaje na stałe przypisany do jego wariantu i otrzymuje z niego wartości parametrów, dopóki eksperyment pozostaje aktywny – nawet wtedy, gdy jego właściwości użytkownika ulegną zmianie i nie będzie on już spełniał kryteriów kierowania eksperymentu.

zdarzenia aktywacji

Zdarzenia aktywacji eksperymentu ograniczają pomiary w eksperymencie do użytkowników aplikacji, którzy wywołują 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 trzeba wybrać zdarzenie aktywacji, które nastąpi po pobraniu i aktywowaniu parametrów eksperymentu, ale przed wykorzystaniem tych parametrów do modyfikacji działania aplikacji.

Wagi wariantów

Podczas tworzenia eksperymentu można zmienić domyślne wagi wariantów, aby uwzględnić w nich większy odsetek użytkowników eksperymentu.

Zinterpretuj wyniki testu

Testy A/B Firebase korzystają z wnioskowania częstościowego, aby pomóc Ci zrozumieć, jak bardzo prawdopodobne jest, że wyniki eksperymentu pojawiły się tylko w wyniku losowego przypadku. Prawdopodobieństwo to jest reprezentowane przez wartość prawdopodobieństwa lub wartość p. Wartość p to prawdopodobieństwo, że różnica w skuteczności 2 wariantów mogła wystąpić z przypadku losowego. Mierzona jest wartość z zakresu od 0 do 1. W testach A/B poziom istotności wynosi 0,05, więc:

  • Wartość p mniejsza niż 0,05 oznacza statystycznie istotną różnicę między wariantami, co oznacza, że jest mało prawdopodobne, że doszło do niej przez przypadek.
  • Wartość p większa niż 0,05 oznacza, że różnica między wariantami nie jest statystycznie istotna.

Dane eksperymentu są odświeżane raz dziennie, a czas ostatniej aktualizacji wyświetla się u góry strony wyników eksperymentu.

Wykres wyników eksperymentu pokazuje skumulowane średnie wartości wybranych danych. Jeśli na przykład śledzisz przychody z reklam na użytkownika, raport zawiera zaobserwowane przychody na użytkownika, a jeśli śledzisz użytkowników, u których nie wystąpiła awaria, śledzi odsetek użytkowników, u których nie wystąpiła żadna awaria. Dane te kumulują się od początku eksperymentu.

Wyniki są dzielone na Zaobserwowane dane i Dane wnioskowania. Obserwowane dane są obliczane bezpośrednio na podstawie danych Google Analytics, a dane wnioskowania podają wartości p i przedziały ufności, które pomagają ocenić istotność statystyczną obserwowanych danych.

Dla 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, u których wystąpił błąd, łączne przychody)
  • Współczynnik związanych z danymi (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 w średnich): wyświetla przedział zawierający wartość „prawda” śledzonych danych z 95% poziomem ufności. Jeśli np. eksperyment daje 95% CI w przypadku szacowanych łącznych przychodów w przedziale od 5 do 10 USD, istnieje 95% prawdopodobieństwa, że rzeczywista różnica w średnich wartościach wynosi od 5 do 10 USD. Jeśli zakres CI zawiera 0, oznacza to, że nie wykryto istotnej statystycznie różnicy między wariantem a wartością bazową.

    Wartości przedziału ufności są wyświetlane w formacie dopasowanym do śledzonych danych. Na przykład: czas (w kolumnie HH:MM:SS) utrzymania użytkowników, przychody z reklam na użytkownika w USD i procent współczynnika konwersji.

  • Wartość P, która określa prawdopodobieństwo, że nie ma rzeczywistej różnicy między wariantem a elementem bazowym. Inaczej mówiąc, zaobserwowana różnica jest prawdopodobnie spowodowana przypadkiem losowym. Im niższa wartość p, tym większa pewność, że obserwowana skuteczność pozostanie prawdziwa w przyszłości. Wartość 0,05 lub mniejsza oznacza istotną różnicę i niskie prawdopodobieństwo, że wyniki będą wynikiem przypadku. Wartości P są oparte na teście jednostronnym, w którym wartość wariantu jest większa niż wartość punktu odniesienia. W przypadku danych o konwersjach Firebase używa testu t-równej wariancji dla zmiennych ciągłych (wartości liczbowych, np. przychodów) i testu proporcji dla danych o konwersjach (wartości binarnych, np. utrzymanie użytkowników, użytkowników, u których nie wystąpiła awaria, oraz użytkowników, którzy wywołali zdarzenie Google Analytics).

Wyniki eksperymentu dostarczają ważnych informacji o każdym jego wariantie, m.in.:

  • jak bardzo poszczególne wskaźniki eksperymentu są porównywane z wartościami bazowymi, które zostały zmierzone bezpośrednio (czyli z rzeczywistymi danymi zaobserwowanymi).
  • Prawdopodobieństwo, że zaobserwowana różnica między wariantem a wartością bazową mogła wystąpić z powodu losowego przypadku (wartość p).
  • Zakres, który prawdopodobnie będzie zawierał „prawdziwą” różnicę w skuteczności między wariantem a wartością bazową dla poszczególnych danych eksperymentu – będzie to sposób na zrozumienie scenariuszy skuteczności „najlepszych” i „najgorszych”.

Interpretowanie wyników eksperymentów obsługiwanych przez Google Optimize

Wyniki Testów A/B Firebase w eksperymentach, które rozpoczęły się przed 23 października 2023 r., były obsługiwane przez Google Optimize. Usługa Google Optimize użyła wnioskowania Bayesa do wygenerowania pomocnych statystyk na podstawie danych z eksperymentów.

Wyniki są dzielone na „dane zaobserwowane” i „dane modelowane”. Zaobserwowane dane zostały obliczone bezpośrednio na podstawie danych analitycznych, a modelowane dane pozyskane przez zastosowanie do nich naszego modelu Bayesa.

Dla 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 użytkowników w wariancie).
  • % różnicy wobec punktu odniesienia

Modelowane dane

  • Prawdopodobieństwo lepszego wyniku niż wartość bazowa: prawdopodobieństwo, że dany rodzaj danych jest wyższy w przypadku tego wariantu w porównaniu z wartością bazową.
  • Różnica procentowa w stosunku do punktu odniesienia: na podstawie szacunkowych danych modelu mediany dla danego wariantu i punktu odniesienia
  • Zakresy danych: zakresy, w których prawdopodobieństwo znalezienia wartości danych jest największe, z pewnością 50% i 95%.

Ogólnie wyniki eksperymentu dostarczają nam 3 ważnych statystyk dotyczących każdej z wariantów eksperymentu:

  1. O ile wyższy lub niższy poszczególne wskaźniki eksperymentu w porównaniu z wartością bazową wynikającą z bezpośrednich pomiarów (tj.rzeczywistych zaobserwowanych danych).
  2. Jak prawdopodobne jest, że poszczególne dane eksperymentu są wyższe od wartości bazowej / ogólnie najlepsze, na podstawie wnioskowania Bayesa (prawdopodobieństwo lepszego / najlepszego wyniku)
  3. Prawdopodobne zakresy dla każdego wskaźnika eksperymentu na podstawie wnioskowania Bayesa (scenariusze „najlepszy” i „najgorszy” (przedziały czasowe).

Wyznaczenie lidera

W przypadku eksperymentów korzystających z wnioskowania częstości Firebase deklaruje, że dany wariant jest najlepszy, 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 to kryterium, wybierany jest wariant o najniższej wartości p.

W przypadku eksperymentów korzystających z Google Optimize Firebase zadeklarował, że dany wariant jest „zwycięskim wariantem”, jeśli ma ponad 95% szans na to, że jest lepszy od wariantu podstawowego w przypadku podstawowych danych. Jeśli kilka wariantów spełnia kryteria „zdecydowanie najlepszy”, tylko ten z nich osiąga najlepsze wyniki.

Wskazanie najlepszego wariantu opiera się tylko na celu głównym, dlatego przed podjęciem decyzji o wdrożeniu wiodącego wariantu należy wziąć pod uwagę wszystkie istotne czynniki i sprawdzić wyniki danych dodatkowych. Możesz rozważyć oczekiwane korzyści wynikające z wprowadzenia zmiany, ryzyko straty (np. dolny koniec przedziału ufności umożliwiającego poprawę) oraz wpływ na dane inne niż główny cel.

Jeśli np. Twoim głównym wskaźnikiem są użytkownicy, u których nie wystąpiła awaria, a wariant A jest wyraźnie lepszy od punktu odniesienia, ale w przypadku wariantu A wskaźniki utrzymania użytkowników rejestrują bazowe wskaźniki utrzymania użytkowników, przed udostępnieniem wariantu A dokładniej zbadaj tę kwestię.

Możesz wdrożyć dowolny wariant, a 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 kontynuowanie eksperymentu do momentu spełnienia tych warunków:

  1. Eksperyment zebrał wystarczającą ilość danych, aby uzyskać przydatny wynik. Eksperymenty i dane o wynikach są aktualizowane raz dziennie. Aby oszacować wielkość próbki do eksperymentu, można skorzystać z kalkulatora wielkości próbki online.
  2. Eksperyment trwał wystarczająco długo, by zapewnić reprezentatywną próbkę użytkowników i mierzyć długoterminową skuteczność. Zalecane minimalne czasy 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 przestanie wysyłać wartości jego parametrów. W tym momencie klienty zaczynają pobierać wartości parametrów na podstawie warunków określonych w szablonie Zdalnej konfiguracji. Historyczne dane eksperymentu są przechowywane do momentu jego usunięcia.

Schemat BigQuery

Poza wyświetlaniem w konsoli Firebase danych z eksperymentów testów A/B możesz je przeglądać i analizować w BigQuery. Testy A/B nie mają oddzielnej tabeli BigQuery, ale członkostwa w eksperymentach i wariantach są przechowywane 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 to indeks wariantu eksperymentu (liczony od zera).

Za pomocą tych właściwości użytkownika eksperymentu możesz wyodrębnić dane eksperymentu. Dzięki temu możesz podzielić wyniki eksperymentu na wiele różnych sposobów i niezależnie zweryfikować wyniki testów A/B.

Aby rozpocząć, wykonaj te czynności zgodnie z opisem w tym przewodniku:

  1. włączyć eksportowanie danych do BigQuery z Google Analytics w konsoli Firebase.
  2. Dostęp do danych z Testów A/B za pomocą BigQuery
  3. Zobacz przykładowe zapytania

Włącz eksportowanie danych do BigQuery dla Google Analytics w konsoli Firebase

Jeśli masz abonament Spark, możesz użyć piaskownicy BigQuery, aby uzyskać bezpłatny dostęp do BigQuery (zgodnie z limitami 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 używasz już BigQuery z innymi usługami Firebase, kliknij Zarządzaj. W przeciwnym razie kliknij Połącz.
  3. Zapoznaj się z artykułem Łą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 tabele będą dostępne w ciągu jednego dnia. 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

Zanim wyślesz zapytanie o dane z konkretnego eksperymentu, musisz uzyskać do wykorzystania w zapytaniu niektóre lub wszystkie elementy z tych elementów:

  • Identyfikator eksperymentu: znajdziesz go 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.
  • Identyfikator usługi Google Analytics: to 9-cyfrowy identyfikator usługi w Google Analytics. Możesz go znaleźć w Google Analytics. Pojawia się on też w BigQuery, gdy rozwiniesz nazwę projektu, aby wyświetlić nazwę tabeli zdarzeń Google Analytics (project_name.analytics_000000000.events).
  • Data eksperymentu: aby szybciej i wydajniej utworzyć zapytanie, warto ograniczyć zapytania do partycji tabeli zdarzeń dziennych w Google Analytics zawierających dane eksperymentu – tabel z sufiksem YYYYMMDD. Jeśli więc eksperyment trwał od 2 lutego 2024 r. do 2 maja 2024 r., określ wartość _TABLE_SUFFIX between '20240202' AND '20240502'. Przykład: Wybieranie wartości konkretnego eksperymentu.
  • Nazwy zdarzeń: zwykle odpowiadają wskazówkom celu skonfigurowanym w eksperymencie. Na przykład zdarzenia in_app_purchase, ad_impression lub user_retention.

Gdy zbierzesz informacje potrzebne do wygenerowania zapytania:

  1. Otwórz BigQuery w konsoli Google Cloud.
  2. Wybierz projekt, a potem kliknij Utwórz zapytanie SQL.
  3. Dodaj zapytanie. Przykładowe zapytania do uruchomienia znajdziesz w artykule Przeglądanie przykładowych zapytań.
  4. Kliknij Uruchom.

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 zwróci nazwę eksperymentu, jego warianty, nazwy zdarzeń oraz liczbę zdarzeń związanych z przeglądanym eksperymentem.

Aby uzyskać i uruchomić automatycznie wygenerowane zapytanie:

  1. W konsoli Firebase otwórz Testy A/B i wybierz eksperyment z Testami A/B, do którego chcesz wysłać zapytanie. Otworzy to stronę z omówieniem eksperymentu.
  2. W sekcji Integracja z BigQuery w menu Opcje wybierz Wysyłanie zapytań o dane z eksperymentu. Spowoduje to otwarcie projektu w BigQuery w konsoli Google Cloud konsoli Google Cloud i wyświetlenie podstawowego zapytania, którego możesz użyć do wysyłania zapytań dotyczących danych eksperymentu.

Przykład poniżej pokazuje wygenerowane zapytanie o eksperyment z 3 wariantami (łącznie z wartością bazową) o nazwie „Eksperyment powitalny zimą”. Zwraca nazwę aktywnego eksperymentu, nazwę wariantu, unikalne zdarzenie i liczbę zdarzeń dla każdego zdarzenia. Pamiętaj, że konstruktor zapytań nie podaje w nazwie tabeli nazwy projektu, ponieważ jest ona otwierana 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 sekcji Przykładowe zapytania.

Zobacz przykładowe zapytania

W kolejnych sekcjach znajdziesz przykłady zapytań, za pomocą których możesz wyodrębniać dane eksperymentu z Testów A/B z tabel zdarzeń w Google Analytics.

Wyodrębnij wartości zakupu i odchylenia standardowego eksperymentu ze wszystkich eksperymentów

Danych z wyników eksperymentu możesz używać do niezależnej weryfikacji wyników Testów A/B Firebase. Poniższa instrukcja SQL w 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 ze wszystkich eksperymentów w zakresie czasowym określonym jako daty rozpoczęcia i zakończenia (_TABLE_SUFFIX). Dane uzyskane w ramach tego zapytania możesz wykorzystać w generatorze istotności statystycznej do jednostronnych testów t, aby sprawdzić, czy wyniki podawane przez Firebase odpowiadają Twojej analizie.

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 konkretnego eksperymentu

Podane niżej przykładowe zapytanie pokazuje, jak uzyskać w BigQuery dane dotyczące konkretnego eksperymentu. To przykładowe zapytanie zwraca nazwę eksperymentu, nazwy wariantów (w tym opcję bazową), 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

Testy A/B są ograniczone do 300 eksperymentów, 24 aktywnych eksperymentów i 24 wersji roboczych eksperymentów. Te limity są udostępniane we wdrożeniach Zdalnej konfiguracji. Jeśli np. masz 2 wdrożenia lub 3 aktywne eksperymenty, możesz mieć maksymalnie 19 dodatkowych wdrożeń lub eksperymentów.

  • Gdy osiągniesz limit wynoszący 300 eksperymentów lub 24 wersje robocze, musisz usunąć jeden z dotychczasowych eksperymentów, zanim utworzysz nowy.

  • Gdy osiągniesz limit 24 aktywnych eksperymentów i wdrożeń, przed rozpoczęciem nowego musisz zatrzymać trwający eksperyment lub wdrażanie.

Eksperyment może mieć maksymalnie 8 wariantów (łącznie z elementem bazowym) i do 25 parametrów dla każdego wariantu. Rozmiar eksperymentu nie może przekraczać 200 KiB. Obejmuje to nazwy wariantów, parametry wariantów i inne metadane konfiguracji.