· 6 min czytania

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.

Meta CAPI fbc EMQ

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:

  1. Po wejściu z reklamy zapisujemy identyfikator kliknięcia w ciasteczku na 90 dni (tyle ile Meta uznaje za ważne).
  2. Do formularzy dodajemy ukryte pole, które wysyła ten identyfikator razem z resztą danych.
  3. Na serwerze wypełniamy go automatycznie, jeśli ciasteczko istnieje.
  4. W wywołaniach do Mety przekazujemy fbc razem z innymi parametrami (email, telefon, IP).

To wszystko.

Efekt

PrzedPo
Pole fbc w wysyłanych zdarzeniach0%100%
Jakość dopasowania (EMQ)4.4/10oczekiwane 7-8/10
Raportowane konwersje100% (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:

  1. Nic nie krzyczy. Panel Meta nie pokazuje czerwonego alertu. Zdarzenia wysyłają się, konwersje się liczą. Wszystko wygląda OK.
  2. Wymaga technicznej wiedzy, żeby zobaczyć. Trzeba wejść w sekcję “Jakość zdarzeń” w Events Manager i zrozumieć co oznacza EMQ 4.4 na 10.
  3. 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):

  1. Wejdź do Events ManagerOverviewJakość dopasowania zdarzeń.
  2. Sprawdź EMQ swoich kluczowych zdarzeń (np. Lead, Purchase).
  3. 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 fbclid zamiast pełnego fbc.

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

  1. Wejdź na stronę incognito z ?fbclid=TEST999. Sprawdź w DevTools → Application → Cookies, czy pojawiło się _fbc w formacie fb.1.{timestamp}.TEST999.
  2. Wyślij testowy formularz. W logach backendu fbc powinien być wypełniony.
  3. Po 24-48h w Meta Events Manager → Udostępniane parametry zobaczysz fbc w zdarzeniach.
  4. 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ę