IP Management for CAPI Events
This guide explains the three IP address modes in Pixel Plus and helps you choose the right one. The setting is in the CAPI configuration section but affects all tracking channels — both Pixel (browser) and CAPI (server-side).
Why IP Management Is Tricky
The internet uses two IP formats: IPv4 (192.168.1.1) which still dominates global traffic, and IPv6 (2001:0db8:...) which Facebook increasingly recommends for better matching.
The core problem: when the Facebook Pixel JavaScript loads in the visitor's browser, it automatically captures their IP (usually IPv4) — this is completely beyond the module's control. If you configure the module to send IPv6, Facebook compares:
- Pixel automatic capture:
203.0.113.5(IPv4) - Module custom parameters + CAPI:
::ffff:203.0.113.5(IPv6 format)
The mismatch triggers diagnostic warnings even when everything is configured correctly.
Warnings appear not because something is broken, but because Facebook's own automatic IP capture (which you cannot control) differs from the IP format the module sends.
Your Three Options
Option 1: Raw IP (Recommended)
Sends the visitor's IP exactly as captured by the server — no conversion. All sources (Pixel automatic capture, custom parameters, CAPI) show the same IP.
- ✅ All sources match — no mismatch warnings
- ✅ Accurate representation of the visitor's actual IP
- ⚠️ Facebook may show "Consider using IPv6" (informational only)
Option 2: IPv6 If Available
Attempts to detect the visitor's IPv6 address via a real network test. Falls back to IPv4 if unavailable (which is the case for ~60% of visitors globally).
Your domain needs an AAAA DNS record for IPv6 detection to work. Without it, detection always fails and falls back to IPv4.
- ✅ Only uses IPv6 when genuinely available
- ✅ Graceful fallback — behaves like Raw IP for most visitors
- ⚠️ Most visitors still use IPv4, so similar warnings as Raw IP for the majority
Option 3: Force IPv6 (Avoid)
Attempts IPv6 detection; if it fails, converts the IPv4 address to IPv6-mapped format (::ffff:192.168.1.1). This guarantees all IPs are sent in IPv6 format, but creates intentional mismatches with the Pixel's automatic capture.
- ❌ Creates mismatches with Pixel's automatic IPv4 capture
- ❌ Often generates more diagnostic warnings, not fewer
- ❌ IPv6-mapped addresses aren't true IPv6 connections