Predictive SEO: kompletna dokumentacja
Podłączenie Google Search Console, konfiguracja dostawcy AI, działanie silnika predykcji i wykorzystanie wykrytych szans sezonowych.
Przegląd
DataFirefly Predictive SEO łączy Twój PrestaShop z Google Search Console, stosuje wbudowany silnik predykcji ML na historii wyszukiwań i automatycznie identyfikuje nadchodzące szczyty sezonowe. Dla każdej wykrytej szansy możesz jednym kliknięciem wygenerować ustrukturyzowany brief treści przez Mistrala, OpenAI lub Claude.
Wymagania
- PrestaShop 8.0+ albo PrestaShop 9.x
- PHP minimum 8.1
- MySQL 5.7+ albo MariaDB 10.3+
- Konto Google z dostępem do usługi Search Console sklepu
- Klucz API dostawcy AI (Mistral, OpenAI albo Anthropic; domyślnie Mistral, około 0,002 euro za brief)
- Co najmniej 60 do 90 dni historii GSC dla wiarygodnych predykcji
Instalacja
Instalacja z pliku ZIP
- Pobierz plik
dfpredictiveseo.zipze swojego konta klienta DataFirefly. - W zapleczu PrestaShop przejdź do Moduły > Menedżer modułów.
- Kliknij Wgraj moduł i wskaż plik ZIP.
- Moduł instaluje się automatycznie, tworzy 7 tabel
dfpseo_*, rejestruje 6 zakładek pod IMPROVE i generuje unikalny token crona. - Po instalacji znajdziesz moduł w menu Ulepszenia > Predictive SEO.
upgrade-X.Y.Z.php. Dane i konfiguracja są zachowywane.Schemat bazy danych
Instalacja tworzy 7 tabel z prefiksem dfpseo_:
dfpseo_keyword: słowa kluczowe śledzone z GSCdfpseo_history: historia dzienna (wyświetlenia, kliknięcia, CTR, pozycja)dfpseo_forecast: predykcje dzienne z przedziałami ufnościdfpseo_opportunity: wykryte szanse sezonowedfpseo_recommendation: briefy treści wygenerowane przez AIdfpseo_seasonality: indeksy sezonowe (dzień tygodnia × miesiąc) per słowo kluczowedfpseo_sync_log: dziennik synchronizacji GSC
Konfiguracja Google Search Console
Moduł korzysta ze standardowego protokołu OAuth2. Tworzysz OAuth Client w Google Cloud, wklejasz dane logowania w ustawieniach i uruchamiasz flow autoryzacji przyciskiem Połącz.
Krok 1: utwórz projekt Google Cloud
- Wejdź na console.cloud.google.com i zaloguj się kontem Google, które ma dostęp do Twojej usługi Search Console.
- Kliknij selektor projektu w lewym górnym rogu, a następnie Nowy projekt.
- Nazwij go na przykład DataFirefly Predictive SEO i utwórz.
Krok 2: włącz API Search Console
- W menu po lewej przejdź do APIs & Services > Biblioteka.
- Wyszukaj Search Console API i kliknij Włącz.
Krok 3: skonfiguruj ekran zgody OAuth
- Przejdź do APIs & Services > Ekran zgody OAuth.
- Typ użytkownika: Zewnętrzny.
- Uzupełnij nazwę aplikacji, e-mail wsparcia i autoryzowaną domenę (Twój sklep).
- W sekcji Zakresy dodaj
https://www.googleapis.com/auth/webmasters.readonly(Search Console tylko do odczytu). - W trybie testowym dodaj swój e-mail w Użytkownicy testowi. Możesz później przejść do produkcji bez zmian w module.
Krok 4: utwórz Client OAuth
- Przejdź do APIs & Services > Dane logowania.
- Kliknij Utwórz dane logowania > Identyfikator klienta OAuth.
- Typ aplikacji: Aplikacja internetowa.
- Nazwa: dowolna (na przykład Predictive SEO Production).
- Autoryzowany URI przekierowania: skopiuj adres wyświetlony w ustawieniach modułu (Improve > Predictive SEO > Ustawienia > Google Search Console > URI przekierowania). Format:
https://twoj-sklep.pl/module/dfpredictiveseo/settings/oauth_callback. - Kliknij Utwórz. Google wyświetli
client_idiclient_secret.
Krok 5: połącz moduł
- W ustawieniach Predictive SEO wklej
client_idiclient_secret. - Zapisz.
- Kliknij Połącz z Google Search Console.
- Zostaniesz przekierowany na stronę zgody Google. Zezwól na dostęp tylko do odczytu.
- Po powrocie do zaplecza moduł ma zapisany zaszyfrowany
refresh_tokeni jest gotowy do synchronizacji. - Następnie wybierz w rozwijanej liście usługę Search Console do śledzenia (moduł wykrywa ją automatycznie po połączeniu).
redirect_uri_mismatch.Konfiguracja dostawcy AI
Moduł obsługuje 3 dostawców AI do generowania briefów treści. Potrzebujesz tylko jednego i podajesz własny klucz API wybranego dostawcy. DataFirefly nie pobiera żadnej prowizji od użycia.
Mistral (domyślny, zalecany)
- Model:
mistral-small-latest - Koszt orientacyjny: około 0,002 euro za wygenerowany brief
- Utworzenie klucza: console.mistral.ai > API Keys
- Wklej klucz w Ustawienia > Dostawca AI > Klucz API Mistral
OpenAI
- Model:
gpt-4o-mini - Koszt orientacyjny: około 0,005 euro za brief
- Utworzenie klucza: platform.openai.com > API keys
- Wklej klucz w Ustawienia > Dostawca AI > Klucz API OpenAI
Anthropic (Claude)
- Model:
claude-3-5-haiku-latest - Koszt orientacyjny: około 0,004 euro za brief
- Utworzenie klucza: console.anthropic.com > API Keys
- Wklej klucz w Ustawienia > Dostawca AI > Klucz API Anthropic
Następnie wybierz aktywnego dostawcę w rozwijanej liście Aktywny dostawca AI. Po zmianie dostawcy wcześniej wygenerowane briefy nie są regenerowane automatycznie.
Synchronizacja danych
Pierwsza synchronizacja
Po nawiązaniu połączenia z GSC uruchom pierwszą ręczną synchronizację: Ustawienia > Uruchom synchronizację. Moduł pobiera historię z ostatnich 90 dni dla wybranej usługi, do 250 000 wierszy na synchronizację, z wymiarami data × zapytanie × strona. Pierwsza synchronizacja może zająć od 30 sekund do 2 minut, zależnie od wolumenu.
Codzienny cron
Do automatycznych synchronizacji skonfiguruj codzienny cron (zalecana pora: wcześnie rano, między 4 a 6) wywołujący zabezpieczony endpoint modułu.
Dokładny adres i token są wyświetlane w Ustawienia > Cron. Format ogólny:
https://twoj-sklep.pl/module/dfpredictiveseo/cron/sync?token=TWOJ_WYGENEROWANY_TOKEN
Przykładowa linia crontab (cron uniksowy):
0 5 * * * curl -s "https://twoj-sklep.pl/module/dfpredictiveseo/cron/sync?token=TWOJ_TOKEN" > /dev/null 2>&1
DFPSEO_CRON_TOKEN). Jeśli zostanie ujawniony, możesz go wygenerować ponownie w Ustawienia > Wygeneruj ponownie token crona.Przebieg synchronizacji
Każda synchronizacja wykonuje po kolei:
- Pobranie z GSC danych z ostatnich 90 dni w oknie kroczącym (wymiary data, zapytanie, strona)
- Wstawienie lub aktualizację w
dfpseo_keywordidfpseo_history - Przeliczenie indeksów sezonowych (dla słów kluczowych z wystarczającą historią)
- Wygenerowanie prognoz na skonfigurowanym horyzoncie
- Wykrycie szans w oknie przyszłym
- Zapis do
dfpseo_sync_log
Pulpit
Pulpit (Improve > Predictive SEO > Tablica) zbiera kluczowe wskaźniki:
- 4 karty KPI: śledzone słowa kluczowe, nadchodzące szanse, przewidywane kliknięcia w 14 dni, ostatnia synchronizacja GSC
- Wykres główny: zagregowana krzywa historyczna (90 dni) plus prognoza (skonfigurowany horyzont, domyślnie 30 dni), z pasmem ufności 95 %
- Najlepsze szanse: 10 najbliższych szczytów sezonowych posortowanych według score
- Dziennik synchronizacji: 5 ostatnich synchronizacji wraz ze statusem
Status połączenia
Dwie plakietki u góry pulpitu pokazują stan integracji: GSC połączony (zielona lub czerwona) i Dostawca AI skonfigurowany (zielona lub czerwona). Jeśli któraś jest czerwona, skorzystaj z bezpośredniego linku do odpowiednich ustawień.
Słowa kluczowe i prognozy
Lista słów kluczowych
Zakładka Słowa kluczowe wyświetla natywny grid PrestaShop ze wszystkimi zsynchronizowanymi zapytaniami. Kolumny: zapytanie, strona docelowa, wyświetlenia 30 dni, kliknięcia 30 dni, CTR, średnia pozycja, ostatnia aktualizacja. Możesz filtrować, sortować i eksportować.
Widok szczegółowy słowa kluczowego
Kliknięcie w słowo kluczowe otwiera jego kartę:
- Indywidualna krzywa historyczna plus własna prognoza
- Przedział ufności 95 % wokół predykcji
- Heatmapa sezonowa 12 × 7 (miesiąc × dzień tygodnia)
- Wyliczone indeksy sezonowe
- Lista szans powiązanych z tym słowem kluczowym
Heatmapa sezonowości
Heatmapa wizualizuje multiplikatywne indeksy sezonowe. Odczyt:
- Komórka 1,00: średni ruch dla tej kombinacji miesiąc × dzień
- Komórka 1,50: ruch 50 % powyżej średniej (szczyt sezonowy)
- Komórka 0,60: ruch 40 % poniżej średniej (dołek)
Komórki są kolorowane od jasnoniebieskiego (dołek) po głęboki niebieski i czerwono-pomarańczowy (szczyt). Jedno spojrzenie wystarczy, aby wyłapać tygodnie warte wykorzystania.
Szanse sezonowe
Automatyczne wykrywanie
Szansa jest wykrywana, gdy w przyszłym oknie 14 dni (konfigurowalnym przez DFPSEO_OPPORTUNITY_LOOKAHEAD_DAYS):
- Predykcja przekracza baseline słowa kluczowego × 1,25 (próg szczytu)
- ORAZ indeks sezonowy kombinacji miesiąc × dzień jest wyższy niż 1,10
Sąsiadujące szczyty (przerwa nie większa niż 2 dni) są łączone w jedną szansę obejmującą całe okno.
Score szansy
Score łączy trzy czynniki:
score = oczekiwane_kliknięcia × lift × zaufanie
oczekiwane_kliknięcia: suma przewidywanych kliknięć w oknielift: stosunek szczytu do baselinezaufanie: szerokość przedziału predykcji (im węższy przedział, tym wyższy score)
Score powyżej 80 oznacza szansę o wysokim potencjale i silnym sygnale sezonowym. Score od 40 do 80 oznacza szansę umiarkowaną. Poniżej 40 sygnał jest zbyt słaby lub zbyt niepewny, aby uzasadnić działanie priorytetowe.
Workflow szansy
Każda szansa ma status:
- Nowa: świeżo wykryta, czeka na decyzję
- W toku: brief został wygenerowany, trwa praca redakcyjna
- Obsłużona: treść opublikowana, szansa wykorzystana
- Zignorowana: decyzja o nieobsługiwaniu (fałszywy pozytyw, poza strategią)
Rekomendacje AI
Generowanie briefu
Z poziomu dowolnej szansy kliknij Wygeneruj brief. Moduł wysyła żądanie do aktywnego dostawcy AI wraz z kontekstem słowa kluczowego (wolumen, sezonowość, aktualna pozycja, powiązana strona) i otrzymuje ustrukturyzowany brief JSON zawierający:
- summary: strategiczne streszczenie briefu
- meta_description: meta description SEO gotowa do wklejenia (150 do 160 znaków)
- search_intent: dominująca intencja wyszukiwania (informacyjna, transakcyjna, nawigacyjna, komercyjna)
- outline: szczegółowy plan h1/h2/h3 artykułu albo strony
- keywords_to_include: słowa kluczowe semantyczne do uwzględnienia
- internal_links: sugestie linkowania wewnętrznego do innych stron serwisu
- rationale: strategiczne uzasadnienie rekomendacji
Generowanie zajmuje od 1 do 3 sekund, zależnie od dostawcy.
Workflow zatwierdzania
Każdy brief przechodzi przez statusy:
- Pending: wygenerowany, czeka na przegląd
- Approved: zatwierdzony do redakcji
- Published: treść opublikowana (oznaczane ręcznie)
- Rejected: odrzucony (brief słabej jakości albo nie na temat)
- Draft: w trakcie modyfikacji
Workflow pozwala zachować czytelny ślad tego, co zostało obsłużone.
Architektura techniczna
Stack
- Architektura PSR-4, przestrzeń nazw
DfPredictiveSeoodwzorowana nasrc/ - Kontrolery Symfony rozszerzające
FrameworkBundleAdminController - Repozytoria Doctrine DBAL (bez ObjectModel)
- GSC odpytywane bezpośrednio przez REST z cURL i OAuth2 (bez
google/apiclient, dla lekkości) - Żadnej obowiązkowej zależności Composera przy instalacji (wbudowany autoloader PSR-4)
Pipeline ML
- Multiplikatywna dekompozycja sezonowa: indeksy dnia tygodnia i miesiąca wyliczane wyśrodkowaną średnią kroczącą 28 dni i średnią przyciętą o 10 %
- Regresja OLS na
log(wyświetlenia+1)dla modelowania trendu log-liniowego - Prognoza:
exp(predykcja_log) × indeks_sezonowy_dnia × indeks_sezonowy_miesiąca - Przedziały 95 %: aproksymacja Studenta na błędzie resztowym regresji, stopniowo poszerzana wraz z horyzontem
Endpoint crona
Endpoint jest publiczny, ale zabezpieczony tokenem. Przykład w PHP do wywołania programowego:
$token = 'twoj_token_crona';
$url = 'https://twoj-sklep.pl/module/dfpredictiveseo/cron/sync?token=' . $token;
$response = file_get_contents($url);
$data = json_decode($response, true);
// $data['status'] = 'ok' | 'error'
// $data['keywords_synced'] = liczba zaktualizowanych słów kluczowych
// $data['opportunities_detected'] = liczba nowo wykrytych szans
Zmienne konfiguracyjne
Moduł zapisuje 18 kluczy konfiguracji w tabeli ps_configuration:
DFPSEO_GSC_CLIENT_ID,DFPSEO_GSC_CLIENT_SECRET,DFPSEO_GSC_REFRESH_TOKEN(zaszyfrowany),DFPSEO_GSC_PROPERTYDFPSEO_AI_PROVIDER,DFPSEO_AI_MISTRAL_KEY,DFPSEO_AI_OPENAI_KEY,DFPSEO_AI_ANTHROPIC_KEYDFPSEO_FORECAST_HORIZON_DAYS(domyślnie 30)DFPSEO_OPPORTUNITY_LOOKAHEAD_DAYS(domyślnie 14)DFPSEO_PEAK_THRESHOLD(domyślnie 1.25)DFPSEO_SEASONAL_THRESHOLD(domyślnie 1.10)DFPSEO_CRON_TOKEN(generowany przy instalacji)DFPSEO_LAST_SYNC,DFPSEO_LAST_FORECAST
Rozwiązywanie problemów
Błąd redirect_uri_mismatch przy łączeniu z GSC
URI przekierowania skonfigurowany w Google Cloud nie odpowiada dokładnie temu, którego oczekuje moduł. Sprawdź:
- Protokół:
https://, niehttp:// - Brak ukośnika na końcu:
...oauth_callback, nie...oauth_callback/ - Subdomena:
www.albo jej brak, zależnie od sklepu, musi się zgadzać
Synchronizacja GSC nie zwraca żadnego słowa kluczowego
- Sprawdź, czy usługa wybrana w ustawieniach jest tą, która faktycznie odbiera ruch SEO (a nie pustą usługą domenową)
- Sprawdź, czy połączone konto Google jest właścicielem albo autoryzowanym użytkownikiem tej usługi
- Usługa musi mieć przynajmniej kilka dni zindeksowanej historii (Google Search Console publikuje dane z 2 do 3 dni opóźnienia)
Predykcje wydają się mało wiarygodne
- Sprawdź, czy masz co najmniej 60 do 90 dni historii. Poniżej tego progu indeksy sezonowe nie mogą być poprawnie oszacowane
- Dla słów kluczowych nieregularnych (mało sygnału, dużo szumu) przedział 95 % jest celowo szerszy: moduł wyraźnie sygnalizuje niskie zaufanie
- Dla dokładniejszych predykcji na długich horyzontach (60 do 90 dni) poczekaj na zgromadzenie 6 do 12 miesięcy historii. Silnik poprawia się z czasem
Endpoint crona zwraca błąd 403
Token przekazany w query stringu nie odpowiada DFPSEO_CRON_TOKEN. Sprawdź dokładną wartość w Ustawienia > Cron. W razie wątpliwości wygeneruj token ponownie i zaktualizuj crontab.
Brief AI nie jest generowany
- Sprawdź, czy wkleiłeś prawidłowy klucz API dla wybranego aktywnego dostawcy
- Sprawdź saldo w konsoli dostawcy (Mistral, OpenAI albo Anthropic)
- Jeśli dostawca zwraca błąd rate limitu, odczekaj kilka minut i spróbuj ponownie
- Wygenerowane briefy są zapisywane w
dfpseo_recommendation; w razie błędu jest on również logowany w tej tabeli ze statusemerror
FAQ
Czy moduł działa bez Google Search Console?
Nie, GSC jest podstawowym źródłem danych. Moduł potrzebuje minimum 60 do 90 dni historii, aby produkować wiarygodne predykcje i wyliczać sezonowość. Jeśli Twój sklep dopiero wystartował, poczekaj na co najmniej 2 miesiące zindeksowanych danych przed instalacją modułu.
Ile kosztuje brief AI?
To zależy od wybranego dostawcy. Przy Mistralu (domyślnym) licz około 0,002 euro za brief. OpenAI GPT-4o-mini około 0,005 euro. Claude Haiku około 0,004 euro. Podajesz własny klucz API i płacisz bezpośrednio dostawcy. DataFirefly nie pobiera żadnej prowizji.
Ile słów kluczowych może śledzić moduł?
Nie ma limitu zapisanego na sztywno w kodzie. Standardowa synchronizacja pobiera do 250 000 wierszy (data × zapytanie × strona) na wywołanie, co pokrywa niemal wszystkie sklepy. Powyżej tej skali zwiększ pamięć PHP przydzieloną workerowi crona.
Czy moduł jest zgodny z innymi modułami SEO?
Tak, Predictive SEO nigdy nie zapisuje niczego na kartach produktów ani w metadanych: wyłącznie czyta GSC i produkuje rekomendacje. Jest w pełni zgodny ze wszystkimi istniejącymi modułami SEO (DataFirefly i zewnętrznymi).
Czy moje dane z GSC są przechowywane u DataFirefly?
Nie. Wszystkie dane pozostają na Twoim serwerze, w Twojej bazie PrestaShop. Moduł wywołuje bezpośrednio API Google Twoimi danymi logowania OAuth i bezpośrednio dostawców AI Twoim kluczem API. Żadne dane nie przechodzą przez serwery DataFirefly.
Który horyzont predykcji jest najbardziej wiarygodny?
Horyzont od 7 do 14 dni jest bardzo wiarygodny (wąski przedział 95 %). Horyzont od 30 do 60 dni ma charakter orientacyjny (przedział szerszy). Powyżej 90 dni predykcje stają się mało przydatne do decyzji operacyjnych: moduł je wylicza, ale sygnalizuje niskie zaufanie.