# Wykrywanie języka i kraju odwiedzającego (bez przekierowania)

> Przegląd Moduł wykrywa kraj odwiedzającego (adres IP) i języki jego przeglądarki, a następnie wyświetla baner, który proponuje tę samą stronę w odpowiednim sklepie lub języku. Nigdy nie przekierowuje: roboty nie…

- Strona: <https://www.datafirefly.com/pl/documentation/language-country-geolocation-prestashop/>
- Język: pl
- Zaktualizowano: 2026-10-07
- Inne języki: [fr](https://www.datafirefly.com/documentation/language-country-geolocation-prestashop/index.md), [en](https://www.datafirefly.com/en/documentation/language-country-geolocation-prestashop/index.md), [es](https://www.datafirefly.com/es/documentation/language-country-geolocation-prestashop/index.md), [de](https://www.datafirefly.com/de/documentation/language-country-geolocation-prestashop/index.md), [it](https://www.datafirefly.com/it/documentation/language-country-geolocation-prestashop/index.md), [nl](https://www.datafirefly.com/nl/documentation/language-country-geolocation-prestashop/index.md), [pt](https://www.datafirefly.com/pt/documentation/language-country-geolocation-prestashop/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

## Przegląd

Moduł wykrywa kraj odwiedzającego (adres IP) i języki jego przeglądarki, a następnie wyświetla baner, który proponuje tę samą stronę w odpowiednim sklepie lub języku. Nigdy nie przekierowuje: roboty nie widzą banera, a tagi hreflang pozostają nienaruszone.

Zgodny z PrestaShop od 8.0 do 9.x, pojedynczy sklep i multistore. Baner pojawia się tylko wtedy, gdy aktywne są co najmniej dwa miejsca docelowe (dwa języki lub dwa sklepy).

## Instalacja

1. W **Moduły > Menedżer modułów** kliknij **Prześlij moduł** i wyślij plik ZIP.
2. Moduł automatycznie tworzy jedno miejsce docelowe dla każdej aktywnej pary sklep i język.
3. Otwórz stronę modułu przyciskiem **Konfiguruj** lub z menu **Międzynarodowe > Sugestia języka i kraju**.

W multistore zainstaluj moduł w kontekście „Wszystkie sklepy” i sprawdź, czy jest włączony w każdym sklepie docelowym. Etykieta „Moduł nie jest włączony w tym sklepie” ostrzega w zakładce Miejsca docelowe.

## Włączenie wykrywania kraju

Kraj jest odczytywany w tej kolejności:

- z nagłówka CDN (Cloudflare, CloudFront, Vercel);
- z pliku MaxMind GeoLite2, jeśli go masz (ścieżka do ustawienia);
- z wbudowanej, darmowej bazy z domeny publicznej.

Aby zainstalować wbudowaną bazę, kliknij **Zainstaluj bazę** na pulpicie lub w **Reguły i wykrywanie**. Plik (około 8 MB, IPv4 i IPv6) jest pobierany do `var/dflocalesuggest/` i czytany lokalnie: żaden adres IP odwiedzającego nie trafia do podmiotów trzecich. Status pokazuje datę bazy i zaleca aktualizację po 45 dniach.

Jeśli hosting blokuje połączenia wychodzące, pobieranie kończy się czytelnym komunikatem. Umieść wtedy plik .mmdb na serwerze i podaj jego ścieżkę w **Reguły i wykrywanie**.

## Miejsca docelowe

Każdy wiersz to para sklep i język, którą baner może zaproponować.

- **Etykieta**: zastępuje nazwę sklepu w banerze (na przykład „USA”).
- **Kraje**: kody ISO oddzielone przecinkami (PL, CZ, SK). Puste oznacza dowolny kraj. Inny sklep ograniczony do innych krajów nigdy nie jest proponowany odwiedzającemu, którego kraj jest znany.
- **Języki przeglądarki**: kody takie jak pl, de-at, en-gb.
- **Kolejność**: przeciągnij wiersze, aby rozstrzygnąć remis między dwoma miejscami docelowymi.

**Dodaj brakujące pary** tworzy wiersze dla nowych sklepów lub języków bez zmiany istniejących. Jeśli zainstalowany jest moduł DataFirefly Hreflang, **Importuj z DataFirefly Hreflang** przejmuje Twoje kody (es-US daje język es i kraj US).

## Wygląd

Wybierz motyw, cztery kolory, zaokrąglenie rogów, rozmiar tekstu i efekt matowego szkła. Umiejscowienie ustawia się osobno dla komputera (pasek u góry lub na dole, karta po lewej lub prawej) i telefonu (pływająca karta, pasek). Podgląd na żywo po prawej pokazuje wynik na komputerze i telefonie przed zapisaniem.

- **Kompaktowe przypomnienie**: jeśli odwiedzający zignoruje baner i przegląda dalej, kolejne strony pokazują tylko pigułkę.
- **Opóźnienie wyświetlenia**: baner pojawia się po załadowaniu strony plus to opóźnienie.
- **Ukryj po odmowie**: jak długo odwiedzający, który kliknął „Zostań tutaj”, nie jest niepokojony.

## Teksty

Baner jest napisany w sugerowanym języku: niemiecki odwiedzający czyta go po niemiecku w polskim sklepie. Każdy język ma własne teksty ze zmiennymi wstawianymi jednym kliknięciem: `{language}`, `{country}`, `{store}`, `{currency}`. Puste pole używa tekstu wbudowanego.

## Reguły i wykrywanie

- **Gdy kraj i język się różnią**: wygrywa kraj (sklep, który wysyła do odwiedzającego) albo wygrywa język.
- **Szanuj odwiedzających wielojęzycznych**: brak sugestii języka, jeśli bieżący język jest wśród języków przeglądarki.
- **Ukryj dla zalogowanych klientów**.
- **Strony bez banera**: wykluczone kontrolery, domyślnie koszyk i proces zamówienia. Dozwolony symbol wieloznaczny (module-mojmodul-*).
- **Poczekaj na zamknięcie banera cookie**: wykrywane są główne narzędzia zgód, a listę selektorów CSS można edytować.

## Test przed uruchomieniem

Zakładka **Symulator** pokazuje dla danego kraju i języków przeglądarki, czy baner się wyświetli, wraz z tekstem, linkiem i wynikiem każdego miejsca docelowego. Aby zobaczyć prawdziwy baner w sklepie, dodaj swoje IP w **Testowe adresy IP**, a następnie otwórz stronę z `?dfls_country=DE&dfls_lang=de`. Link „Zobacz w sklepie” w symulatorze zrobi to za Ciebie.

## Statystyki

Pulpit pokazuje wyświetlone banery (raz na wizytę), kliknięcia, odmowy, współczynnik kliknięć, aktywność dzienną oraz rankingi według miejsca docelowego i kraju dla 7, 30, 90 dni lub roku. **Eksportuj CSV** pobiera jeden wiersz na dzień, sklep źródłowy, miejsce docelowe i kraj. Liczniki są zagregowane: nie zapisuje się żadnego IP, pliku cookie ani identyfikatora klienta.

## Zachowanie po stronie odwiedzającego

- Odwiedzający, który kliknie sugestię lub sam zmieni sklep albo język, nie dostaje już propozycji w wybranym miejscu docelowym.
- Baner nigdy nie jest pokazywany robotom (Googlebot, Bingbot, Lighthouse) i ma atrybut `data-nosnippet`.
- HTML stron jest taki sam dla wszystkich: moduł działa z LiteSpeed Cache, Varnish i CDN.

## Dla programistów

Zdarzenia DOM na `document`: `dfls:shown`, `dfls:accept`, `dfls:dismiss`. Po włączeniu opcji zdarzenia `dfls_shown`, `dfls_accept` i `dfls_dismiss` trafiają do `dataLayer` dla Google Tag Manager. Hook PHP `actionDflocalesuggestResponse` otrzymuje odpowiedź przez referencję, aby zmienić tekst, link lub miejsce docelowe.

## Rozwiązywanie problemów

### Baner się nie pojawia

Sprawdź, czy baner jest aktywny, czy istnieją co najmniej dwa prawidłowe miejsca docelowe, czy strona nie jest wykluczona i czy w tej przeglądarce nie odrzucono lub nie przyjęto już sugestii (wyczyść pamięć lokalną strony). Symulator pokazuje, dlaczego miejsce docelowe zostało odrzucone.

### Kraj jest widoczny jako „Nieznany” w panelu

To normalne podczas testów z lokalnego lub prywatnego IP. Użyj symulatora lub parametrów testowych.
