Brakujący parametr w Meta Ads, który kosztuje Cię połowę konwersji
Jeśli prowadzisz reklamy na Meta i używasz Conversions API, może się okazać, że widzisz o połowę mniej wyników niż faktycznie masz. Tłumaczę problem po ludzku na bazie case study z maltaview.pl.
W skrócie
Jeśli wydajesz pieniądze na reklamy Meta (Facebook, Instagram) i Twój specjalista wdrożył “Conversions API” (CAPI), istnieje duża szansa, że raportowana jest Ci tylko połowa konwersji. To nie błąd Mety. To jeden drobny parametr techniczny, o którym łatwo zapomnieć.
W tym artykule pokazuję:
- Na czym polega problem (po ludzku, bez żargonu).
- Jak go zdiagnozowaliśmy u naszego klienta, Maltaview.pl (apartamenty premium w Poznaniu).
- Jaki efekt daje jego naprawienie.
Wyobraź sobie taką sytuację
Puszczasz reklamę na Facebooku. Ktoś w nią klika i trafia na Twoją stronę. Wypełnia formularz kontaktowy. Gratulacje, masz leada.
Twoje narzędzie trackingowe powinno teraz powiedzieć Mecie:
“Hej, ten formularz wypełnił ktoś, kto kliknął Twoją reklamę. Pokazuj tę reklamę podobnym osobom.”
I to jest moment, w którym wszystko zaczyna się psuć. Bo żeby Meta wiedziała, że to ten sam człowiek, który przed chwilą kliknął reklamę, musi dostać od Ciebie konkretny identyfikator tego kliknięcia. Nazywa się fbc (Facebook Click ID).
Bez fbc Meta dostaje informację: “ktoś wypełnił formularz na Twojej stronie”, ale nie potrafi połączyć tej osoby z konkretną reklamą. Próbuje zgadywać po adresie IP, przeglądarce, mailu. Czasami trafi, często nie.
Analogia z kurierem
Wyobraź sobie, że wysyłasz paczkę, ale zamiast adresu na etykiecie piszesz tylko miasto. Kurier może trafić, jeśli adresat jest znany w okolicy. Ale jeśli w tym mieście mieszka 500 tysięcy osób, to paczka się zgubi.
fbc to właśnie ten dokładny adres. Bez niego Meta “gubi paczkę” w połowie przypadków.
Co na ten temat mówi sama Meta
W panelu Events Manager (tam gdzie sprawdzasz jakość swoich zdarzeń) Meta pisze wprost:
“Reklamodawcy, którzy przesłali prawidłowy Meta ClickID, uzyskali wzrost co najmniej 100% obecnie raportowanych konwersji.”
Po ludzku: bez fbc widzisz połowę tego, co się naprawdę wydarzyło. Algorytm optymalizacji Twoich kampanii dostaje niepełne dane i podejmuje gorsze decyzje. Płacisz więcej za każdego klienta.
Case study: Maltaview.pl
Maltaview to deweloper, który sprzedaje apartamenty premium nad Jeziorem Maltańskim w Poznaniu. Każdy lead jest drogi i cenny. Model biznesowy polega na tym, że klient zostawia kontakt, handlowiec dzwoni i umawia prezentację.
Co zastaliśmy
Klient miał już wdrożone Meta CAPI (to dobry znak), ale wskaźnik dopasowania zdarzeń (EMQ, czyli ocena Mety od 0 do 10) wynosił 4.4/10. Ocena słaba.
Meta podpowiadała w panelu: “brakuje wam Meta ClickID”.
Diagnostyka pokazała, że w danych wysyłanych na serwer pole fbc istniało, ale zawsze było puste. Klasyczny błąd. Twórcy wdrożenia założyli, że Meta Pixel sam zapisze sobie ten identyfikator w przeglądarce. W większości przypadków tego nie robi, zwłaszcza jeśli użytkownik blokuje ciasteczka lub używa trybu prywatnego.
Co zrobiliśmy
Cztery proste kroki, łącznie około 30 minut pracy:
- Po wejściu z reklamy zapisujemy identyfikator kliknięcia w ciasteczku na 90 dni (tyle ile Meta uznaje za ważne).
- Do formularzy dodajemy ukryte pole, które wysyła ten identyfikator razem z resztą danych.
- Na serwerze wypełniamy go automatycznie, jeśli ciasteczko istnieje.
- W wywołaniach do Mety przekazujemy
fbcrazem z innymi parametrami (email, telefon, IP).
To wszystko.
Efekt
| Przed | Po | |
|---|---|---|
Pole fbc w wysyłanych zdarzeniach | 0% | 100% |
| Jakość dopasowania (EMQ) | 4.4/10 | oczekiwane 7-8/10 |
| Raportowane konwersje | 100% (baza) | oczekiwany wzrost o ponad 100% |
Oczekiwany wzrost to szacunek samej Mety na podstawie danych od tysięcy reklamodawców, którzy naprawili ten parametr. W praktyce oznacza to, że kampanie zaczynają “widzieć” znacznie więcej wyników i optymalizują się lepiej. Koszt pozyskania klienta spada, bo algorytm wie kogo szukać.
Dlaczego to tak łatwo przeoczyć
Ten błąd ma trzy cechy, które sprawiają, że praktycznie nikt go sam nie wyłapie:
- Nic nie krzyczy. Panel Meta nie pokazuje czerwonego alertu. Zdarzenia wysyłają się, konwersje się liczą. Wszystko wygląda OK.
- Wymaga technicznej wiedzy, żeby zobaczyć. Trzeba wejść w sekcję “Jakość zdarzeń” w Events Manager i zrozumieć co oznacza EMQ 4.4 na 10.
- Symptom to nie błąd, a gorszy wynik. Zauważasz go dopiero gdy patrzysz na rosnący koszt pozyskania klienta i myślisz “dziwne, kampanie kiedyś działały lepiej”.
Co zrobić u siebie
Jeśli prowadzisz reklamy na Meta i używasz Conversions API (lub jakiegoś pluginu, który to udaje):
- Wejdź do Events Manager → Overview → Jakość dopasowania zdarzeń.
- Sprawdź EMQ swoich kluczowych zdarzeń (np. Lead, Purchase).
- Jeśli widzisz wartość poniżej 7, prawie na pewno masz ten sam problem.
Jeśli tak, są dwa warianty:
- Twój specjalista to naprawi (pokaż mu ten artykuł, sekcja techniczna niżej).
- Odezwij się do mnie. Zrobię to zwykle w ciągu 1-2 dni.
Uwaga o RPO/RODO
Identyfikator fbc to ciasteczko marketingowe. W Unii Europejskiej musi być zapisywane po zaakceptowaniu zgody na cookies marketingowe. U klientów, którzy odrzucą cookies, fbc nie będzie wysyłane. To naturalny koszt pracy w zgodzie z prawem. Nie warto go obchodzić.
Szczegóły techniczne (dla deweloperów)
Jeśli wdrażasz to samodzielnie, poniżej kluczowe informacje.
Format identyfikatora
Meta wymaga formatu: fb.1.{timestamp_w_milisekundach}.{fbclid_z_URL}
Najczęstsze błędy:
- Użycie sekund zamiast milisekund (
Date.now() / 1000). Meta odrzuci. - Brak prefiksu
fb.1.. Meta odrzuci. - Przekazanie samego
fbclidzamiast pełnegofbc.
Zapisywanie ciasteczka
function captureFbclid() {
const fbclid = new URLSearchParams(window.location.search).get('fbclid');
if (fbclid && !getCookie('_fbc')) {
const fbc = 'fb.1.' + Date.now() + '.' + fbclid;
setCookie('_fbc', fbc, 90); // 90 dni, zgodne z Meta attribution window
}
}
Przekazywanie do formularza
Ukryte pole fbc wypełniane na kilka sposobów (immediate + DOMContentLoaded + focusin + interval) dla odporności na pluginy ładujące DOM dynamicznie:
function fillFbc() {
const fbc = getCookie('_fbc');
if (!fbc) return;
document.querySelectorAll('input[name="fbc"]').forEach(el => el.value = fbc);
}
fillFbc();
document.addEventListener('DOMContentLoaded', fillFbc);
document.addEventListener('focusin', fillFbc);
setInterval(fillFbc, 2000);
Payload do Meta Graph API
Email i telefon zahashowane SHA256, fbc i fbp w formie jawnej:
const userData = {
fbp: body.fbp || undefined,
fbc: body.fbc || undefined,
client_user_agent: body.user_agent || undefined,
client_ip_address: clientIp || undefined,
em: body.email ? sha256(body.email.toLowerCase()) : undefined,
ph: body.phone ? sha256(normalizePhone(body.phone)) : undefined
};
Walidacja wieku fbc
Ciasteczko ma 90 dni ważności, ale attribution window to 7 dni. Warto odfiltrować stare wartości przed wysyłką:
function isValidFbc(fbc) {
const parts = fbc.split('.');
if (parts.length < 4) return false;
const ts = parseInt(parts[2], 10);
const ninetyDaysMs = 90 * 24 * 60 * 60 * 1000;
return (Date.now() - ts) < ninetyDaysMs;
}
Weryfikacja wdrożenia
- Wejdź na stronę incognito z
?fbclid=TEST999. Sprawdź w DevTools → Application → Cookies, czy pojawiło się_fbcw formaciefb.1.{timestamp}.TEST999. - Wyślij testowy formularz. W logach backendu
fbcpowinien być wypełniony. - Po 24-48h w Meta Events Manager → Udostępniane parametry zobaczysz
fbcw zdarzeniach. - Po ok. 7 dniach EMQ powinien wyraźnie wzrosnąć.
Case study oparty o wdrożenie dla Maltaview.pl. Stack: WordPress + Elementor + Fluent Forms Pro + Google Tag Manager + CookieYes CMP + n8n (self-hosted) + Meta Graph API v19.0.
Chcesz odzyskać utracone dane?
Umów się na bezpłatną 30-minutową rozmowę diagnostyczną.
Umów diagnozę