Generate or retrieve a Conversions API access token from Events Manager in Meta Business Suite; this is distinct from a standard Marketing API token.
Construct each event object with event_name, event_time (Unix timestamp), and event_source_url; add user_data with as many hashed identifiers (em, ph, fn, ln, etc.) as available.
Hash all PII fields with SHA-256 (lowercase, normalized) before including them in user_data — Meta does not accept plaintext PII.
POST to https://graph.facebook.com/v{API_VERSION}/{PIXEL_ID}/events with the data array (up to 1,000 events per request), access_token, and optionally test_event_code during testing.
Review the response's events_received count and any fbtrace_id for debugging; use the Test Events tool in Events Manager to validate payload structure.
Implement deduplication by including event_id in both the browser pixel event and the server event so Meta can deduplicate overlapping signals.
Known gotchas
event_time must be within 7 days of the current time — events outside this window are rejected silently or flagged with low quality scores.
Sending events without any user_data identifiers results in very low match rates and reduced optimization signal; always include at least one hashed identifier.
The test_event_code parameter should be removed in production — events sent with a test code are not used for optimization or reporting.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp