Telemetria odwiedzin
StorefrontProvider zawiera lekką, cookieless telemetrię odwiedzin, włączoną domyślnie. Zasila w panelu sprzedawcy kartę „Źródła ruchu" oraz licznik „teraz na stronie" — bez ciasteczek, bez localStorage i bez danych osobowych kupujących.
Jak to działa
Telemetria działa wyłącznie w przeglądarce — podczas renderowania po stronie serwera nie robi nic. Po załadowaniu strony wysyła:
- Jeden ping wczytania strony (pageview) — z surowym adresem strony odsyłającej (
referrer), surowymuser-agentprzeglądarki oraz ścieżką bieżącego widoku. Jeśli karta wczytuje się w tle (np. wstępne renderowanie), ping jest wstrzymany do momentu, aż karta stanie się widoczna — dzięki temu tło nie jest liczone jako odwiedziny. - Krótki sygnał obecności (heartbeat) co ~45 sekund — dopóki karta jest widoczna. Sygnał utrzymuje wpis „ktoś jest teraz na stronie". Gdy karta przechodzi w tło, sygnały są wstrzymywane; po powrocie na pierwszy plan wysyłany jest natychmiastowy sygnał i cykl wznawia się. Ostatni sygnał wysyłany jest przy zamykaniu karty, żeby przetrwał nawigację poza stronę.
Klasyfikacja źródła ruchu (bezpośrednie / wyszukiwarki / social media / odesłania) oraz typu urządzenia (komputer / telefon / tablet) odbywa się wyłącznie po stronie platformy — SDK wysyła surowe wartości referrer i user-agent, nigdy nie klasyfikuje ich sam. Dzięki temu reguły klasyfikacji są jednakowe dla wszystkich sklepów i można je poprawiać centralnie.
Prywatność — cookieless, zero danych osobowych
- Co jest zbierane: ścieżka strony, adres odsyłający (
referrer),user-agentprzeglądarki oraz efemeryczny identyfikator sesji powiązany z kartą przeglądarki — losowa wartość trzymana w pamięci sesji karty, dzięki której odświeżenie strony w tej samej karcie liczy się jako ta sama wizyta. - Bez ciasteczek, bez
localStorage, bez danych osobowych. SDK nie wysyła żadnych danych osobowych i niczego nie zapisuje trwale. Identyfikator sesji znika przy zamknięciu karty — nie da się nim śledzić kupującego między wizytami ani między kartami. - Ciasteczka nie są wysyłane (
credentials: 'omit'). Sklep jest rozpoznawany po nagłówkuX-Shop-Slug. - Fire-and-forget. Nieudana wysyłka nigdy nie wpływa na działanie sklepu — błąd jest po cichu ignorowany i nie przerywa renderowania.
Środowiska nieprodukcyjne — telemetria domyślnie milczy
Telemetria mierzy żywy sklep, nie warsztat. Sygnały nie są wysyłane, gdy zachodzi którykolwiek z warunków:
- strona jest serwowana z adresu lokalnego —
localhost, adres pętli zwrotnej (127.0.0.1,::1,0.0.0.0) albo nazwa z końcówką.local/.localhost; - tryb budowania aplikacji nie jest produkcyjny (
NODE_ENVustawiony na wartość inną niżproduction— tak działa serwer deweloperski).
Dzięki temu Twoja praca lokalna nie trafia do statystyk sklepu: nie podbija licznika „teraz na stronie" ani nie dokłada fałszywych wpisów do karty „Źródła ruchu". Jeśli budujesz storefront lokalnie przeciw produkcyjnemu API, wcześniej Twoja przeglądarka liczyła się jako zwykły odwiedzający.
Gdy tryb budowania jest nieznany (zmienna nieustawiona albo pusta), telemetria działa — brak informacji nie jest dowodem, że to środowisko deweloperskie, a cicha utrata danych sprzedawcy byłaby gorsza od kilku nadmiarowych sygnałów.
Chcesz świadomie zmierzyć środowisko nieprodukcyjne (np. własne środowisko testowe)? Włącz je jawnie:
<StorefrontProvider config={{ telemetry: { includeNonProduction: true } }} shopData={shopData}>
{children}
</StorefrontProvider>;
Wdrożenie podglądowe (preview) serwowane z publicznej domeny i zbudowane w trybie produkcyjnym wygląda jak żywy sklep i jest liczone jak sklep. Jeśli nie chcesz go w statystykach, ustaw w konfiguracji tego środowiska telemetry: false.
Do czego to sprzedawcy
Zebrane sygnały zasilają panel sprzedawcy:
- Karta „Źródła ruchu" — podział wizyt w wybranym okresie na kanały pozyskania i typy urządzeń. Pokazuje, skąd realnie przychodzą klienci.
- Licznik „teraz na stronie" — ile osób aktywnie przegląda sklep w danej chwili, aktualizowany na bieżąco.
Oba widoki są dostępne bez konfiguracji po Twojej stronie — wystarczy, że storefront używa StorefrontProvider.
Konfiguracja i rezygnacja
Telemetria jest włączona domyślnie. Sterujesz nią opcją telemetry w konfiguracji klienta przekazywanej do StorefrontProvider:
import { StorefrontProvider } from '@doswiftly/storefront-sdk/react';
// Całkowite wyłączenie telemetrii
<StorefrontProvider config={{ telemetry: false }} shopData={shopData}>
{children}
</StorefrontProvider>;
// Włączona, ale ze zmienionym odstępem sygnału obecności (w milisekundach)
<StorefrontProvider config={{ telemetry: { heartbeatIntervalMs: 60000 } }} shopData={shopData}>
{children}
</StorefrontProvider>;
Opcja telemetry przyjmuje:
| Wartość | Zachowanie |
|---|---|
true lub pominięcie | Telemetria włączona z ustawieniami domyślnymi (heartbeat ~45 s) — z wyjątkiem środowisk nieprodukcyjnych, patrz sekcja wyżej. |
false | Telemetria całkowicie wyłączona — SDK nie wysyła żadnych sygnałów. |
{ heartbeatIntervalMs?: number; endpoint?: string; includeNonProduction?: boolean } | Telemetria włączona z dostrojeniem: heartbeatIntervalMs zmienia odstęp sygnału obecności (minimalnie 15 000 ms — niższe wartości są podnoszone do tego progu), endpoint nadpisuje domyślny adres wysyłki (domyślnie ${apiUrl}/storefront/telemetry), includeNonProduction (domyślnie false) każe wysyłać także z adresu lokalnego i z nieprodukcyjnego trybu budowania. |
// Dostrojenie odstępu i własny adres wysyłki
<StorefrontProvider
config={{
telemetry: {
heartbeatIntervalMs: 30000,
endpoint: 'https://api.moj-sklep.pl/storefront/telemetry',
},
}}
shopData={shopData}
>
{children}
</StorefrontProvider>;
Zachowanie przy starszym backendzie
Telemetria jest zaprojektowana tak, by nigdy nie zaszkodzić sklepowi. Jeśli backend nie rozpoznaje sklepu lub nie obsługuje jeszcze punktu przyjmującego telemetrię (starsza wersja backendu odpowiada wtedy 404), SDK trwale i po cichu wyłącza wysyłkę — bez ponawiania i bez jakiegokolwiek wpływu na działanie storefrontu. Gdy platforma chwilowo ogranicza tempo żądań (429), sygnały obecności są wstrzymywane na około minutę, po czym samoczynnie wracają.
Powiązane
- Konfiguracja Next.js —
StorefrontProvideri przekazywanie konfiguracji klienta - Więcej funkcji SDK — zdalny tryb debug i inne funkcje dodatkowe