Event Model
Meta Ads uses a combination of standard events and custom events. Standard events unlock optimization features, dynamic ads, and better attribution. Use consistent event names between Facebook Pixel and Conversions API to enable automatic deduplication.
Core Standard Events to Implement
- PageView: Fires on every page load; base event for all tracking.
- ViewContent: Product or content detail page views with content_ids, content_type, content_name, and value.
- AddToCart: Item added to shopping cart with content_ids, content_type, content_name, currency, and value.
- InitiateCheckout: User begins checkout process with num_items, content_ids, currency, and value.
- AddPaymentInfo: Payment method selected during checkout with content_ids, currency, and value.
- Purchase: Completed transaction with content_ids, content_type, currency, value, num_items, and contents array.
- Lead: Lead form submission or contact request with content_name, currency, and value.
- CompleteRegistration: Account creation or user registration with content_name, currency, and value.
- Search: Site search performed with search_string, content_category, and content_ids.
Required Parameters by Event
E-commerce Events
- content_ids: Array of product SKUs or IDs.
- content_type: "product" or "product_group".
- content_name: Product name or description.
- currency: ISO 4217 currency code (USD, EUR, etc.).
- value: Total value of the event in the specified currency.
- contents: Array of objects with id and quantity for Purchase events.
- num_items: Total number of items in the cart or transaction.
Lead & Engagement Events
- content_name: Descriptive name for the content or action.
- currency: Currency code if assigning a value.
- value: Estimated or assigned value for optimization.
- status: Boolean or string indicating completion status.
Custom Events
Use custom events for business-specific actions that don't fit standard events. Custom events can be used in custom conversions and for audience building but do not unlock automatic optimization features.
- Name custom events descriptively (e.g., "DownloadWhitepaper", "VideoCompleted", "ProductComparison").
- Include parameters for segmentation (product_category, video_title, comparison_ids).
- Document custom events in your tracking plan with expected parameters and use cases.
Advanced Matching Parameters
Improve Event Match Quality by sending hashed user data with every event. Hash using SHA-256 before sending to Meta.
- em: Email address (hashed).
- ph: Phone number in E.164 format (hashed).
- fn: First name (lowercase, hashed).
- ln: Last name (lowercase, hashed).
- ct: City (lowercase, hashed).
- st: State or province (lowercase, hashed).
- zp: ZIP or postal code (hashed).
- ge: Gender (single character: "m" or "f", hashed).
- db: Date of birth in YYYYMMDD format (hashed).
- external_id: Your internal user ID (hashed).
Event Deduplication
When sending the same event from both pixel and Conversions API, include identical event_name and event_id to allow Meta's deduplication logic to count the event only once.
- event_id: Unique identifier for the event (same across pixel and CAPI).
- event_time: Unix timestamp in seconds when the event occurred.
- event_source_url: The URL where the event occurred (for web events).
- action_source: "website", "app", "phone_call", "email", "physical_store", etc.
Payload Rules
- Always include currency and value for events used in campaign optimization (Purchase, Lead, AddToCart).
- Use content_ids consistently across events to enable product catalog matching for dynamic ads.
- Send event_id for all high-value events to enable deduplication between pixel and CAPI.
- Include user_data object with at least email and phone (hashed) for improved match quality.
Naming & Conventions
- Use PascalCase for standard event names (e.g., PageView, AddToCart, Purchase).
- Use descriptive names for custom events without spaces or special characters.
- Align parameter names with Meta's standard parameters where applicable.
- Document any custom parameters in your tracking plan with expected data types and formats.
QA Notes
- Use Facebook Pixel Helper extension to verify pixel firing, event names, and parameters in real-time.
- Check Events Manager Test Events tab for both pixel and CAPI events before production launch.
- Validate Event Match Quality score (aim for 7.0+ for best performance) by reviewing Diagnostics in Events Manager.
- Confirm Aggregated Event Measurement setup prioritizes your most important conversion events for iOS campaigns.
- Test deduplication by sending the same event from pixel and CAPI with matching event_id, then verify only one event appears in Events Manager.
- Screenshot key event payloads in Pixel Helper and Test Events for documentation and compliance records.