Pricing Academy Blog

What is fbclid? Meta's click ID

The fbclid is the parameter Meta adds to your URL when someone clicks through from Facebook or Instagram. What it means, how it turns into the _fbc cookie, when it's safe to remove, and how to send it back through the Conversions API.

Summarize with:
Illustration: the monitor mascot drops a small click tag into a cookie jar, next to a linked page
The short answer

fbclid is the Facebook Click ID: a parameter Meta adds to your website's URL when someone clicks through from Facebook or Instagram. The Meta pixel stores it in the _fbc cookie, and the value goes back to Meta with your conversions, from the browser or through the Conversions API, so the sale can be matched to the click.

Most people meet it as clutter in a URL. I'd treat it as the most useful string a Meta click brings you, and strip it from the address bar only after it's saved.

The fbclid has an odd reputation. It turns up at the end of links people paste into group chats, it fills analytics reports with near-duplicate page URLs, and there are whole guides on how to get rid of it. Meanwhile, the same string is what lets Meta connect a purchase on your site back to the ad that caused it.

Picture a store that adds a "clean URLs" plugin to tidy those links, and a week later sees Meta's reported purchases drop while sales hold steady. The plugin did exactly what it promised. It removed the parameter before anything had stored it. This guide is about getting the tidy URLs without that side effect.

What is fbclid?

Meta calls it the ClickID: "a Meta-generated parameter that is passed with the URL of an advertiser's website when a user clicks an ad on Facebook and/or Instagram" (Meta for Developers). It's a click ID, like Google's gclid and TikTok's ttclid, and it looks like this:

https://yourbrand.com/offer?utm_source=facebook&fbclid=IwAR2F4...

Meta's spec is explicit that the value is case sensitive: don't lowercase, trim or re-encode it before you use it.

Where you'll see fbclid

Meta's documentation talks about ad clicks, but in practice the parameter also appears on ordinary links clicked on Facebook, which is why a URL copied from a friend's post often ends in ?fbclid=. So its presence tells you the visitor came from Meta, not that you paid for the visit.

Illustration: a megaphone panel and a share panel both point to the same page, which carries a small tag
Ad clicks and shared links can both arrive with an fbclid. Only your UTM tags tell them apart.

That's the reason I never use "has an fbclid" as the definition of paid Meta traffic in a report. Tag your ads with UTM parameters and let those say what was paid; let the fbclid do its one job, which is matching.

fbclid and the _fbc cookie

The fbclid only lives in the URL. When the Meta pixel runs on the page, it saves the click in a first-party cookie on your domain called _fbc, in this format:

fb.1.1759140000000.IwAR2F4...
  • fb: always the same prefix.
  • 1: the subdomain index, 0 for com, 1 for yourbrand.com, 2 for www.yourbrand.com.
  • 1759140000000: when the cookie was created, as Unix time in milliseconds.
  • The rest is the fbclid, unchanged.

Meta says to set it with a 90-day expiration. Next to it, the pixel sets _fbp, a browser ID in a similar format that exists for every visitor, click or no click.

Illustration: an address bar with a tag, an arrow to a cookie jar, then to a server and a check mark
URL parameter, then cookie, then your server, then Meta. The fbclid has to make every hop.
_fbc (fbc)_fbp (fbp)
HoldsThe fbclid of the clickA random browser ID
Exists whenThe visitor arrived with an fbclidThe pixel ran, for any visitor
Set byThe Meta pixel, or you from the URLThe Meta pixel
Sent in Conversions API asuser_data.fbcuser_data.fbp

If there's no _fbc cookie but the URL had an fbclid, Meta tells you to build the fbc value yourself from the URL, with the current time as the creation time. That's the case that matters most when the pixel is blocked or hasn't loaded yet.

Should you remove fbclid from your URLs?

There are fair reasons to. Every click gets a different value, so pages cached by their full URL miss the cache, shared links look messy, and reports that use the full page URL split one page into hundreds of rows. Safari already removes known tracking parameters from links in Private Browsing (WebKit, Safari 17).

The rule is the order. Capture first, then clean. Let the page load with the parameter, let the pixel set _fbc and let your server store the value, then remove it from the address bar with history.replaceState. A redirect or a plugin that strips it before the page runs is the store in the example above.

How to send fbclid back through the Conversions API

The Conversions API sends events from your server, so a purchase reaches Meta even when the browser pixel doesn't fire. The fbclid travels in it as fbc.

  1. Store the click on arrival. Save the fbclid from the URL, plus the _fbc and _fbp cookies once the pixel has set them, with the visit or session on your server.
  2. Build fbc if the cookie is missing. fb.1., the time in milliseconds, a dot and the fbclid, exactly as it came.
  3. Send the purchase. Post a Purchase event to /{pixel_id}/events with fbc, fbp, hashed customer data, the IP address and user agent, the value and currency, and an event_id.
  4. Deduplicate with the pixel. If the pixel also fires Purchase, give it the same event ID (eventID in the pixel). Meta discards the later copy when event name and ID match within 48 hours and generally keeps the first one it received (Meta for Developers).

The event, as your server would send it:

{
  "data": [{
    "event_name": "Purchase",
    "event_time": 1759140000,
    "event_id": "order-1042",
    "action_source": "website",
    "event_source_url": "https://yourbrand.com/offer",
    "user_data": {
      "fbc": "fb.1.1759139000000.IwAR2F4...",
      "fbp": "fb.1.1759138000000.1234567890",
      "em": ["sha256 of the lowercased email"],
      "client_ip_address": "203.0.113.7",
      "client_user_agent": "Mozilla/5.0 ..."
    },
    "custom_data": { "currency": "USD", "value": 89.00 }
  }]
}

How long a click can earn credit is a separate question from how long the cookie lives. Meta credits a purchase within the attribution setting on your ad set, counted in days after the click or view (Meta Business Help Center), not for the full 90 days of the cookie. Compare Meta's numbers with your store's over the same window, or the gap will look like a tracking problem when it isn't.

fbclid vs gclid vs ttclid

fbclidgclidttclid
PlatformMeta (Facebook, Instagram)Google AdsTikTok
Appears onClicks from Facebook and Instagram, paid or sharedAd clicks with auto-tagging onTikTok ad clicks
Browser cookie_fbc, 90 days_gcl_aw, 90 daysttclid
Sent back asfbc in the Conversions APIA conversion uploaduser.ttclid in the Events API

The fbclid is the only one of the three that needs reformatting before it goes back. The other two are sent as they arrived. If you're wiring all three, the gclid guide covers offline uploads and the ttclid guide covers TikTok's Events API.

fbclid in ElasticFunnels

When we built the Meta connection into ElasticFunnels, we made the server keep the click, because a cookie that has to survive until the thank-you page is the part of this chain most likely to be missing when you need it.

  • Captured on arrival. Pages hosted on ElasticFunnels store the fbclid from the landing URL, and the _fbc and _fbp cookies, with the visit. When there's no _fbc cookie, ElasticFunnels builds fbc from the fbclid.
  • Sales go to Meta server-side. With the Meta Ads integration connected and conversion postbacks on, a sale on a visit that came from a Meta click reaches your pixel through the Conversions API as a Purchase, with fbc, fbp, the order value and currency, the IP address and user agent, and the customer's email, name, phone and address hashed with SHA-256.
  • No app review needed for the Conversions API connection. If you'd rather not connect with Facebook Login, the Meta Conversions API connection needs only a pixel ID and a system user token.

Every feature is on every plan.

My take
  • Never install a URL-cleaning plugin without checking what it strips and when. Cleaning after capture is fine; cleaning before it costs you attribution you'll never see go missing.
  • Don't count fbclid visits as paid traffic. Your UTMs know what you paid for; the fbclid doesn't.
  • If you only have time to send one thing server-side to Meta, send the purchase with fbc and a hashed email. That's the event the algorithm is buying.
  • When Meta and your store disagree, check the attribution setting before you blame the pixel.

The fbclid looks like junk in a URL, and most advice treats it that way. Keep it long enough to send it back, then clean up all you like.

FAQ

fbclid FAQ

What is fbclid?

fbclid is the Facebook Click ID, a parameter Meta adds to your website's URL when someone clicks a link or ad on Facebook or Instagram. The Meta pixel turns it into the _fbc cookie, and the value goes back to Meta with your conversions so they can be matched to the click.

What does fbclid mean in a URL?

It means the visitor arrived by clicking a link on Facebook or Instagram. It doesn't change the page. It is there so a later conversion can be matched to that click, and you can remove it once it has been stored.

What are fbc and fbp?

Two first-party cookies the Meta pixel sets on your domain. _fbc holds the click ID, in the format fb.1.creation time.fbclid, and exists only after a click with an fbclid. _fbp is a browser ID set for every visitor. Both are sent with Conversions API events as fbc and fbp to improve matching.

How long does the _fbc cookie last?

Meta's guidance is to set it with a 90-day expiration. How long a click can earn credit for a purchase is set separately, by the attribution setting on your ad set.

Should I remove fbclid from my URLs?

Only after it has been captured. Removing it before the pixel or your server stores it breaks attribution for that visit. Stripping it later, with a redirect or history.replaceState, is fine and keeps shared links, caches and analytics reports clean.

Does every URL with fbclid come from a Facebook ad?

No. Meta adds it to links clicked on Facebook and Instagram, and you will also see it on ordinary shared links. Use UTM parameters on your ads to tell paid clicks from organic ones.

What is the difference between fbclid and gclid?

Same job, different platform. fbclid is Meta's click ID and goes back through the Conversions API as fbc. gclid is Google Ads' click ID, added by auto-tagging and used for conversion tracking and offline conversion uploads.

Send Meta the sales its pixel misses

Every feature on every plan. Start a 14-day free trial.