Most. Help

FBC FBP Construction: Building _fbc and _fbp by Hand

Published Sep 14, 20265 min readAdvanced
Hand-drawn assembly bench where two cookie tokens labeled fbc and fbp are bolted together from stamped parts, an orange caliper checking the exact format before shipment to a pixel flag
What you'll learn
  • What the _fbc and _fbp cookie values look like, part by part
  • How to construct fbc on the server from the fbclid URL parameter
  • Which fields travel hashed versus unhashed in user_data
  • The format mistakes that silently break Meta matching
Advanced

FBC FBP Construction: Building _fbc and _fbp by Hand

In server-side funnels, fbc fbp construction is the buyer's substitute for a browser: a pixel on your own site would collect Meta's _fbc and _fbp cookies automatically, but a server-side funnel never sees a browser at the conversion moment - so the values must be constructed from what the click captured. The format is documented and simple; the mistakes are quiet. A malformed fbc does not fail the request - it simply matches worse, and the optimization quietly absorbs the loss. This guide covers the cookie formats, the fbc-from-fbclid construction, the hashing rules, and the format mistakes that break matching.

Why server events need these values at all - matching quality and its scoring - is in the complete Meta CAPI guide; this page is the construction manual.

What the Two Cookies Look Like

Meta's cookies are underscore-prefixed in the browser and travel - without the underscores - inside the user_data of a Conversions API call:

Browser cookieuser_data fieldWhat it holds
_fbcfbcThe click: version, timestamp, and the fbclid from the ad URL
_fbpfbpThe browser: version, creation timestamp, and a random number scoped to the domain

For affiliate funnels the distinction matters: fbc is about the click - reconstructable from the ad URL - while fbp is about the browser on a specific domain - and when the conversion domain is outside your control, it never arrives. Meta documents that server events carry these as fbp and fbc in user_data, and that _fbc can be constructed from the fbclid URL parameter (fbp and fbc parameters). Each value pairs with the click through its click ID, which is why capture timing dominates the construction.

Constructing fbc From fbclid

Per the documented format, the construction recipe runs:

  1. Capture the raw fbclid parameter from the ad's destination URL at click time, before any redirect can trim it (where click IDs get lost).
  2. Record the moment of the click as a timestamp.
  3. Then join the parts in the versioned shape: fb.1.<timestamp>.<fbclid>.
ad URL:      your-tracker.example/landing?fbclid=IwAR0abc123
stored fbc:  fb.1.1790000000000.IwAR0abc123

Keeping the constructed value usable takes two rules. First, the timestamp precision and the fbclid must be exactly what the click carried - trimming, URL-decoding, or re-encoding the fbclid produces a value Meta cannot pair with the click. Second, construct once at click time and store the result with the click row; rebuilding it later from memory invites drift.

What Travels Hashed - and What Does Not

The hashing rules are explicit and asymmetrical:

user_data fieldSent as
fbc, fbpRaw - never hashed
client_ip_address, client_user_agentRaw - never hashed
em (email), ph (phone), names, geo fieldsSHA-256 hashed, normalized first

Meta documents the never-hash list explicitly, and it includes exactly the fields this guide constructs (fbp and fbc parameters). The single most classic mistake is applying a hash-everything helper to the whole user_data object - which destroys the very values the construction just built.

The Mistakes That Break Matching

  1. Underscores in the payload. The browser cookies are _fbc/_fbp; the user_data fields are fbc/fbp. Sending the underscore names in the JSON is the most common format error.
  2. Mangled fbclid. URL-decoding or truncating the captured parameter - fbclid values can contain characters that survive only verbatim.
  3. Hashed identity fields. fbc and fbp hashed "for consistency" stop matching entirely; the hash rules are per-field, not per-object.
  4. Timestamp drift. Constructing fbc with a different timestamp than the click's own - the value pairs with the click, not with the send moment.

All four are caught by the verification loop: send one constructed event through Meta's Test Events, then check the match-quality signals in Events Manager (get started). The per-field rules sit inside the wider matching picture of the Meta CAPI guide, and the click-side losses behind a missing fbclid are in the prelander loss map.

Building _fbc and _fbp: Frequently Asked Questions

Frequently asked questions

Sources

Sources

Construction without the typos
  • Test the built values: Pixel Activator fires free events with your constructed fbc/fbp so you see matching move.
  • Constructed once, delivered always: Most builds and attaches identifiers per click, in the exact documented format.
Was this guide helpful?
Author
Most Team
Справочная служба

Официальные руководства и глоссарий для платформы Most и Активатора пикселей.

Topic
Meta Conversions API: The Complete Guide
Main article of the topic
Related articles

Related guides

Meta Conversions API: The Complete Guide

A single entry point into the Meta Conversions API cluster: what the API does, which credentials and parameters a working event needs, how deduplication and validation fit together, and where each specific failure - a late event, a double count, an error code - has its own deep-dive guide.

10 min

Meta CAPI Batching and Rate Limits: The Delivery Rules

The Conversions API accepts several events in one request - and one bad event can fail the whole batch. This guide covers the documented batching structure, the acceptance rules that decide whether a request survives, what a rejected batch means for retry logic, and the delivery discipline that keeps a busy funnel inside the platform's limits without guessing at undocumented numbers.

6 min

Lead Ads CRM CAPI: Closing the Lead Loop in Meta

A Lead Ads form fills your CRM; the lead that actually buys is the one worth telling Meta about. This guide wires the loop: from the form's instant delivery into your CRM, through confirmation and hashing, to a documented CAPI lead event - with dedup and the seven-day window deciding how late a confirmed lead can still count.

6 min

Limited Data Use Meta: data_processing_options in Server Events

Meta's Limited Data Use flag exists so your server events can carry a US state-privacy signal - and it is three documented fields inside each event. This guide explains what data_processing_options does, the exact LDU values and country and state codes, the empty-array semantics most setups miss, and when sending the flag is the right call.

5 min