Informacje o Testach A/B Firebase

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:

  1. Otwórz stronę wyników eksperymentu, który chcesz zmodyfikować.
  2. W menu Więcej kliknij Edytuj bieżący eksperyment.
  3. 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 eksperymencie), są przypisywani do wariantów eksperymentu zgodnie z wagą wariantu i hautem 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 wymagań.

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 wejdzie w ramy eksperymentu, jest trwale przypisany do wariantu eksperymentalnego i otrzymuje wartości parametrów z eksperymentu do czasu jego zakończenia, 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ć większy odsetek użytkowników do danego wariantu.

Interpretowanie wyników testu

Firebase A/B Testing korzysta z inferencji częstościowej, aby pomóc Ci określić 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 skrajna różnica mogła wystąpić przypadkowo, jest mniejsze niż 5%. Ponieważ 0,05 to wartość progowa, 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 obserwacyjnedane 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 miary (współczynnik utrzymania, współczynnik konwersji, przychody na użytkownika).
  • Różnica procentowa (wzrost) między wersją a wersją podstawową

Dane wnioskowania

  • Przedział ufności 95% (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 wyniki eksperymentu pozostaną niezmienione, jeśli go powtórzymy. 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 jednostronnym, 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 (czyli rzeczywistych zaobserwowanych danych).
  • 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 w przypadku 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:

  1. 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)
  2. 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)
  3. prawdopodobne zakresy dla każdego wskaźnika eksperymentalnego 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. Twoje podstawowe dane to „Użytkownicy bez awarii”, a wariant A wyraźnie wygrywa z poziomem wyjściowym, ale dane o zachowaniu użytkowników w wariantach A są gorsze od danych wyjściowych, warto przeprowadzić dodatkowe analizy, zanim wprowadzisz wariant A na większą skalę.

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:

  1. Eksperyment zebrał wystarczającą ilość danych, aby można było uzyskać 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.
  2. Eksperyment trwał wystarczająco długo, aby zapewnić reprezentatywną próbę użytkowników i zmierzyć długoterminową skuteczność. W przypadku typowego eksperymentu związanego ze Zdalną konfiguracją 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ż tabela 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 zgodnie z opisem w tym przewodniku:

  1. Włącz eksport BigQuery do Google Analytics w konsoli Firebase
  2. Dostęp do danych A/B Testing za pomocą BigQuery
  3. 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:

  1. Otwórz kartę Integracje, do której możesz przejść, klikając > Ustawienia projektu w konsoli Firebase.
  2. Jeśli używasz już BigQuery w innych usługach Firebase, kliknij Zarządzaj. W przeciwnym razie kliknij Połącz.
  3. Zapoznaj się z informacjami na temat łączenia Firebase z BigQuery, a potem 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 tego, jak chcesz wyeksportować dane, tabele mogą być dostępne po upływie nawet 1 dnia. Więcej informacji o eksportowaniu danych projektu do pliku BigQuery znajdziesz w artykule Eksportowanie danych projektu do pliku 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 sekcji Google Analytics. Pojawia się też w sekcji BigQuery, gdy rozwiniesz nazwę projektu, aby wyświetlić nazwę tabeli zdarzeń Google Analytics (project_name.analytics_000000000.events).
  • 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: 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 user_retention zdarzenia.

Gdy już zbierzesz informacje potrzebne do wygenerowania zapytania:

  1. W konsoli Google Cloud otwórz BigQuery.
  2. Wybierz projekt, a następnie kliknij Utwórz zapytanie SQL.
  3. Dodaj zapytanie. Przykładowe zapytania do uruchomienia znajdziesz w sekcji Przykładowe zapytania.
  4. 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:

  1. W konsoli Firebase otwórz A/B Testing i wybierz eksperyment A/B Testing, którego dotyczy zapytanie, aby otworzyć Przegląd eksperymentu.
  2. W menu Opcje w sekcji integracji BigQuery kliknij Wysyłanie zapytań do danych eksperymentu. Spowoduje to otwarcie projektu w konsoli BigQuery w konsoli Google Cloud oraz wyświetlenie podstawowego zapytania, którego możesz użyć do uzyskania danych z eksperymentu.

W tym przykładzie pokazano wygenerowane zapytanie dotyczące 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ń. Pamiętaj, że kreator zapytań nie podaje 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 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 instrukcja SQL BigQuery wyodrębnia warianty eksperymentu, liczbę unikalnych użytkowników w każdym z nich oraz sumuje łączne przychody z zdarzeń in_app_purchaseecommerce_purchase oraz odchylenia standardowe dla wszystkich eksperymentów w zakresie dat określonym jako początek i koniec _TABLE_SUFFIX. Dane uzyskane z tego zapytania możesz użyć z generatorem istotności statystycznej w przypadku testów t-Studenta jednokierunkowych, 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 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 zapytanie 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.