Facebook Pixel Integration
Facebook Pixel is a tracking code for ads in Facebook/Instagram. It allows creating retargeting audiences, tracking conversions, and optimizing ad campaigns for target actions.
Basic Code Installation
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}
(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'PIXEL_ID');
fbq('track', 'PageView');
</script>
Standard E-commerce Events
// View product
fbq('track', 'ViewContent', {
content_ids: [product.id],
content_name: product.name,
content_type: 'product',
value: product.price,
currency: 'RUB'
});
// Add to cart
fbq('track', 'AddToCart', {
content_ids: [product.id],
content_type: 'product',
value: product.price,
currency: 'RUB'
});
// Begin checkout
fbq('track', 'InitiateCheckout', { value: cartTotal, currency: 'RUB' });
// Purchase
fbq('track', 'Purchase', {
value: orderTotal,
currency: 'RUB',
content_ids: orderItems.map(i => i.productId),
content_type: 'product',
num_items: orderItems.length
});
Conversions API (Server-side Integration)
Browser-based Pixel loses ~30% of events due to ad blockers. Conversions API sends events directly from the server:
Http::withToken(env('FACEBOOK_ACCESS_TOKEN'))
->post("https://graph.facebook.com/v19.0/{$pixelId}/events", [
'data' => [[
'event_name' => 'Purchase',
'event_time' => time(),
'action_source' => 'website',
'user_data' => [
'em' => [hash('sha256', strtolower($user->email))], // hash it!
'ph' => [hash('sha256', normalizePhone($user->phone))]
],
'custom_data' => [
'value' => $order->total / 100,
'currency' => 'RUB',
'order_id' => $order->id
],
'event_id' => "purchase_{$order->id}" // deduplication with browser pixel
]]
]);
Event Deduplication
To prevent double-counting events (browser + server) — use event_id. Identical event_id from browser and server → Facebook counts one event.
Setup time: 1 business day with Conversions API.







