O projekcie
Cztery wtyczki WordPressa, które razem odpowiadają na jedno pytanie właściciela sklepu w wąskiej niszy: co się dzieje u konkurencji i co ja mam z tym zrobić. Pierwsza obserwuje ich ruch, druga ceny, trzecia zamienia obie obserwacje w listę działań, czwarta przygotowuje z tego kampanię. Każda działa osobno; dopiero razem domykają drogę od sygnału do decyzji.
Zaczynam od rzeczy, którą trzeba powiedzieć wprost, bo inaczej cały projekt byłby ładnym kłamstwem: RUCHU CUDZEJ STRONY NIE DA SIĘ ZMIERZYĆ Z ZEWNĄTRZ. Nikt spoza serwera nie widzi, ilu ludzi tam weszło. Dostępne są dwie rzeczy zupełnie innej natury — szacunki dostawców analityki, czyli wynik cudzego modelu, oraz sygnały obserwowalne wprost: pozycje w wynikach wyszukiwania, tempo przybywania treści, liczba i przyrost opinii, liczba ofert na marketplace’ach, zmiany w asortymencie.
Dlatego pierwsza wtyczka nie pokazuje „ruchu konkurencji” jako jednej liczby. Pokazuje sygnały i szacunki obok siebie, każdy z etykietą, skąd pochodzi i kiedy został pobrany, a szacunek jest podpisany jako szacunek. To brzmi jak drobiazg redakcyjny, a jest najważniejszą decyzją w całym projekcie: właściciel podejmuje na tych liczbach decyzje o pieniądzach, a liczba bez etykiety źródła jest gorsza niż jej brak, bo wygląda na pewnik.
Druga wtyczka pilnuje cen w niszy i ma swój własny twardy problem: zanim porówna się cenę, trzeba mieć pewność, że porównuje się ten sam produkt. W wąskiej branży ten sam towar chodzi pod różnymi nazwami, a różne towary pod bardzo podobnymi. Dopasowanie idzie więc po kodzie producenta i EAN tam, gdzie są, a po cechach tam, gdzie ich nie ma — i kończy się jawną informacją, czy trafienie jest pewne, czy tylko prawdopodobne. Do tego cena porównywalna, czyli rozbita na składniki: regularna, po rabacie, z wysyłką, w wielopaku.
Trzecia wtyczka jest tą, dla której powstały dwie poprzednie. Zamienia obserwacje w RANKING DZIAŁAŃ, a nie w kolejny pulpit z wykresami. Każda sugestia wskazuje obserwację, z której wynikła, mówi, czego się po niej spodziewać, i daje się odrzucić z podaniem powodu — a odrzucenie wraca do agenta, żeby nie proponował tego samego w kółko. Pulpit, na który nikt nie patrzy po tygodniu, jest porażką narzędzia, nie użytkownika.
Czwarta przygotowuje kampanię: dobiera grupy, pisze warianty treści, proponuje podział budżetu i przewiduje, co którym wariantem chce się sprawdzić. I tu jest granica, której nie przekracza — AGENT NIE WYDAJE PIENIĘDZY. Kampania powstaje jako projekt do zatwierdzenia, limity dzienne i całkowite są twarde, a uruchomienie jest osobną, świadomą decyzją człowieka. Agent z dostępem do portfela i bez bramki to nie jest automatyzacja, tylko ryzyko operacyjne z ładnym interfejsem.
Uczciwość dotyczy też wyników kampanii. Wtyczka raportuje, co się wydarzyło i przy jakich ustawieniach, ale nie przypisuje sobie sprzedaży — bo w kanale, w którym działa kilka źródeł ruchu naraz, atrybucja jest modelem, a nie pomiarem. Zamiast „ta kampania przyniosła X” jest „tyle zamówień przyszło w oknie kampanii, tyle z oznaczonych odnośników, tyle z innych źródeł”.
Po stronie technicznej wszystko jest osadzone w WordPressie tak, żeby nie zabić instalacji: wtyczki nie odpytują nikogo w czasie żądania strony. Pobieranie chodzi w zadaniach cyklicznych, porcjami, z limitami i pamięcią podręczną; źródła są brane w kolejności od oficjalnych API i feedów, a treści publiczne czytane z poszanowaniem limitów i regulaminów. Każda odpowiedź z zewnątrz ląduje w dzienniku razem z momentem pobrania, więc każdą liczbę na ekranie da się cofnąć do jej źródła.
Problem
Właściciel sklepu w wąskiej niszy pyta, co robi konkurencja i co z tym zrobić. Gotowe narzędzia odpowiadają albo pulpitem, na który nikt nie patrzy po tygodniu, albo jedną liczbą „ruchu”, której nikt nie potrafi wyjaśnić — a decyzje o cenach i budżecie reklamowym zapadają na tych właśnie liczbach.
Rozwiązanie
Cztery wtyczki, które rozdzielają obserwację od interpretacji: sygnały i szacunki podawane osobno, z etykietą źródła i datą; ceny porównywane dopiero po pewnym dopasowaniu produktu; obserwacje zamieniane w ranking działań z uzasadnieniem i możliwością odrzucenia; kampania przygotowywana do zatwierdzenia, nigdy uruchamiana samodzielnie.
Funkcje
- ruch konkurencji jako sygnały i szacunki obok siebie, nigdy jako jedna liczba
- każda wartość z etykietą źródła i momentem pobrania — da się ją cofnąć do źródła
- ceny porównywane dopiero po dopasowaniu produktu, z jawnym poziomem pewności
- cena porównywalna rozbita na składniki: regularna, rabat, wysyłka, wielopak
- sugestie wskazujące obserwację, z której wynikły, i dające się odrzucić z powodem
- odrzucona sugestia nie wraca — powód odrzucenia trafia z powrotem do agenta
- kampania przygotowana do zatwierdzenia; twarde limity dzienne i całkowite
- raport kampanii bez przypisywania sobie sprzedaży — atrybucja to model, nie pomiar
Moduły
aai-radar-ruchu
wtyczka WordPressObserwuje aktywność konkurencji i rozdziela to, co widać, od tego, co ktoś oszacował.
- sygnały obserwowalne wprost: pozycje w wynikach, tempo przybywania treści, przyrost opinii, liczba ofert
- szacunki dostawców analityki podawane osobno i podpisane jako wynik cudzego modelu
- każda wartość z etykietą źródła i momentem pobrania, bez uśredniania różnych natur danych
- zmiana istotna zgłaszana jako zdarzenie, a nie jako słupek, który trzeba zauważyć
- brak danych z okresu odnotowany jako luka, a nie wygładzony do zera
aai-radar-cen
wtyczka WordPressPilnuje cen w niszy — ale najpierw upewnia się, że porównuje ten sam produkt.
- dopasowanie po kodzie producenta i EAN tam, gdzie są; po cechach tam, gdzie ich nie ma
- poziom pewności dopasowania podany wprost — trafienie pewne i prawdopodobne to dwie różne odpowiedzi
- cena porównywalna rozbita na składniki zamiast jednej liczby z karty oferty
- historia ceny per konkurent, więc obniżka jednorazowa nie wygląda jak trend
- własna cena zestawiana z progiem marży, a nie tylko z rynkiem
aai-doradca
wtyczka WordPressZamienia obserwacje w ranking działań z uzasadnieniem, zamiast w kolejny pulpit.
- każda sugestia wskazuje obserwację, z której wynikła, i spodziewany efekt
- ranking po wadze, nie po dacie — najpierw to, co kosztuje najwięcej albo daje najwięcej
- odrzucenie z powodem wraca do agenta i wyklucza powtórki tej samej propozycji
- sugestia bez pokrycia w danych nie powstaje — brak sygnału to brak sugestii
- wykonane działanie zapisane przy obserwacji, żeby dało się wrócić do skutku
aai-kampanie
wtyczka WordPressPrzygotowuje kampanię do zatwierdzenia. Nie uruchamia jej i nie wydaje pieniędzy.
- grupy odbiorców, warianty treści i podział budżetu jako PROJEKT, nie jako akcja
- twarde limity dzienne i całkowite ustalane przed przygotowaniem, nie po
- uruchomienie jest osobną decyzją człowieka — agent nie ma dostępu do portfela
- raport mówi, co się wydarzyło w oknie kampanii, bez przypisywania sobie sprzedaży
- warianty opisane tym, co mają sprawdzić, żeby wynik dało się odczytać
Architektura
- Podstawa
- cztery osobne wtyczki WordPressa z własnym cyklem życia; logika w hookach, nie w motywie
- Rozdział danych
- sygnał obserwowalny i szacunek dostawcy nigdy nie są sumowane ani uśredniane w jedną wartość
- Etykieta źródła
- każda liczba na ekranie niesie źródło i moment pobrania — bez tego nie trafia do interfejsu
- Dopasowanie produktu
- kod producenta i EAN przed cechami; poziom pewności podawany, nie ukrywany za średnią
- Granica agenta kampanii
- przygotowuje i proponuje; uruchomienie i budżet pozostają decyzją człowieka, limity są twarde
- Atrybucja
- raport opisuje okno kampanii i źródła wejść; nie przypisuje sprzedaży kampanii, bo to model
- Pobieranie danych
- oficjalne API i feedy przed treściami publicznymi; limity zapytań i poszanowanie regulaminów
- Wydajność
- żadnego odpytywania w czasie żądania strony — zadania cykliczne, porcje i pamięć podręczna
- Dane
- własne tabele MySQL na obserwacje, ceny i dziennik pobrań; produkty zostają w WooCommerce
- Dziennik
- każda odpowiedź z zewnątrz zapisana z momentem pobrania — liczbę da się cofnąć do źródła
Technologie
- PHP
- WordPress
- WooCommerce
- MySQL
- REST API
- Claude
Autor
Mariusz PerzyńskiClient Relations & Operations