← Wszystkie tematy W 6% ogłoszeń · 3 z 47 ogłoszeń frontend React

Analityka produktu i eksperymenty

Liczenie, która zjeżdżalnia jest ulubiona

Analityka produktu i eksperymenty pojawiają się w 3 z 47 ogłoszeń, głównie w e-commerce, gdzie liczy się konwersja. Pytania dotyczą testów A/B i tego, jak nie zepsuć przy nich wydajności.

Opanowane 0 z 3 pytań

Co piszą w ogłoszeniach

Scena pierwsza · mruganie (flicker)

Która zjeżdżalnia jest ulubiona?

Chcemy sprawdzić, czy dzieci chętniej klikają pomarańczowy przycisk „Kup teraz”, czy morski „Spróbuj za darmo”. Połowa gości dostaje wersję A, połowa B. Problem: jeśli losujemy dopiero w przeglądarce, gość przez chwilę widzi A, a potem przycisk zmienia się na jego oczach. Gdy losowanie robi serwer, gość od razu dostaje swoją wersję.

sklep.pl
Lizaki na każdy humor Kup teraz
gość
–
wylosowana wersja
–
przycisk zmienił się
–

Wpuszczaj nowych gości, aż któryś trafi na wersję B.

Scena druga · ile gości potrzeba

Dwa rzuty monetą to za mało

Naprawdę B jest trochę lepsze: klika 6 na 100 dzieci, a w A tylko 5. Przy małej liczbie gości wyniki skaczą jak szalone i łatwo ogłosić złego zwycięzcę. Wpuszczaj gości i patrz, kiedy wynik się uspokaja.

A–
B–
brak danych

Kliknij kilka razy „Wpuść 100 gości”.

Porównajmy

Losowanie w przeglądarce czy na serwerze?

W przeglądarceNa serwerze / edge
Co widzi gość? Wersję A, a po chwili B.Flicker: skrypt podmienia DOM po załadowaniu. Od razu swoją wersję.HTML renderowany już z wariantem.
Lekarstwo na mruganie Ukryć stronę do decyzji.Anti-flicker snippet: gorszy LCP, ryzyko pustej strony, gdy skrypt nie dojdzie. Niepotrzebne.Middleware (Next.js, Vercel/Cloudflare edge) czyta cookie i wybiera wariant.
Ten sam gość wraca Cookie lub localStorage w przeglądarce. Cookie ustawione przez serwer.Przydział stały dla użytkownika (sticky), najlepiej po ID.
Wydajność Dodatkowy skrypt w krytycznej ścieżce.Narzędzia typu VWO, Optimizely web. Bez dodatkowego JS.Uwaga na cache CDN: wariant musi być w kluczu cache albo w Vary.
Kto ustawia? Marketing, edytorem wizualnym. Programiści, w kodzie.Feature flags z eksperymentami: GrowthBook, LaunchDarkly, Statsig.

Losuj przed rysowaniem

Wariant wybieraj na serwerze lub edge, wtedy nic nie mruga.

Zawsze ten sam

Gość, który wraca, dostaje tę samą wersję. Inaczej psujesz pomiar.

Cierpliwość

Ustal z góry, ilu gości potrzebujesz. Nie ogłaszaj zwycięzcy po pierwszej setce.

Sprawdź się

Pytania z rozmów

Najpierw odpowiedz na głos, dopiero potem rozwiń odpowiedź.

  1. Jak zrobić test A/B na froncie, żeby nie było mrugania (flicker) przy ładowaniu?

    Moja odpowiedź

    Zapisuje się samo w tej przeglądarce. Kopię zrobisz na stronie Notatki.

    Pokaż odpowiedź

    Dla przedszkolaka: Losujesz, którą zjeżdżalnię dostanie dziecko, zanim wejdzie na plac zabaw. Wtedy nie widzi, jak zjeżdżalnia zamienia się w inną na jego oczach.

    Na rozmowę: Wariant wybieram przed renderem: na serwerze lub w edge middleware (Next.js middleware, Vercel Edge Config, Cloudflare Workers), zapisuję go w cookie i renderuję HTML już z właściwym wariantem. Narzędzia: GrowthBook, Statsig, LaunchDarkly, Optimizely Full Stack. Przy SSG/CDN wariant musi być w kluczu cache (osobne ścieżki przez rewrite albo Vary). Losowanie po stronie klienta wymaga anti-flicker snippetu, który ukrywa stronę i psuje LCP, więc to ostateczność.

    Umiem?
    Zapytaj Claude RozwińPrzepytaj mniePytania pogłębiające
  2. Jak zapewnić, że użytkownik zawsze widzi ten sam wariant i że wynik jest wiarygodny?

    Moja odpowiedź

    Zapisuje się samo w tej przeglądarce. Kopię zrobisz na stronie Notatki.

    Pokaż odpowiedź

    Dla przedszkolaka: Dziecko, które raz dostało pomarańczową zjeżdżalnię, przy każdym powrocie dostaje tę samą. Inaczej nie wiadomo, która mu się podobała.

    Na rozmowę: Przydział deterministyczny: hash(userId lub anonimowe id z cookie + nazwa eksperymentu) mod 100, więc ten sam użytkownik zawsze trafia do tego samego wariantu, także na innym urządzeniu po zalogowaniu. Ekspozycję loguję dopiero, gdy użytkownik faktycznie zobaczył wariant. Przed startem liczę wielkość próby (MDE, moc testu), nie zatrzymuję testu po pierwszym „istotnym” wyniku (peeking), pilnuję sample ratio mismatch i jednej głównej metryki z metrykami ochronnymi (np. błędy, wydajność).

    Umiem?
    Zapytaj Claude RozwińPrzepytaj mniePytania pogłębiające
  3. Jak wdrożyć śledzenie zdarzeń analitycznych, żeby nie spowalniało strony i szanowało zgody (RODO)?

    Moja odpowiedź

    Zapisuje się samo w tej przeglądarce. Kopię zrobisz na stronie Notatki.

    Pokaż odpowiedź

    Dla przedszkolaka: Zanim zaczniesz zapisywać, co robią dzieci, pytasz rodziców o zgodę, a notatki robisz po cichu, nie przerywając zabawy.

    Na rozmowę: Najpierw zgoda: CMP i Google Consent Mode, skrypty marketingowe dopiero po akceptacji. Jeden wspólny moduł track(event, props) z typowanym planem zdarzeń zamiast rozsianych wywołań gtag. Wysyłka przez sendBeacon lub w batchach, skrypty z async/defer lub przez Partytown w web workerze, server-side tagging (sGTM) zamiast kilku pikseli w przeglądarce. Nie wysyłam danych osobowych w parametrach i URL-ach, a w dataLayer tylko to, co potrzebne.

    Umiem?
    Zapytaj Claude RozwińPrzepytaj mniePytania pogłębiające
Poziom wyżej

Wersja dla seniora

Tak wyglądają pytania na seniora i leada: nie ma jednej dobrej odpowiedzi, liczy się to, jak ważysz kompromisy i czy mówisz o skali, ryzyku i ludziach.

Przypadek 1

Po wdrożeniu banera zgód zniknęła połowa danych

Sklep wdrożył CMP zgodny z RODO i Consent Mode. Następnego dnia dashboardy pokazują spadek ruchu o 45%, marketing panikuje, a prawnik przypomina, że skrypty śledzące wcześniej ładowały się bez zgody. Masz to uporządkować technicznie.

Zanim rozwiniesz: powiedz na głos, jak byś to rozwiązał, i nazwij co najmniej jeden kompromis.

Moje rozwiązanie

Zapisuje się samo w tej przeglądarce. Kopię zrobisz na stronie Notatki.

Pokaż, czego szuka rekruter, i modelową odpowiedź

Co sprawdza rekruter

  • Czy wiesz, co wolno mierzyć bez zgody, a co nie
  • Czy rozumiesz wpływ zgód na dane i jak to komunikować
  • Czy wdrażasz ładowanie skryptów zgodne ze zgodą

Odpowiedź seniora

Spadek w dashboardach nie oznacza spadku ruchu, tylko brak pomiaru dla osób bez zgody. Komunikuję to z danymi z serwera (logi, zamówienia w backendzie), które się nie zmieniły.

Technicznie: skrypty marketingowe i analityczne ładują się dopiero po zgodzie, przez menedżera tagów reagującego na stan CMP lub własny loader, a nie przez sztywne tagi w HTML. Consent Mode v2 wysyła zanonimizowane sygnały bez cookies, z których narzędzie modeluje brakujące konwersje. Pomiar niezbędny do działania serwisu (błędy, wydajność, zamówienia po stronie serwera) może działać bez zgody na marketing, jeśli nie identyfikuje osób, ale granicę ustala prawnik, nie developer.

Dodatkowo rozważam server-side tagging, które daje kontrolę nad tym, jakie dane wychodzą do dostawców. Zgodę zapisuję z wersją polityki i honoruję jej wycofanie w trakcie sesji.

Typowe wpadki

  • Ukrycie przycisku „odrzuć”, żeby poprawić statystyki
  • Ładowanie skryptów przed decyzją i usuwanie cookies później
  • Porównywanie danych sprzed i po zgodach bez komentarza

Dopytają o

  • Jak wpływa CMP na LCP i CLS i jak to ograniczysz?
  • Jak przetestujesz, że żaden skrypt nie ładuje się bez zgody?
  • Co zmienia server-side tagging w kwestii prywatności?
Zapytaj Claude Rozwiń caseZagraj interviewera
Przypadek 2

Dziesięć eksperymentów naraz i spowolniona strona główna

Zespół produktu prowadzi równolegle 10 testów A/B przez narzędzie ładowane w przeglądarce. Strona główna ma LCP 4,2 s, z czego sekundę zabiera skrypt eksperymentów z ukrywaniem strony. Wyniki testów często się wykluczają.

Zanim rozwiniesz: powiedz na głos, jak byś to rozwiązał, i nazwij co najmniej jeden kompromis.

Moje rozwiązanie

Zapisuje się samo w tej przeglądarce. Kopię zrobisz na stronie Notatki.

Pokaż, czego szuka rekruter, i modelową odpowiedź

Co sprawdza rekruter

  • Czy znasz koszt wydajnościowy eksperymentów po stronie klienta
  • Czy rozumiesz interakcje między równoległymi testami
  • Czy proponujesz architekturę, a nie tylko optymalizację skryptu

Odpowiedź seniora

Przenoszę przydział wariantów na serwer lub edge: middleware losuje wariant z ciasteczka z id użytkownika (deterministyczny hash), a strona renderuje się od razu w odpowiednim wariancie. Znika flicker i ukrywanie strony, a skrypt kliencki służy tylko do wysyłania zdarzeń. Warianty to feature flagi w kodzie (np. GrowthBook, Statsig, LaunchDarkly lub własne), a nie modyfikacje DOM z edytora wizualnego.

Interakcje: testy na tym samym elemencie lub tej samej ścieżce wzajemnie zaburzają wynik, więc dzielę ruch na warstwy wzajemnie wykluczających się eksperymentów, a niezależne testy mogą się nakładać. Każdy test ma z góry ustaloną metrykę główną, metryki ochronne (w tym LCP i błędy) i wymaganą wielkość próbki.

Kod po zakończonym teście sprzątam: przegrany wariant usuwam w ciągu sprintu, a liczba aktywnych flag jest monitorowana jako dług.

Typowe wpadki

  • Optymalizacja ładowania skryptu zamiast zmiany architektury
  • Przerywanie testu, gdy wynik „wygląda dobrze”
  • Zostawianie martwych wariantów w kodzie

Dopytają o

  • Jak cache CDN współpracuje z wariantami renderowanymi na serwerze?
  • Jak wykluczysz boty i pracowników z wyników?
  • Co jeśli wariant wygrywa konwersją, ale pogarsza LCP?
Zapytaj Claude Rozwiń caseZagraj interviewera
Przypadek 3

Liczby zamówień w analityce i w systemie się nie zgadzają

Analityka pokazuje 12% więcej zakupów niż system zamówień w jednych dniach, a 8% mniej w innych. Zarząd przestał ufać dashboardom. Masz znaleźć przyczyny po stronie frontendu i naprawić pomiar.

Zanim rozwiniesz: powiedz na głos, jak byś to rozwiązał, i nazwij co najmniej jeden kompromis.

Moje rozwiązanie

Zapisuje się samo w tej przeglądarce. Kopię zrobisz na stronie Notatki.

Pokaż, czego szuka rekruter, i modelową odpowiedź

Co sprawdza rekruter

  • Czy znasz typowe źródła duplikatów i braków w zdarzeniach
  • Czy umiesz zaprojektować pomiar odporny na te problemy
  • Czy proponujesz stały mechanizm kontroli jakości danych

Odpowiedź seniora

Nadmiar zdarzeń: odświeżenie strony podziękowania, powrót przyciskiem wstecz, podwójne wywołanie efektu (StrictMode lub ponowny render), boty. Braki: blokery reklam, brak zgody, zamknięcie karty przed wysłaniem zdarzenia, przekierowanie do bramki płatności i brak powrotu.

Naprawa: zdarzenie zakupu ma transaction_id z backendu i jest deduplikowane po stronie narzędzia, a frontend zapisuje w sessionStorage, że już je wysłał. Wysyłka przez navigator.sendBeacon lub fetch z keepalive, żeby przeżyła zamknięcie strony. Kluczowe zdarzenia biznesowe (zakup) najlepiej wysyłać z serwera po potwierdzeniu płatności, a frontend tylko uzupełnia kontekst sesji.

Kontrola jakości: plan pomiaru jako typowany słownik zdarzeń w kodzie (schemat, walidacja w dev), testy E2E sprawdzające wysłane zdarzenia i codzienne porównanie liczby zakupów z backendem z alertem przy rozjeździe powyżej progu.

Typowe wpadki

  • Zdarzenie zakupu wysyłane w useEffect bez zabezpieczenia przed powtórzeniem
  • Traktowanie analityki jako źródła prawdy o przychodzie
  • Zdarzenia nazywane ad hoc przez każdy zespół

Dopytają o

  • Jak przetestujesz, że zdarzenia wysyłają się poprawnie po refaktorze?
  • Jak obsłużysz użytkownika, który płaci na telefonie, a zaczął na laptopie?
  • Kto jest właścicielem planu pomiaru?
Zapytaj Claude Rozwiń caseZagraj interviewera

Skróty klawiszowe

/
szukaj tematu
Enter
w wyszukiwarce: otwórz pierwszy wynik
N
notatki do tematu
[ ]
poprzedni / następny temat
G potem T
lista tematów
G potem P
powtórka
G potem N
wszystkie notatki
D
jasny / ciemny motyw
?
ta ściąga
Spacja, 1, 2, 3
w powtórce: pokaż, oceń

Pod każdym pytaniem są też skróty do Claude: rozwinięcie tematu, próbna rozmowa i ocena Twojej odpowiedzi z notatki.