Loading tutorials…
Loading tutorials…
Meta's response to iOS 14.5 — Aggregated Event Measurement — caps you at 8 prioritized events per domain and forces you to rank them. Get the order wrong and your most important conversion (Purchase) silently drops out of iOS reporting.
Who this is forAnyone running Meta Ads with iOS traffic (which is most US/UK/AU advertisers) who hasn't formally configured AEM. If your domain isn't verified or your event priority order is the default Meta picked, you're losing iOS attribution unnecessarily.
What you'll need
Step 1
AEM cannot be configured for an unverified domain. Domain verification proves you own the site and is required before any event prioritization.
Business Manager → Brand Safety → Domains → Add domain. Enter your bare domain (example.com, not www. or https://).
Choose verification method. Three options: Meta-tag (paste into <head>), DNS TXT record (add via your registrar), HTML file upload.
Meta-tag is fastest for most sites. Copy the <meta name='facebook-domain-verification' content='xyz' /> tag. Paste into your site's <head> section.
For WordPress: use a plugin like Insert Headers and Footers, OR edit header.php directly. For Shopify: Online Store → Themes → Edit code → theme.liquid → paste in <head>.
After pasting/saving, return to Business Manager → click "Verify Domain." For meta-tag method, verification usually completes within 10 minutes. For DNS, it can take 24-48 hours.
Confirm the domain shows 'Verified' status. Without this, every subsequent step is blocked.
Step 2
Events Manager → Aggregated Event Measurement → Configure Web Events. This is where you set your 8 prioritized events per domain.
business.facebook.com/events_manager2 → left sidebar → Aggregated Event Measurement.
Select the verified domain. You should see a list of "Configured events" (defaulted by Meta) with priority slots 1-8.
If you have not configured anything, Meta has likely auto-assigned events based on observed traffic. The defaults are rarely optimal for any specific business.
For Shopify stores with the channel app: defaults are usually Purchase, AddToCart, ViewContent, PageView in some order. Audit these.
For lead-gen sites: defaults may not include Lead at all if your pixel has not fired it yet. You may need to fire a test Lead event before AEM sees it as configurable.
Step 3
Slot 1 is most important. For iOS users, only the HIGHEST-priority event that fires in a session counts. Put your money event at slot 1.
Rule: the highest-priority event in a user's session is the one Meta uses for iOS attribution. Lower-priority events that fire after it are ignored on iOS.
For e-commerce: Purchase = slot 1. InitiateCheckout = slot 2. AddToCart = slot 3. ViewContent = slot 4. PageView at the bottom (slot 7-8).
For lead-gen: Lead = slot 1. CompleteRegistration = slot 2. Subscribe = slot 3. PageView at slot 7-8.
For SaaS: StartTrial or Subscribe = slot 1. CompleteRegistration = slot 2. Lead = slot 3.
Important: if you sell variable-value products, configure 'value optimization' on the Purchase event (toggle in the event row). This lets Meta optimize for higher-value purchases on iOS — without it, all iOS Purchases are treated as equal value.
Step 4
If your event has variable values (e.g., Purchase with $20-$2000 range), enable value optimization in the AEM event configuration.
Inside the AEM configuration, click the event (e.g., Purchase). A side panel opens.
Toggle "Use value" or "Configure value sets." Meta will group your purchases into 4 value buckets (e.g., $0-50, $50-150, $150-500, $500+).
On iOS, Meta will optimize toward your highest-value bucket if your campaign uses 'Value' optimization (in Ads Manager → ad set → Optimization → Value).
Without this, iOS Purchases are reported as binary events (happened/didn't) with no value differentiation. Premium product campaigns suffer the most.
Note: Value Optimization requires 30+ purchases per week per ad set to function. If your volume is below that, stick with standard Purchase optimization until you have more data.
Step 5
After reordering events, save changes. There is a 72-hour propagation window during which existing campaigns may underperform.
Click "Save changes" at the top of the AEM page.
A warning may appear: 'Pausing campaigns for 72 hours' — this is normal. Meta needs to re-train its iOS attribution model with the new event priorities.
During the 72 hours, your campaign performance reports may show unusual fluctuation. Don't make optimization changes during this window — wait it out.
After 72 hours, monitor performance: did the highest-priority event's reported conversion volume increase on iOS-heavy ad sets? If yes, your prioritization is working. If no, you may have misordered.
Re-evaluate priorities every 3 months. As your business mix changes (e.g., expanding from one product to many), the right slot 1 may change.
Step 6
Wait 7-14 days, then check Events Manager → Overview → filter by 'iOS' to verify your priority event is firing correctly for iOS users.
Events Manager → Overview → filter the date range to "Last 14 days."
In the events list, click the event you set as slot 1 (e.g., Purchase). Expand → look for "Breakdown by Operating System."
iOS volume should be roughly proportional to your traffic mix. If iOS Purchase events are <30% of total Purchases while iOS traffic is ~60% of all traffic, AEM is leaking attribution.
Also check Diagnostics tab for any AEM-specific warnings like 'Event priority order has been modified' or 'Event not in your prioritized list.'
If specific iOS attribution is critical, also enable Meta's 'iOS 14.5+ campaign reporting' filter in Ads Manager → Reports → Customize Columns.
Step 7
If you sell across multiple domains or have a checkout on a different subdomain, each needs its own AEM configuration.
Each verified domain in Business Manager has its OWN 8-event cap. If you run example.com (marketing) and shop.example.com (checkout), they each get their own AEM priority list.
Cross-domain Purchase tracking: ensure your Purchase event fires from the checkout subdomain AND that the subdomain is verified (or inherits verification from the bare domain).
For headless commerce: if Purchase fires on api.example.com, verify api.example.com separately AND configure its AEM event list.
If you sell through both your own site AND a third-party marketplace (e.g., Amazon, Etsy), Meta only tracks events from domains you own and verify. Third-party events come through Marketplace APIs separately.
Common mistakes
Skipping domain verification
What goes wrong: AEM cannot be configured. iOS attribution defaults to Meta's auto-prioritization which is usually wrong for your business. You lose 15-30% of iOS conversion reporting and don't know why.
How to avoid: Business Manager → Brand Safety → Domains → verify your domain. Use meta-tag method for fastest results.
Leaving PageView at slot 1
What goes wrong: If PageView is your highest-priority event, every iOS user's session attribution is 'PageView' — Purchase, Lead, Subscribe never count. Reported iOS Purchase volume drops by 70-90%. Advantage+ thinks iOS doesn't convert and de-prioritizes it.
How to avoid: Reorder events: Purchase at slot 1, InitiateCheckout at 2, AddToCart at 3, ViewContent at 4, PageView at slot 7-8. PageView should NEVER be in the top 3.
Not enabling Value Optimization on variable-value Purchase events
What goes wrong: On iOS, every Purchase is treated as the same value. A $1000 customer counts the same as a $20 customer. Value-based bidding (Maximize Conversion Value, Target ROAS) optimizes toward cheap conversions, not valuable ones. Reported ROAS drops 20-40% on iOS.
How to avoid: In the AEM event configuration → click Purchase → toggle "Use value." Meta will create 4 value buckets and optimize toward higher-value purchases on iOS.
Configuring AEM, then never re-checking after Meta UI changes
What goes wrong: Meta has redesigned Events Manager 3 times in the last 18 months. Settings can quietly reset to defaults during UI migrations. AEM event order reverts to Meta's auto-pick. iOS attribution silently degrades. You only notice when CPA climbs.
How to avoid: Set a quarterly calendar reminder: open Events Manager → AEM → confirm event order matches your priorities. Takes 5 minutes.
Trying to fit 12 events into 8 slots
What goes wrong: You spread priority across too many events (ViewProduct, ViewCategory, AddToCart, RemoveFromCart, InitiateCheckout, AddPaymentInfo, Purchase, RegisterUser, Subscribe, Lead, etc.). iOS uses only the top 8 — the rest are invisible on iOS regardless of priority.
How to avoid: Pick the 8 events that matter most. Group similar events (ViewProduct + ViewCategory → one ViewContent event). Cut anything not central to optimization or reporting.
Making AEM changes during a peak ad spend window
What goes wrong: Meta pauses iOS attribution for 72 hours after AEM changes. If you change priorities Friday before a big weekend campaign, you fly blind on iOS attribution for 3 critical days. Spend continues, performance reporting is broken.
How to avoid: Make AEM changes Monday or Tuesday. Wait through the 72-hour propagation window before peak campaigns. Document changes so future-you knows when to re-evaluate.
Recap
Done — what's next
How to set up the Meta Conversions API (and actually deduplicate events)
Read the next tutorial
Hand it off
AEM is one of those settings that's invisible when it works and silently catastrophic when it doesn't. A Meta Ads specialist on EverestX will configure AEM correctly the first time, set Value Optimization, and audit it quarterly. The setup is usually included in a CAPI + pixel install engagement — typical bundle: $200-300 at $14-16/hr.
See specialist rates
AEM is Meta's response to iOS 14.5's App Tracking Transparency. Apple limits Meta to receiving a single event per user session for iOS users who opted out of tracking. Meta aggregates that into 8 priority slots per domain to give advertisers some flexibility. The cap is a hard Apple-level constraint, not a Meta choice.
Standard order: 1) Purchase, 2) InitiateCheckout, 3) AddToCart, 4) ViewContent, 5) Search, 6) AddToWishlist, 7) Subscribe (newsletter), 8) PageView. Adjust based on your funnel — e.g., if "AddToWishlist" matters less than "Lead" for your business, swap them.
When enabled on Purchase, Meta groups your purchases into 4 value buckets (calibrated from your historical data). On iOS, Meta reports which bucket the purchase fell into instead of the exact dollar value. Value-based bid strategies (Maximize Conversion Value, Target ROAS) use these buckets to optimize for higher-value customers.
If your checkout is on checkout.shopify.com (Shopify's default), no — events fire from your main domain. If you have a custom checkout subdomain (shop.example.com), yes — verify that subdomain separately and configure its AEM event list.
Three usual causes: (1) CAPI isn't running, so server-side iOS events aren't being recovered; (2) Advanced Matching is off, so Meta can't link iOS users to profiles; (3) you made AEM changes <72 hours ago and propagation hasn't completed. Check each in order.
Meta Ads
The browser pixel alone loses 20-30% of conversions on iOS. CAPI sends events from your server to Meta, recovering most of it. Three install paths: Shopify-native, server-side GTM, and direct API. We cover all three.
Meta Ads
Shopify deprecated the old pixel-in-theme.liquid path. The modern install runs through the Facebook & Instagram by Meta channel app and pulls in CAPI for free. Here's how to do it without double-counting purchases.
Meta Ads
Your pixel was working last month. Now Events Manager shows zero. Or it shows events but not the ones you need. This is the diagnostic sequence specialists run.
Meta Ads
DIY Meta Ads is the right call until it isn't. This is the honest framework: when the cost of self-managing exceeds the cost of hiring, and how to tell which side you're on right now.