Conversions API krok po kroku: Shopify, WooCommerce, Shoper i GTM server-side
Conversions API to połączenie serwer–serwer, które przesyła do Meta zdarzenia ze sklepu niezależnie od przeglądarki, blokerów reklam i ograniczeń plików cookie. W Shopify i WooCommerce włączysz je w oficjalnej integracji w 15–30 minut, w Shoperze wystarczy identyfikator zbioru danych i token, a GTM server-side daje pełną kontrolę, ale wymaga opłacanego serwera. W każdym wariancie trzeba zadbać o deduplikację z pikselem.

W skrócie
- Conversions API nie zastępuje piksela – najlepiej działa konfiguracja redundantna, w której to samo zdarzenie wysyłają przeglądarka i serwer.
- Meta usuwa duplikat tylko wtedy, gdy zdarzenie z piksela i z serwera ma identyczną nazwę, ten sam event_id i dociera w ciągu 48 godzin.
- W Shopify zdarzenia serwerowe uruchamia poziom udostępniania danych „Maksymalny” w aplikacji Facebook i Instagram, a w WooCommerce oficjalna wtyczka Facebook for WooCommerce.
- Dla zdarzenia Purchase rozsądnym celem jest jakość dopasowania 6/10 lub wyższa, co wymaga przesyłania m.in. zahashowanego e-maila, telefonu oraz wartości fbp i fbc.
- Integracja serwerowa nie zwalnia ze zgody: zdarzenia osób, które odrzuciły cookies marketingowe, nie powinny trafiać do Meta także z serwera.
Spis treści
- Po co sklepowi integracja serwerowa z Meta?
- Czym różni się Conversions API od piksela Meta?
- Co przygotować przed wdrożeniem?
- Jak włączyć Conversions API w Shopify?
- Jak skonfigurować API konwersji w WooCommerce i Shoperze?
- Jak wdrożyć GTM server-side dla Meta krok po kroku?
- Jak ustawić deduplikację i podnieść jakość dopasowania zdarzeń?
- Co sprawdzić w pierwszym tygodniu po wdrożeniu?
- Najczęstsze pytania
Po co sklepowi integracja serwerowa z Meta?
Conversions API (API konwersji) to sposób przesyłania zdarzeń – zakupu, dodania do koszyka, rejestracji – bezpośrednio z serwera sklepu do Meta, bez pośrednictwa przeglądarki użytkownika. Wdraża się je po to, żeby kampanie dostawały pełniejszy sygnał o konwersjach, a raporty w Menedżerze reklam mniej odbiegały od liczby zamówień w panelu sklepu.
Sam piksel działa w przeglądarce, więc część zdarzeń po drodze ginie. Blokery reklam wycinają skrypt, Safari skraca życie plików cookie, a klient, który zamknie kartę zaraz po płatności, nie zawsze wczyta stronę podziękowania. Do tego dochodzą odrzucone zgody cookies i reklamy mniej spersonalizowane w UE, przez które sygnałów jest po prostu mniej. Każde zgubione zdarzenie to informacja, której algorytm nie wykorzysta przy szukaniu kolejnych kupujących.
Załóżmy modelowo, że sklep z kosmetykami realizuje 400 zamówień miesięcznie, a piksel rejestruje 300 z nich. Po poprawnym wdrożeniu integracji serwerowej Menedżer zdarzeń może pokazywać 340–370 zakupów, a reszta to zwykle osoby bez zgody na marketing. To nie jest „magiczny wzrost sprzedaży”, tylko odzyskanie sygnału, który już istniał. Jeśli dopiero budujesz konto, najpierw przejdź proces opisany w przewodniku reklama na Facebooku krok po kroku, a integrację serwerową dołóż, gdy piksel działa i są pierwsze sprzedaże.
Czym różni się Conversions API od piksela Meta?
Piksel to skrypt JavaScript uruchamiany w przeglądarce odwiedzającego, a Conversions API to połączenie serwer–serwer, w którym zdarzenie wysyła sklep albo serwer tagujący. Nie wybiera się jednego z nich: standardem jest konfiguracja redundantna, w której oba kanały wysyłają te same zdarzenia, a Meta usuwa duplikaty.
| Cecha | Piksel Meta | Conversions API | Piksel + CAPI |
|---|---|---|---|
| Gdzie działa | przeglądarka | serwer sklepu lub serwer tagujący | oba miejsca |
| Odporność na blokery i Safari | niska | wysoka | wysoka |
| Pliki _fbp i _fbc | zapisuje i odczytuje | tylko jeśli je przekażesz | pełny dostęp |
| Dane z zaplecza sklepu (status płatności, ID klienta) | brak | dostępne | dostępne |
| Ryzyko podwójnego liczenia | brak | brak | jest, bez wspólnego event_id |
| Czas wdrożenia | kilkanaście minut | od kwadransa do kilku dni | jak CAPI |
Piksel nadal jest potrzebny, bo widzi to, czego serwer nie zna: identyfikator kliknięcia reklamy zapisany w pliku _fbc i zachowanie na stronach produktów. Serwer z kolei wie, że płatność faktycznie przeszła, i może dołożyć dane, których nie ma w przeglądarce, na przykład identyfikator klienta z bazy. Instalację samego piksela i listę zdarzeń standardowych opisujemy w poradniku o tym, jak zainstalować piksel Meta i przetestować zdarzenia.
Co przygotować przed wdrożeniem?
Przed startem potrzebujesz trzech rzeczy: pełnej kontroli nad zbiorem danych (pikselem) w Portfolio firmowym Meta, dostępu administracyjnego do sklepu i decyzji, które zdarzenia mają trafiać do Meta. Bez tego integracja zatrzyma się na etapie logowania albo wyśle niepełne dane.
Lista kontrolna przed instalacją czegokolwiek:
- Zbiór danych. W Menedżerze zdarzeń piksel występuje dziś jako zbiór danych (dataset). Sprawdź, czy sklep korzysta z jednego zbioru, a nie z trzech starych pikseli po poprzednich wykonawcach.
- Uprawnienia. Konto, którym łączysz sklep, musi mieć pełną kontrolę nad zbiorem danych i kontem reklamowym. Jak nadawać role, wyjaśniamy w tekście o Portfolio firmowym Meta i dostępach.
- Domena. Zweryfikuj domenę sklepu w ustawieniach Portfolio firmowego, żeby nikt inny nie mógł nią zarządzać w kontekście reklam.
- Zdarzenia. Minimum dla e-commerce to PageView, ViewContent, AddToCart, InitiateCheckout i Purchase, a przy zakupie zawsze parametry value i currency (PLN).
- Zgody. Ustal z osobą odpowiedzialną za ochronę danych, jak baner cookies (CMP) ma sterować wysyłką zdarzeń. Szerzej opisujemy to w artykule o tym, jak zgody cookies wpływają na dane piksela, a podstawy prawne – w tekście o RODO w kampaniach social media.
Uwaga: Conversions API nie omija zgody użytkownika. Jeśli ktoś odrzucił pliki cookie marketingowe, serwer nie powinien wysyłać jego zdarzeń z identyfikatorami _fbp i _fbc ani zahashowanym e-mailem tylko dlatego, że technicznie jest to możliwe.
Jak włączyć Conversions API w Shopify?
W Shopify Conversions API włączasz w oficjalnej aplikacji Facebook i Instagram od Meta, ustawiając poziom udostępniania danych klientów na „Maksymalny”. Konfiguracja zajmuje zwykle kwadrans i nie wymaga pisania kodu.
- W panelu Shopify zainstaluj aplikację Facebook i Instagram (kanał sprzedaży od Meta).
- Połącz konto Facebooka, a następnie wybierz Portfolio firmowe, stronę, konto reklamowe i zbiór danych, z którego korzystasz w kampaniach.
- W ustawieniach aplikacji otwórz sekcję udostępniania danych klientów i włącz ją.
- Wybierz poziom „Maksymalny”. Standardowy to sam piksel, rozszerzony dodaje zaawansowane dopasowanie, a dopiero maksymalny uruchamia zdarzenia serwerowe (stan na październik 2026).
- Usuń ręcznie wklejony kod piksela z motywu i ze starych skryptów kasy, jeśli ktoś go kiedyś dodał. Inaczej Purchase będzie liczony podwójnie, bo stary kod nie przekazuje wspólnego event_id.
- Złóż zamówienie testowe i sprawdź w Menedżerze zdarzeń, czy zakup przychodzi dwoma kanałami: z przeglądarki i z serwera.
Shopify sam ustawia deduplikację, więc w tym wariancie nie generujesz event_id ręcznie. Ceną jest mniejsza kontrola: bez dodatkowych narzędzi nie wyślesz marży zamiast przychodu ani własnych zdarzeń niestandardowych. Aplikacja uwzględnia też zgody zebrane przez mechanizm prywatności klientów Shopify, więc jeśli używasz zewnętrznego banera CMP, sprawdź, czy przekazuje on decyzje użytkowników do platformy.
Jak skonfigurować API konwersji w WooCommerce i Shoperze?
W WooCommerce najprostszą drogą jest oficjalna wtyczka Facebook for WooCommerce, która po połączeniu z kontem Meta wysyła zdarzenia jednocześnie z piksela i z serwera. W Shoperze integrację uruchamiasz w panelu sklepu, wpisując identyfikator zbioru danych i token dostępu wygenerowany w Menedżerze zdarzeń.
WooCommerce
Po instalacji wtyczki przejdź do Marketing → Facebook i połącz sklep z Meta. Kreator poprosi o wybór Portfolio firmowego, konta reklamowego i zbioru danych, a po zakończeniu sam wygeneruje token i włączy zdarzenia serwerowe. Na co uważać:
- Cache strony. Wtyczki cache'ujące potrafią zapisać stronę z tym samym event_id dla wielu osób, co psuje deduplikację. Wyklucz z cache koszyk, kasę i stronę podziękowania.
- Zdublowane wtyczki. Jeśli działa druga wtyczka do piksela albo kod wklejony w motyw, wyłącz ją. Dwa niezależne mechanizmy wysyłające Purchase to najczęstsza przyczyna zawyżonego ROAS.
- Katalog. Ta sama wtyczka synchronizuje produkty; jeśli planujesz reklamy dynamiczne, zajrzyj do instrukcji o katalogu produktów z WooCommerce i Shopera.
Shoper
Shoper ma wbudowaną integrację z API konwersji Facebooka, dostępną w panelu administracyjnym wśród integracji marketingowych. Kolejność jest prosta: w Menedżerze zdarzeń wybierasz zbiór danych, w zakładce Ustawienia w sekcji Conversions API generujesz token dostępu, a potem wklejasz go razem z identyfikatorem zbioru danych w panelu Shopera i zapisujesz. Następnie złóż zamówienie testowe i sprawdź, czy zakup przychodzi z przeglądarki i z serwera. Zweryfikuj też, czy integracja respektuje kategorie zgód z banera cookies sklepu, bo od tego zależy zgodność całego wdrożenia.
Jak wdrożyć GTM server-side dla Meta krok po kroku?
GTM server-side to kontener Google Tag Managera uruchomiony na serwerze w chmurze, który odbiera dane ze strony i przekazuje je dalej, między innymi do Meta. Wybierz go, gdy sklep stoi na niestandardowej platformie, chcesz kontrolować każdy parametr albo wysyłać te same dane do kilku systemów reklamowych z jednego miejsca.
- Utwórz kontener serwerowy w Google Tag Managerze i wybierz hosting: automatyczne wdrożenie w Google Cloud albo zarządzaną usługę hostingu kontenerów GTM.
- Podepnij subdomenę sklepu, np. zaczynającą się od „sgtm”, żeby zapytania trafiały do serwera w obrębie Twojej domeny, a pliki cookie były ustawiane jako własne (first-party).
- Skonfiguruj kontener webowy. Tag Google wysyła zdarzenia GA4 na adres serwera, a w warstwie danych (dataLayer) każde zdarzenie e-commerce dostaje unikalny event_id.
- Przekaż ten sam identyfikator pikselowi w kontenerze webowym jako parametr eventID. To warunek deduplikacji.
- Zainstaluj w kontenerze serwerowym szablon Conversions API Tag z galerii szablonów społeczności i wpisz identyfikator zbioru danych oraz token dostępu.
- Zmapuj zdarzenia i dane klienta. Zdarzenia view_item, add_to_cart, begin_checkout i purchase powinny trafić do Meta jako ViewContent, AddToCart, InitiateCheckout i Purchase. E-mail i telefon muszą dotrzeć zahashowane algorytmem SHA-256 – sprawdź, czy robi to szablon, czy trzeba to zrobić wcześniej.
- Testuj równolegle w trybie podglądu GTM i w zakładce Testowanie zdarzeń w Menedżerze zdarzeń, wpisując w tagu kod testowy.
- Opublikuj kontener i usuń kod testowy, bo zdarzenia testowe nie są wykorzystywane do optymalizacji.
Server-side ma koszt stały: serwer w chmurze lub abonament hostingu, zwykle od kilkudziesięciu do kilkuset złotych miesięcznie, zależnie od ruchu. Przy małym sklepie z gotową integracją platformy taki wydatek rzadko się zwraca i wystarczy wtyczka. Jeśli natomiast chcesz porównywać Meta z innymi kanałami na wspólnych danych, przeczytaj, jak podejść do mierzenia efektów reklam i testów przyrostowych.
Jak ustawić deduplikację i podnieść jakość dopasowania zdarzeń?
Deduplikacja to mechanizm, w którym Meta łączy to samo zdarzenie z piksela i z serwera w jedno, jeśli oba mają identyczną nazwę (event_name) i ten sam identyfikator (event_id), a dotrą w ciągu 48 godzin. Jakość dopasowania zdarzeń to ocena w skali 0–10, która pokazuje, jak dobrze Meta łączy zdarzenia serwerowe z konkretnymi użytkownikami.
Najczęstszy błąd to generowanie event_id dwa razy: osobno w przeglądarce i na serwerze. Identyfikator musi powstać w jednym miejscu (dla zakupu dobrze sprawdza się numer zamówienia z prefiksem) i trafić do obu kanałów. Znaczenie ma też wielkość liter: „Purchase” i „purchase” to dla Meta dwa różne zdarzenia.
Jakość dopasowania podnosisz, przesyłając więcej parametrów klienta:
| Parametr | Klucz | Hashowanie SHA-256 | Jak przygotować |
|---|---|---|---|
| em | tak | małe litery, bez spacji | |
| Telefon | ph | tak | same cyfry z kierunkowym 48 |
| Imię, nazwisko | fn, ln | tak | małe litery, kodowanie UTF-8 |
| ID klienta | external_id | zalecane | ten sam identyfikator w pikselu i na serwerze |
| Adres IP, przeglądarka | client_ip_address, client_user_agent | nie | wymagane dla zdarzeń ze strony |
| Pliki cookie Meta | fbp, fbc | nie | wartości z plików _fbp i _fbc |
Dla zdarzenia Purchase rozsądnym celem jest ocena 6 lub wyższa; przy samym adresie IP i danych przeglądarki wynik zwykle zostaje niski. Lepsze dopasowanie oznacza więcej przypisanych konwersji, a więc inne liczby w raportach. Jak Meta przypisuje sprzedaż reklamom i skąd biorą się różnice z GA4, wyjaśniamy w tekście o oknach atrybucji w Meta Ads.
Co sprawdzić w pierwszym tygodniu po wdrożeniu?
Pierwszy tydzień po uruchomieniu integracji to czas na porównywanie liczb, a nie na zmiany w kampaniach. Codziennie zestawiaj zakupy w Menedżerze zdarzeń z zamówieniami w panelu sklepu: Meta nie musi widzieć wszystkich, bo część klientów nie daje zgody, ale nigdy nie powinna widzieć więcej.
Checklista na pierwsze dni:
- Liczba zdarzeń Purchase nie przekracza liczby zamówień; jeśli przekracza, szukaj błędu w deduplikacji.
- W szczegółach zdarzenia Purchase widać oba kanały połączenia: przeglądarkę i serwer.
- Zakładka Diagnostyka nie zgłasza problemów, np. brakującej waluty czy wartości przesłanej jako tekst.
- Zdarzenia serwerowe przychodzą na bieżąco, a nie paczką raz na dobę – opóźnione dane słabo pomagają w optymalizacji.
- Wartość zakupu obejmuje to samo co w sklepie (z dostawą albo bez – ważne, by zawsze tak samo).
- Kod testowy usunięto z konfiguracji, a token dostępu nie jest widoczny w kodzie strony.
Błędy po wdrożeniu też się powtarzają. Ktoś widzi wyższy ROAS i od razu podnosi budżety, choć zmienił się pomiar, a nie skuteczność reklam. Ktoś inny w tym samym tygodniu zmienia zdarzenie optymalizacji albo przebudowuje zestawy reklam, przez co nie da się oddzielić efektu integracji od efektu zmian. Integracja serwerowa nie naprawi też słabej oferty ani źle dobranych kreacji – poprawia sygnał, na którym algorytm się uczy.
Wskazówka: Zapisz datę wdrożenia i porównuj koszt na zakup z co najmniej 14 dni przed zmianą i po niej, z pominięciem okresów promocyjnych. Krótsze porównania częściej pokazują przypadkowe wahania niż realny efekt.
Najczęstsze pytania
Czy Conversions API jest płatne?
Samo Conversions API jest bezpłatne – Meta nie pobiera opłat za przesyłanie zdarzeń. Koszty pojawiają się po stronie infrastruktury: integracje w Shopify, WooCommerce i Shoperze są wliczone w platformę lub darmową wtyczkę, a GTM server-side wymaga serwera w chmurze lub hostingu, co w małym sklepie oznacza zwykle od kilkudziesięciu do kilkuset złotych miesięcznie.
Czy po wdrożeniu Conversions API można usunąć piksel Meta?
Technicznie tak, ale w sklepie internetowym zwykle się to nie opłaca. Piksel zbiera sygnały dostępne tylko w przeglądarce, takie jak identyfikator kliknięcia reklamy w pliku _fbc czy aktywność na stronach produktów. Standardem jest konfiguracja redundantna: piksel i serwer wysyłają te same zdarzenia, a Meta usuwa duplikaty na podstawie wspólnego event_id.
Ile czasu po zdarzeniu można je wysłać przez Conversions API?
Zdarzenia ze strony internetowej można przesłać do 7 dni po ich wystąpieniu, ale do optymalizacji kampanii liczy się wysyłka w czasie rzeczywistym. Zdarzenia przesyłane zbiorczo raz na dobę poprawią raportowanie, lecz algorytm dostaje sygnał z opóźnieniem i wolniej reaguje na zmiany w aukcji. Dlatego dobre integracje wysyłają zakup od razu po potwierdzeniu zamówienia.
Gdzie wygenerować token dostępu do Conversions API?
Token generujesz w Menedżerze zdarzeń: wybierasz zbiór danych, przechodzisz do zakładki Ustawienia i w sekcji Conversions API wybierasz opcję wygenerowania tokenu dostępu. Token autoryzuje serwer do wysyłania zdarzeń do konkretnego zbioru danych, więc traktuj go jak hasło. Nie umieszczaj go w kodzie strony, w publicznym repozytorium ani w wiadomościach wysyłanych do wielu osób.
Dlaczego Menedżer zdarzeń pokazuje więcej zdarzeń z serwera niż z przeglądarki?
Zwykle oznacza to, że integracja działa: serwer rejestruje zdarzenia, które piksel zgubił przez blokery, ograniczenia Safari lub zamknięcie karty przed załadowaniem skryptu. Niepokojąca jest dopiero sytuacja, w której łączna liczba zakupów w Menedżerze zdarzeń przekracza liczbę zamówień w sklepie. Wtedy sprawdź deduplikację i to, czy event_id jest identyczny w przeglądarce i na serwerze.