Over-attribution

Fix over-attribution on Meta & Google Ads

BooleanMaths pairs server-side tracking with flexible Conversion APIs, to send only real, qualified conversions back to your ad platforms. So Meta and Google optimise on what actually happened in your Shopify store.

Problem

Why does over attribution happen?

There are two main sources of over attribution on Meta / Google - Source Contamination and Event Duplication

If Orders that never came from Ads get credited to them, or if individual orders get counted multiple times. The real impact of Ads is never measured.

Basically, your Ads end up optimising on randomised data that doesn't match the actual revenue in your Shopify store.

Source Contamination

Meta and Google can't handle complex marketing setups on their own.

If you are running WhatsApp, Email, Affiliates, App or have a large share of Organic orders - all these orders will also feed the same Shopify data layer that Meta and Google are tracking.

As a result, orders that never came from ads will get credited to them.

Event Duplication

Conversion APIs make it possible for any 3rd-party tool to start sending events on your behalf.

Unfortunately, most brands end up trying a combination of these without looking at the long-term impact.

So a brand might be using a combination of

  1. Facebook and Instagram sales channel app with CAPI turned on,

  2. CAPI running from the third-party checkout and also

  3. CAPI running from their android/ios app,

  4. Legacy pixels or scripts setup by some agency that are still firing events to your Meta pixel.

This can result in multiple data streams going into the same pixel.

Solution

A clean data flow, end to end

The BooleanMaths tracking setup composes of three layers so every Ad platform sees only real, qualified conversions - each assigned to the channel that actually earned it.

Track

Server-side tracking

Every conversion is captured server-side, recovering the 10–15% that browser tracking loses.

Nothing real slips through the cracks.

Attribute

Multi-channel attribution

Each order is assigned to the channel that originated it. An Identity graph enriched by third-party checkout recovery and cross-browser attribution - build complete User Joruneys.

Filter

Flexible Conversion APIs

Send back only qualified conversions.

Filter out sources - App / POS / others
Filter user journeys - All Orders vs Meta Attributed

Together, this clean data flow fixes over-attribution on Meta and Google - the platforms finally optimize on what your Shopify already knows.

Proof

The impact of a clean tracking setup, in real numbers

We are comparing the same brand, before and after the tracking fix.

The older messy tracking setup was replaced by a clean BooleanMaths signal.

Duplicate events and non-ad-journey orders are filtered out and BooleanMaths sends a single clean signal, Meta reads what Shopify actually shows. The brand's true performance shows up where the noise had been drowning it.

With cleaner signal Meta's Ad targeting improves & the marketing team is able to make faster and more confident scaling decisions.

The result is a significant increase in Ad performance.

Before - messy tracking

Duplicate events and draft / non-journey orders flood Meta.

Meta reports 576 orders on 245 real and a 3.60 ROAS on 1.58 reality - optimising on noise.

After - clean tracking with BooleanMaths

One deduplicated, filtered signal.

Meta reports 2,189 orders against 2,156 real and a 2.88 ROAS against 2.77 - reading reality, optimising correctly.

2.83 → 3.54

Blended true ROAS

The cleanest read on combined marketing performance — up ~25% once the platforms stop optimising on noise.

2.35× → 1:1

Meta signal accuracy

Meta went from claiming 576 orders on 245 real, to reporting 2,189 against 2,156 real — a near-perfect match.

1.58 → 2.77

Real Meta ROAS

A clean signal lifts true Meta ROAS ~75%. Blended true ROAS (3.54) now even beats what the platforms report (2.99).

Figures from the same brand's BooleanMaths dashboard - the broken-tracking month compared with the most recent 90 days.

Over-attribution

Fix over-attribution on Meta & Google Ads

BooleanMaths pairs server-side tracking with flexible Conversion APIs, to send only real, qualified conversions back to your ad platforms. So Meta and Google optimise on what actually happened in your Shopify store.

Problem

Why does over attribution happen?

There are two main sources of over attribution on Meta / Google - Source Contamination and Event Duplication

If Orders that never came from Ads get credited to them, or if individual orders get counted multiple times. The real impact of Ads is never measured.

Basically, your Ads end up optimising on randomised data that doesn't match the actual revenue in your Shopify store.

Source Contamination

Meta and Google can't handle complex marketing setups on their own.

If you are running WhatsApp, Email, Affiliates, App or have a large share of Organic orders - all these orders will also feed the same Shopify data layer that Meta and Google are tracking.

As a result, orders that never came from ads will get credited to them.

Event Duplication

Conversion APIs make it possible for any 3rd-party tool to start sending events on your behalf.

Unfortunately, most brands end up trying a combination of these without looking at the long-term impact.

So a brand might be using a combination of

  1. Facebook and Instagram sales channel app with CAPI turned on,

  2. CAPI running from the third-party checkout and also

  3. CAPI running from their android/ios app,

  4. Legacy pixels or scripts setup by some agency that are still firing events to your Meta pixel.

This can result in multiple data streams going into the same pixel.

Solution

A clean data flow, end to end

The BooleanMaths tracking setup composes of three layers so every Ad platform sees only real, qualified conversions - each assigned to the channel that actually earned it.

Track

Server-side tracking

Every conversion is captured server-side, recovering the 10–15% that browser tracking loses.

Nothing real slips through the cracks.

Attribute

Multi-channel attribution

Each order is assigned to the channel that originated it. An Identity graph enriched by third-party checkout recovery and cross-browser attribution - build complete User Joruneys.

Filter

Flexible Conversion APIs

Send back only qualified conversions.

Filter out sources - App / POS / others
Filter user journeys - All Orders vs Meta Attributed

Together, this clean data flow fixes over-attribution on Meta and Google - the platforms finally optimize on what your Shopify already knows.

Proof

The impact of a clean tracking setup, in real numbers

We are comparing the same brand, before and after the tracking fix.

The older messy tracking setup was replaced by a clean BooleanMaths signal.

Duplicate events and non-ad-journey orders are filtered out and BooleanMaths sends a single clean signal, Meta reads what Shopify actually shows. The brand's true performance shows up where the noise had been drowning it.

With cleaner signal Meta's Ad targeting improves & the marketing team is able to make faster and more confident scaling decisions.

The result is a significant increase in Ad performance.

Before - messy tracking

Duplicate events and draft / non-journey orders flood Meta.

Meta reports 576 orders on 245 real and a 3.60 ROAS on 1.58 reality - optimising on noise.

After - clean tracking with BooleanMaths

One deduplicated, filtered signal.

Meta reports 2,189 orders against 2,156 real and a 2.88 ROAS against 2.77 - reading reality, optimising correctly.

2.83 → 3.54

Blended true ROAS

The cleanest read on combined marketing performance — up ~25% once the platforms stop optimising on noise.

2.35× → 1:1

Meta signal accuracy

Meta went from claiming 576 orders on 245 real, to reporting 2,189 against 2,156 real — a near-perfect match.

1.58 → 2.77

Real Meta ROAS

A clean signal lifts true Meta ROAS ~75%. Blended true ROAS (3.54) now even beats what the platforms report (2.99).

Figures from the same brand's BooleanMaths dashboard - the broken-tracking month compared with the most recent 90 days.

Over-attribution

Fix over-attribution on Meta & Google Ads

BooleanMaths pairs server-side tracking with flexible Conversion APIs, to send only real, qualified conversions back to your ad platforms. So Meta and Google optimise on what actually happened in your Shopify store.

Problem

Why does over attribution happen?

There are two main sources of over attribution on Meta / Google - Source Contamination and Event Duplication

If Orders that never came from Ads get credited to them, or if individual orders get counted multiple times. The real impact of Ads is never measured.

Basically, your Ads end up optimising on randomised data that doesn't match the actual revenue in your Shopify store.

Source Contamination

Meta and Google can't handle complex marketing setups on their own.

If you are running WhatsApp, Email, Affiliates, App or have a large share of Organic orders - all these orders will also feed the same Shopify data layer that Meta and Google are tracking.

As a result, orders that never came from ads will get credited to them.

Event Duplication

Conversion APIs make it possible for any 3rd-party tool to start sending events on your behalf.

Unfortunately, most brands end up trying a combination of these without looking at the long-term impact.

So a brand might be using a combination of

  1. Facebook and Instagram sales channel app with CAPI turned on,

  2. CAPI running from the third-party checkout and also

  3. CAPI running from their android/ios app,

  4. Legacy pixels or scripts setup by some agency that are still firing events to your Meta pixel.

This can result in multiple data streams going into the same pixel.

Solution

A clean data flow, end to end

The BooleanMaths tracking setup composes of three layers so every Ad platform sees only real, qualified conversions - each assigned to the channel that actually earned it.

Track

Server-side tracking

Every conversion is captured server-side, recovering the 10–15% that browser tracking loses.

Nothing real slips through the cracks.

Attribute

Multi-channel attribution

Each order is assigned to the channel that originated it. An Identity graph enriched by third-party checkout recovery and cross-browser attribution - build complete User Joruneys.

Filter

Flexible Conversion APIs

Send back only qualified conversions.

Filter out sources - App / POS / others
Filter user journeys - All Orders vs Meta Attributed

Together, this clean data flow fixes over-attribution on Meta and Google - the platforms finally optimize on what your Shopify already knows.

Proof

The impact of a clean tracking setup, in real numbers

We are comparing the same brand, before and after the tracking fix.

The older messy tracking setup was replaced by a clean BooleanMaths signal.

Duplicate events and non-ad-journey orders are filtered out and BooleanMaths sends a single clean signal, Meta reads what Shopify actually shows. The brand's true performance shows up where the noise had been drowning it.

With cleaner signal Meta's Ad targeting improves & the marketing team is able to make faster and more confident scaling decisions.

The result is a significant increase in Ad performance.

Before - messy tracking

Duplicate events and draft / non-journey orders flood Meta.

Meta reports 576 orders on 245 real and a 3.60 ROAS on 1.58 reality - optimising on noise.

After - clean tracking with BooleanMaths

One deduplicated, filtered signal.

Meta reports 2,189 orders against 2,156 real and a 2.88 ROAS against 2.77 - reading reality, optimising correctly.

2.83 → 3.54

Blended true ROAS

The cleanest read on combined marketing performance — up ~25% once the platforms stop optimising on noise.

2.35× → 1:1

Meta signal accuracy

Meta went from claiming 576 orders on 245 real, to reporting 2,189 against 2,156 real — a near-perfect match.

1.58 → 2.77

Real Meta ROAS

A clean signal lifts true Meta ROAS ~75%. Blended true ROAS (3.54) now even beats what the platforms report (2.99).

Figures from the same brand's BooleanMaths dashboard - the broken-tracking month compared with the most recent 90 days.

Activate your Marketing Data with BooleanMaths

Background

Activate your Marketing Data with BooleanMaths

Background

Activate your Marketing Data with BooleanMaths

Background