Join me and Kevin Brkal, a digital marketing expert with over 20 years of experience, for a webinar where we'll explore which AI features in Meta and Google Ads actually help or hurt performance, and which strategies work best to maximize ad results.

📅 Tuesday, October 27 | 2 PM ET

💻 Online | Free to Attend

Last week we covered the BFCM AI MCP connection playbook, how to hook up Meta, Google, and Klaviyo to help you with real-time campaign monitoring during the exact week

This week, we’ve pulled together everything I've written this year about events tracking and special cases you need to pay attention to when setting up events tracking for BFCM preparation.

1. Ads Manager and Events Manager Are Not the Same Tool

Most people spend all their time in Ads Manager and almost never check Events Manager when in fact if your Events Manager tracking is wrong then your Ads Manager’s numbers will be wrong too.

Events Manager tracks your tracking quality how accurately and completely your pixel and server-side integrations are capturing customer behavior on your site and sending it to Meta for targeting algorithm.

It is not your ad performance dashboard. That is one Ads Manager.

Read the Overview chart

Click into your pixel and you land on Overview. The chart at the top shows event volume over your selected window, one line per event: PageView, ViewContent, AddToCart, InitiateCheckout, Purchase.

You're looking for consistent volume and a logical funnel. PageView should be highest, tapering down to Purchase.

Check the Integration column

Next to each event type, you'll see one of three labels:

  • Conversions API - server-side events are reaching Meta. This is what you want for Purchase specifically.

  • Meta Pixel only - your purchase data comes entirely from the browser, which means it's you're likely losing 20 to 40 percent of your conversions here.

  • Multiple (or both) - browser and server-side sources are both active.

If you are using Pixel and CAPI, you need to send events with matching event IDs so Meta can deduplicate them but if you are already using Aimerce it handles that for you beforehand just using server-side events on their own is totally fine. Read more here: https://aimerce.notion.site/Meta-Browser-Events-Are-Not-Required-with-Aimerce-33d58628800680088ea1eb7b15da8051

2. Common diagnostics in Events Manager you will see

"Pixel hasn't received events recently" - This means your Pixel is not firing. Check that it's still installed correctly and that a Shopify update or app change hasn't ruined it, or whether you simply had no traffic. The trick is to select “TODAY” when you check the pixel data.

"Event match quality can be improved" - This is Meta's way of saying your EMQ score is lower than it could be. Click through to see which parameters you are missing which almost always it comes down to not enough email addresses, so collect more through popups, quizzes or newsletter signups.

"Possible duplicate events detected" - Meta is seeing the same Purchase counted more than once. For Meta to deduplicate, the browser and server versions of an event need the same event_name and the same event_id.

“Invalid Purchase/Add to Cart value” - It’s mostly caused by $0 purchases and products. Make sure you remove those events. Aimerce has a simple toggle that can let you skip $0 Purchase (Exchange) Events.

3. What Your EMQ Score Actually Means

Event Match Quality (EMQ) is Meta's 0 to 10 score for how well it can match your events to real Facebook and Instagram users. It's the single most important number in Events Manager for most Shopify brands.

A client recently told me he needed a 9.3 Purchase EMQ to know his pixel was working. That's not how it works.

You’ve already got most of the customer data at the Purchase level by default. The real thing that bumps up your EMQ score is the fbc or click ID, which basically just shows how many of your sales came from Facebook ads. A high score doesn't automatically mean your pixel is "healthy," it usually just means you're driving a ton of traffic through paid ads.

It’s honestly way healthier for your business when only 20% of your sales come from paid ads. It shows you've actually built a brand that can stand on its own, instead of just surviving off ad spend.

This is the healthy ranges by event would look like:

Event

Healthy

Concerning

Purchase

8.8–9.3

Below 8.0

AddToCart / InitiateCheckout

7.5–8.5

Below 7.0

ViewContent / PageView

6.0–7.5

Below 5.5

Higher-funnel events naturally score lower because you have less customer data there. A PageView EMQ of 6.5 is fine but a Purchase EMQ of 6.5 is not.

Across customers who fixed broken tracking and took their EMQ from around 4 to 9, we've seen:

  • Cost per acquisition drop by an average of 18%

  • Customer match rates increase by 24%

  • Average ROAS improve by 22%

  • About $2,100 a month in ad spend efficiency at $1,000 daily spend

The Technical Foundation of High EMQ

Meta prioritizes certain parameters to find your customers. You should focus on high-priority data at crucial touchpoints like email capture and checkout:

Parameter

Priority

Email

High

Click ID (fbc)

High

Country

Medium

Phone number

Medium

External ID (a unique ID from the advertiser)

Medium

Browser ID (fbp)

Medium

Lead

Low

First name

Low

Last name

Low

City

Low

Zip or Postal Code

Low

Turning on Automatic Advanced Matching

To get the most out of Meta’s tracking, go to your Events Manager pixel settings and turn on Automatic Advanced Matching. It uses hashed customer info like emails and phone numbers to make your event matching way more accurate. Doing this helps you capture more conversions and lets you build much better custom audiences.

4. What to check in your event details

Click into a Purchase event in Events Manager to see the full event data. If any of these are missing or wrong, you know exactly where your EMQ and attribution problems are.

Parameter

What to confirm

event_name

Purchase, identical on the browser and server versions

event_id

Matches between the Pixel and Conversions API, so Meta can deduplicate

action_source

Set for every event; "website" for online orders (required by Meta)

event_source_url

The page where the purchase happened (required for website events)

client_user_agent

The shopper's browser user agent, not hashed (required for website events)

client_ip_address

The shopper's IP address, not hashed

email (em)

The most important match key. Lowercase and trim before hashing

phone (ph)

Digits only, with country code, before hashing

fbc (click ID)

Ties the purchase back to the Meta ad click. Not hashed

fbp (browser ID)

The browser cookie that links events in a session. Not hashed

external_id

A stable ID from your side, like the customer ID. Helps link repeat purchases

name, city, zip, country

Weak alone, but they lift matching when email or phone is missing. Normalize before hashing

value

A number, not a string, with no currency symbol. Equals the order total

currency

Three-letter uppercase code (USD, GBP, EUR) matching your store

contents

One entry per product with id, quantity and item_price. The id must match your Meta catalog

5. Special cases you need to pay attention to when setting up events tracking

If a tracking company never asks any questions about your website, I don't think they are doing the job right. Tracking is never just installing software. It's a lot about handling all the corner cases on a website properly.

Here are the few corner cases.

  • Email popups - native platform popups (Klaviyo, Omnisend) auto-associate with events; custom-built ones might not

  • Custom ad landing pages - off Shopify theme or headless setups need direct clickID capture, or attribution breaks completely

  • Third-party checkout - needs the "aimPK" order note passed back to Shopify to preserve clickID

  • Subscriptions/rebills - decide whether renewals should count as new conversions (Aimerce can strip them while keeping first-time subscriptions, and adds OTP/Subscribe/Renewal events)

  • Quiz - only matters for tracking if it captures personal data

All five get covered during Aimerce onboarding. If you're unsure where your setup lands, ask before Black Friday.

6. New: Meta added Profit and pLTV optimization

Meta added two optimization options next to standard Value which are Profit and pLTV:

  1. Profit, Aimerce handles end to end: we read cost-per-item off your Shopify variants, calculate net_revenue (subtotal minus discount minus cost), and attach it to the Purchase event. Your only job is keeping that cost field filled in across your catalog.

  2. pLTV is different: the prediction model is yours to build and validate. We handle delivery, real-time or via a delayed AppendValue call within 7 days. Both live in the Aimerce dashboard under Advanced Tools, and both need Meta to have granted your account the feature.

Both promise better targeting, but they're more technical than Meta makes them sound. (Full breakdown)

Optimization

Bids on

Requires

Best for

Value

Order revenue

value + currency

Any store

Profit

Order profit after costs

net_revenue on 3+ values, 200+ conversions/28 days

Brands with different margins across products

pLTV

Predicted long-term value

predicted_ltv, 5+ distinct values (3x spread), 100+ conversions/week x4

Subscription/high-repeat brands

Not every account has these yet. You may need to ask Meta to turn them on. To check, open the conversion value dropdown in an Ads Manager campaign. Until you qualify, Profit sits grayed out with a warning icon, and it can take up to 7 days to activate once your data starts flowing.

Aimerce handles the data for both. For Profit, we read the cost per item on your Shopify variants, calculate net revenue per order (subtotal minus discount minus cost), and send it as net_revenue. you just need to make sure your product costs are up to date. For pLTV, we plug right into your existing model and send those values in real-time or via a delayed AppendValue call. You can manage both features easily from the Advanced Tools section of your Aimerce dashboard.

Both live in the Aimerce dashboard under Advanced Tools.

If you haven't opened Events Manager in the last 30 days, do this:

  1. Compare Purchase event volume to actual Shopify orders (should be within 5%)

  2. Check Purchase EMQ (below 8.0 = enrichment gap)

  3. Clear any "Issue detected" flags in Diagnostics

  4. Walk every corner case above that applies to your store

  5. If you're going after Profit or pLTV, confirm cost-per-item coverage, your conversion volume against the thresholds, and that Meta has given your account access.

If you're using Aimerce, we automatically handle:

  • Real-time event processing

  • Parameter formatting and validation

  • Deduplication across all events

  • Express checkout tracking

  • Cross-device user stitching

  • Edge case optimization

This playbook is part of our BFCM Klaviyo & Meta Academy, a free series for DTC brands running through mid-December. New sessions drop every week.

✌️Here to help you win,

Yiqi

Reply

Avatar

or to participate