The Meta Pixel (fbevents.js) runs in the browser and sets Meta’s fbp and fbc cookies. The same events are also sent from PixelRelay’s servers through the Conversions API. Both copies carry one event ID, so Meta keeps one and uses whichever arrived — the browser copy when the tag ran, the server copy when it didn’t.
Storefront events are sent from both the browser tag and the server. Checkout events come from Shopify checkout, and the purchase from the Shopify order.
| Meta event | Sent by | |
|---|---|---|
| Page view | PageView | Browser tag; server copy if Track page views server-side is on |
| Product view, cart view | ViewContent | Browser tag and server |
| Search | Search | Browser tag and server |
| Add to cart | AddToCart | Browser tag and server |
| Checkout started, payment info | Checkout events | PixelRelay’s Web Pixel in Shopify checkout |
| Purchase | Purchase | Server, from Shopify’s order webhook |
When a shopper lands from a Meta ad, the storefront captures fbc (or builds it from fbclid in the URL) and fbp, and writes them onto the cart. The order carries them into the server-side Purchase event, so Meta can match the sale to the click even if fbevents.js never loaded on the thank-you page.
fbevents.js loads from Meta’s own CDN and will be blocked for some visitors. Those sessions still produce server events, because storefront events post to your own domain and the purchase comes from Shopify. What the shopper loses is the browser cookie, which is why the click ID captured from the landing URL matters.
scripts override exists for unusual setups, but connected IDs are the default.Each guide covers one platform or layer of a Hydrogen setup. The Hydrogen quickstart has the full install, step by step.