Informacje o Testach A/B Firebase

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. Ogólnie rzecz biorąc, 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:

  1. W konsoli Firebase kliknij DevOps i zaangażowanie > Testy A/B.
  2. Otwórz stronę wyników eksperymentu, który chcesz zmodyfikować.
  3. W menu Więcej wybierz Edytuj trwający eksperyment.
  4. 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 losowego przypadku. 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 losowego przypadku, jeśli w rzeczywistości nie ma efektu, mierzone 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, prawdopodobieństwo, że zaobserwowana różnica o takiej wartości mogła 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 wyświetla skumulowane średnie wartości wybranych danych. Jeśli na przykład śledzisz przychody z reklam na użytkownika, wyświetlane są zaobserwowane przychody na użytkownika, a jeśli śledzisz użytkowników bez awarii, śledzony jest 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świetlane są te statystyki:

Dane rzeczywiste

  • Łączna wartość śledzonych danych (liczba utrzymanych użytkowników, 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 na przykład wyniki eksperymentu wskazują, że 95% przedział ufności dla szacowanych łącznych przychodów 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 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 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. 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ż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 losowego przypadku (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 (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 przypadku danych głównych i pomocniczych 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 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.
  2. 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 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 A/B Testingdanych eksperymentu z testów A/B w Firebase konsoli Firebase możesz też sprawdzać i analizować dane eksperymentu w BigQuery BigQuery. Testy A/B nie mają osobnej BigQuery tabeli, ale informacje o eksperymencie i przynależności do wariantu 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. Dzięki temu możesz analizować 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 do BigQuery w przypadku Google Analytics w konsoli Firebase
  2. Uzyskaj dostęp do A/B Testing danych za pomocą BigQuery
  3. Przeglądaj przykładowe zapytania.

Włączanie BigQuery eks0portu do 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 sekcjach Ceny i BigQuery piaskownica.

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

  1. W konsoli Firebase otwórz ustawienia Ustawienia > Integracje tab.

  2. 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).

  3. Jeśli musisz skonfigurować eksport:

    1. Przeczytaj sekcję Łączenie Firebase z BigQuery i kliknij Dalej.

    2. W sekcji Skonfiguruj integrację włącz Google Analytics.

    3. Wybierz region i ustawienia eksportu.

    4. Kliknij Link do BigQuery.

W zależności od sposobu eksportowania danych 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 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: 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 które zawierają dane eksperymentu – tabel oznaczonych sufiksem YYYYMMDD. Jeśli na przykład 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_impression lub user_retention.
.

Po zebraniu informacji potrzebnych do wygenerowania zapytania:

  1. W konsoli Google Cloud otwórz BigQuery.
  2. Wybierz projekt, a potem kliknij Utwórz zapytanie SQL.
  3. Dodaj zapytanie. Przykładowe zapytania znajdziesz w sekcji Przeglądanie przykładowych zapytań.
  4. 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:

  1. W konsoli Firebase kliknij DevOps i zaangażowanie > Testy A/B.
  2. Wybierz eksperyment A/B Testing, o którego dane chcesz wysłać zapytanie, aby otworzyć Przegląd eksperymentu.
  3. W menu Opcje w sekcji BigQuery integracja wybierz 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 pokazuje 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

Aby zobaczyć dodatkowe przykłady zapytań, przejdź do 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żnej weryfikacji wyników Firebase A/B Testing możesz używać danych wyników eksperymentu. To BigQuery 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. 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ć aktywne. Te limity są wspólne z wdrożeniami Remote Config. Jeśli na przykład masz 2 aktywne wdrożenia i 3 aktywne 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 aktywnych eksperymentów i wdrożeń, przed rozpoczęciem nowego musisz zatrzymać aktywny 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.