Advertising
Meta Events Manager settings: what to check on a Shopify store
Nine settings decide whether your pixel data is trustworthy, and Shopify's app turns on almost none of them for you. This is the order to check them in, what the right answer is, and which default quietly costs you money.
The short answer
Open your dataset in Events Manager, go to Settings, and check nine things. The four that matter most are advanced matching (should be fully on), first-party cookies (on), automatic code-less event tracking (off if you already send proper events), and the domain allow list (should exist at all).
Almost every store we look at has the first two right, because Shopify's Facebook channel sets them up. Almost none has the last two right, because nothing sets them up and nothing complains.
Check these, in this order
Settings tab of the dataset, top to bottom. This takes about five minutes once and rarely needs revisiting.
- Advanced matching ("Automatic website matching"): ON, with every parameter enabled - email, phone, first and last name, gender, city/region/postcode, country, date of birth, external ID. Each one is another way Meta can tie an event to a real account. There is no downside to enabling all of them; they are hashed before they leave the browser.
- First-party cookies: ON. This is what lets the _fbp browser cookie survive, and _fbp is one of the strongest match keys a server-side event can carry. Turning it off degrades matching for both the pixel and the Conversions API.
- Connected partners: your store platform should be listed. If it is not, the platform's own channel is not sending and something else is.
- Ad account sharing: the ad account running your campaigns must appear under Sharing. A dataset receiving events perfectly but shared with no ad account cannot optimise or attribute anything.
- Dataset category: set it. Meta uses the category to decide what information you are permitted to share through its tools. Left as None, you are relying on a default nobody chose.
- "Track events automatically without code": OFF, if you already send standard events properly. See below - this is the one that surprises people.
- Traffic permissions: create an allow list containing your real domains. Without one, any domain can send events into your dataset.
- Automatic events / "Add AI-recommended missing events": off unless you know you need it, for the same reason as the code-less tracking above.
- Dataset Quality API token: optional, but generating one gives you event match rate as a metric you can actually monitor rather than a number you glance at in the UI.
The setting that quietly double-counts you
"Track events automatically without code" lets Meta infer events from your page metadata and button text - it will decide, on its own, that a button reading Add to basket is an AddToCart. It exists for stores with no proper instrumentation, where an inferred event is better than nothing.
On a Shopify store whose channel already sends real standard events, it is not better than nothing. It is a second source of the same events, inferred rather than measured, with no shared event id - so Meta cannot deduplicate it against the real one. You get inflated upper-funnel counts and a bidding model optimising against them.
It defaults to on. Nothing warns you. If your AddToCart count has always looked flattering relative to your actual cart adds, check this first.
Good to know
- The same reasoning applies to any second sender: a tracking app, a tag manager container and a native channel all sending Purchase will be counted three times unless they share an event id, which across vendors they never do.
The domain allow list nobody creates
With no allow list, your dataset accepts events from any domain that references your pixel id. Events Manager will eventually surface this as a prompt to confirm domains that recently started sending data, and the list usually contains more entries than people expect.
On a Shopify store the legitimate ones typically include your storefront domain, your myshopify.com domain, and two that look wrong but are not: shop.app and native_document, which are the Shop app's in-app browser. Add those rather than blocking them, or you will lose real Shop app conversions.
Anything you do not recognise is worth understanding before you allow it. A pixel id is not a secret - it is visible in your page source - so an unfamiliar domain sending events is a real possibility, not a theoretical one.
Two warnings worth acting on
The Actions tab is where Meta reports quality problems, and two of them are worth treating as real rather than as advisory noise.
"Server sending expired fbclid value in fbc parameter" means something is sending a click id older than the 90 days Meta still attributes. It is almost always a sender taking the click id from a shopper's FIRST visit rather than the one that converted - a long consideration window turns a recent order into an expired click. The fix belongs in the sender: drop the parameter past 90 days rather than sending it, since the event still carries every other match key and an expired click id buys no attribution while costing dataset quality.
A low rate of deduplication means your browser and server events are not collapsing into one. That number is the single best early warning that two tools are both sending, and it moves before your reported conversions look obviously wrong.
What Vibel checks for you
Vibel reads the dataset's own quality signals and compares reported conversions against the Shopify order ledger, so a gap between what a platform claims and what actually sold shows up as a number rather than a suspicion.
It does not change these settings for you. They live in your Meta account, they affect data you are responsible for, and several of them are judgment calls about what you are willing to share - so they stay a decision you make, with the list above to make it quickly.
More in Advertising
Run your store on Vibel.
Connect your channels, set up your costs, and see true profit live per SKU and per channel.
Get started free