Meta Ads Conversion Tracking: CAPI, iOS14 & Event Optimization
Master Facebook/Meta Ads conversion tracking with Conversion API setup, iOS14 workarounds, and event parameter optimization for accurate data.
Accurate tracking is the foundation of profitable Meta Ads. Here's how to set up bulletproof conversion tracking in 2025.
Why Conversion Tracking Matters
Without accurate tracking, you cannot:
- Optimize campaigns for purchases
- Know which ads drive sales
- Target the right audience
- Measure true ROAS
- Scale profitably
With proper tracking:
- Algorithm finds real buyers
- Accurate performance data
- Better targeting
- 30-50% improvement in ROAS
The iOS14 Challenge
What Changed
Before iOS14:
- 100% conversion tracking
- 28-day attribution window
- Perfect optimization data
After iOS14 (2021):
- Only 15-25% of iOS users opted in to tracking
- Maximum 7-day attribution window
- 40-60% of conversions missed
- Delayed reporting (up to 72 hours)
The Reality:
Your ads might be 2-4x more profitable than Facebook reports, but the algorithm cannot see the full picture.
The Solution: Conversion API
Conversion API (CAPI) sends data directly from your server:
- Bypasses browser limitations
- No cookie dependence
- Captures 90-95% of conversions
- Better attribution matching
- Essential for accurate tracking in 2025
Facebook Pixel vs Conversion API
Facebook Pixel (Browser Tracking)
How It Works:
- JavaScript code on website
- Tracks via cookies
- User must accept tracking
- Blocked by iOS14 and ad blockers
Advantages:
- Easy installation
- Automatic page tracking
- No server required
Limitations:
- Misses 40-60% of iOS conversions
- Ad blockers prevent tracking
- Cookie restrictions
Conversion API (Server Tracking)
How It Works:
- Sends events from your server
- Direct connection to Facebook
- Bypasses browser restrictions
- Complements pixel data
Advantages:
- Tracks 90-95% of conversions
- Not affected by iOS14
- Bypasses ad blockers
- Faster data processing
Recommended Setup: Both Together
Use Pixel AND Conversion API simultaneously for maximum accuracy. Facebook automatically deduplicates events.
Setting Up Facebook Pixel
Shopify Installation (Easiest)
Method 1: Native Integration
1. Shopify Admin → Settings → Apps and Sales Channels
2. Install Facebook & Instagram channel
3. Connect Facebook account
4. Select your Pixel
5. Pixel installs automatically
Events tracked automatically:
- PageView
- ViewContent
- AddToCart
- InitiateCheckout
- Purchase
Custom Website Installation
Steps:
1. Facebook Events Manager → Data Sources → Pixels
2. Create new Pixel
3. Copy Pixel ID
4. Add pixel code to website head section
5. Add event tracking code on key pages
6. Verify with Facebook Pixel Helper extension
Essential Events to Track
Standard Events (Priority Order):
1. **Purchase** - Order completed (MOST IMPORTANT)
2. **InitiateCheckout** - Checkout started
3. **AddToCart** - Item added to cart
4. **ViewContent** - Product page viewed
5. **AddPaymentInfo** - Payment details entered
6. **Search** - Site search used
7. **Lead** - Form submitted
Setting Up Conversion API
Shopify (Automatic Setup)
Enable Server-Side Tracking:
1. Shopify Admin → Settings → Customer Events
2. Facebook → Manage
3. Toggle ON "Maximum data sharing"
4. Save changes
This automatically sends server-side events with customer data for better attribution.
Custom Website Setup
Option 1: Facebook Business Extension (WordPress)
1. Install Facebook for WordPress plugin
2. Connect Facebook account
3. Enable Conversion API
4. Enter API access token
5. Configure events
Option 2: Manual Server Integration
Steps:
1. Facebook Events Manager → Settings → Conversions API
2. Generate Access Token
3. Integrate API into your server code
4. Send events server-side (Purchase, AddToCart, etc)
5. Include customer data (email, phone, name)
6. Test events in Events Manager
**Important:** Include event_id parameter to deduplicate pixel and CAPI events.
Event Deduplication
Why It Matters
Without deduplication:
- Pixel tracks purchase: $79.99
- CAPI tracks same purchase: $79.99
- Facebook counts BOTH: $159.98 (WRONG)
With deduplication:
- Both send same unique event_id
- Facebook recognizes duplicate
- Counts purchase once: $79.99 (CORRECT)
How to Implement
Generate unique ID for each event:
- Use format: order_NUMBER_timestamp
- Send identical event_id via pixel and CAPI
- Facebook automatically deduplicates
Example event_id: "order_12345_1704567890"
Enhanced Match (Advanced Matching)
What Is Enhanced Match?
Sends hashed customer data to improve attribution:
- Email address
- Phone number
- First name
- Last name
- City, state, ZIP, country
Benefits:
- 20-30% better attribution
- Improved audience matching
- Better lookalike audiences
- More accurate conversion reporting
Setup Methods
Automatic Enhanced Match:
1. Events Manager → Pixel Settings
2. Toggle ON "Automatic Advanced Matching"
3. Facebook scrapes form fields automatically
Manual Enhanced Match (Better):
Send customer data explicitly when available:
- Hash sensitive data (email, phone, names)
- Send with pixel init
- Include in server events
**Privacy Note:** Always hash personally identifiable information (PII) before sending.
Event Parameter Optimization
Why Parameters Matter
Without parameters:
- Facebook knows someone purchased
- Cannot optimize for specific products
- No dynamic retargeting possible
With rich parameters:
- Facebook optimizes for best products
- Dynamic product ads work perfectly
- Better audience insights
- Product-level reporting
Essential Parameters
ViewContent Event:
- content_name (product name)
- content_category (product category)
- content_ids (SKU/product ID array)
- content_type ("product")
- value (product price)
- currency ("USD")
AddToCart Event:
- All ViewContent parameters
- contents array (id, quantity, price)
Purchase Event (MOST CRITICAL):
- content_ids (all purchased product IDs)
- contents (all items with quantity and price)
- value (total order value BEFORE tax/shipping)
- currency
- num_items (total quantity)
Parameter Best Practices
Value Parameter:
- Use order subtotal (exclude tax and shipping)
- Include exact decimal amounts
- Match your ad account currency
Content IDs:
- Use actual SKU or product ID
- Must match product catalog exactly
- Include variant IDs if applicable
Currency:
- Use ISO 3-letter code (USD, EUR, GBP)
- Must match ad account currency
iOS14 Workarounds
Aggregated Event Measurement (AEM)
What It Is:
Facebook limits iOS tracking to 8 conversion events per domain.
Setup:
1. Events Manager → Aggregated Event Measurement
2. Verify your domain ownership
3. Rank your top 8 events by priority
Recommended Priority Ranking:
1. Purchase (MOST IMPORTANT)
2. InitiateCheckout
3. AddToCart
4. ViewContent
5. AddPaymentInfo
6. Lead
7. CompleteRegistration
8. Subscribe
Higher priority events get better data on iOS devices.
Domain Verification
Required for iOS tracking:
1. Business Manager → Business Settings
2. Brand Safety → Domains
3. Add your domain
4. Verify via HTML file, meta tag, or DNS
**Critical:** Without domain verification, you can only track 1 event on iOS.
Attribution Window Changes
New Limits:
- 7-day click attribution (maximum)
- 1-day view attribution (maximum)
Old Standard:
- 28-day click
- 7-day view
Impact:
Reported conversions drop 20-40% even though actual sales remain the same. Trust your Shopify/website analytics more than Facebook reporting.
Testing Your Tracking
Verification Tools
1. Facebook Pixel Helper (Chrome Extension)
- Shows if pixel fires correctly
- Displays events in real-time
- Identifies errors instantly
2. Events Manager Test Events
- Send test events with unique test code
- Verify parameters populate correctly
- Check both pixel and CAPI events appear
3. Events Manager Diagnostics
- Monitor event match quality score
- Aim for "Good" or "Great" rating
- Review error messages and warnings
What to Check
Pixel Installation:
- Fires on all pages
- Correct pixel ID
- No JavaScript errors
- Events trigger at right times
Event Parameters:
- All required fields populated
- Values match actual prices
- Currency correct
- Product IDs match catalog
Conversion API:
- Server events sending successfully
- Event match quality "Good" or better
- Deduplication working (no double counting)
- Customer data included
Common Tracking Mistakes
Mistake 1: Wrong Purchase Value
**WRONG:** Include tax and shipping in value
**RIGHT:** Use subtotal only (before tax/shipping)
Mistake 2: Purchase Event on Wrong Page
**WRONG:** Fires on cart or checkout page
**RIGHT:** Fires ONLY on thank-you/confirmation page
Mistake 3: Missing Event IDs
**WRONG:** No deduplication between pixel and CAPI
**RIGHT:** Both send identical unique event_id
Mistake 4: Incorrect Content IDs
**WRONG:** Use product names as content_ids
**RIGHT:** Use actual SKU/product ID that matches catalog
Mistake 5: No Domain Verification
**Impact:** Limited to 1 iOS event instead of 8
**Fix:** Verify domain immediately in Business Manager
Advanced Tracking Strategies
Value-Based Optimization
Create custom events for high-value purchases:
- Track standard Purchase event for all orders
- Also track HighValuePurchase for orders over $150
- Optimize campaigns specifically for high-value conversions
- Better AOV and ROAS
Category-Specific Tracking
Track product categories separately:
- Include detailed content_category in events
- Create custom events by category
- Build category-specific audiences
- Enable precise retargeting
Engagement Tracking
Track high-intent behaviors:
- Time on site over 2 minutes
- Viewed 3+ products
- Multiple add-to-cart actions
- Create warm audiences from engaged users
Troubleshooting Guide
Events Not Firing
Check:
- Pixel code on every page
- Correct pixel ID
- JavaScript console for errors
- Disable ad blockers for testing
Low Event Match Quality
Fix:
- Enable Enhanced Match
- Send more customer data
- Hash PII correctly
- Verify data format (lowercase, no spaces)
CAPI Events Missing
Check:
- Access token validity
- Server API connectivity
- Correct pixel ID in code
- Unix timestamp format
- Review error messages in Events Manager
iOS Conversions Not Tracking
Fix:
- Verify domain ownership
- Configure AEM with Purchase as #1 priority
- Enable Conversion API (critical)
- Wait 72 hours for data processing
Performance Benchmarks
Good Tracking Setup Shows:
Event Match Quality:
- "Good" or "Great" rating
- 90%+ match rate
- Most events include customer data
Pixel Health:
- All standard events firing
- Parameters populated correctly
- No errors or warnings
CAPI Performance:
- Similar event volume to pixel
- Good deduplication rate
- Fast processing time
The Bottom Line
Bulletproof tracking requires:
✅Facebook Pixel installed on all pages
✅All standard events tracking with parameters
✅Conversion API sending server events
✅Event deduplication via unique event_ids
✅Enhanced Match enabled and working
✅Domain verified for iOS14 compliance
✅Aggregated Event Measurement configured
✅Regular monitoring and testing
With perfect tracking:
- Facebook algorithm optimizes correctly
- You see accurate ROAS data
- Attribution improves 30-50%
- You confidently scale winners
- You outperform competitors
Proper tracking is not optional in 2025. It's the difference between guessing and knowing what works.
**Need a conversion tracking audit?** Book a free consultation to review your setup.

Written by Vince Servidad
E-commerce Ad Management Specialist with $26M+ in managed ad spend. I work exclusively with online stores to scale profitably through Facebook and Google Ads.
Want More Marketing Insights?
Get weekly tips, strategies, and case studies delivered to your inbox.
Need help with Facebook Ads?
Get hands-on support from a performance marketing consultant based in the Philippines.