> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upstackdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Complete Guide to Fixing Duplicate Events and Double-Counted Conversions

> How to check if Meta, Google Ads or TikTok is counting your purchases twice, which counts are normal, and how to turn off other apps sending the same events.

## How do I check if Meta is counting my purchases twice?

Compare the browser and server events for **Purchase** in Meta Events Manager.

1. Go to [Meta Events Manager](https://business.facebook.com/events_manager) and click your dataset.
2. On the **Overview** tab, click **Purchase**.
3. In the chart, compare the two lines. Dark blue is browser events. Light blue is server events.

| What you see | What it means |
| - | - |
| Both lines are about the same height | Purchases are not duplicated. |
| The server line is slightly higher | Normal. Upstack also sends purchases the browser missed. |
| One line is about twice the other | Another app or tag is sending purchases to the same dataset. See [How do I turn off Facebook and Instagram data sharing in Shopify?](#how-do-i-turn-off-facebook-and-instagram-data-sharing-in-shopify) |

## How do I compare Meta purchases with my Shopify orders?

1. In Meta Events Manager, click **Purchase** and note the total for yesterday.
2. Divide the total by two. Meta lists a browser copy and a server copy of each purchase.
3. In Shopify Admin, click **Orders** and count yesterday's orders.
4. Compare the two numbers. They should be close.

Use Events Manager for this check, not Ads Manager. Ads Manager only shows purchases it attributes to ads.

## I use Restricted Category Mode. How do I check for duplicates?

Restricted Category Mode sends server events only, so Events Manager shows no browser line. Compare Meta's **Purchase** total with your Shopify orders without dividing by two.

## Which counts are normal and not duplicates?

| What you see | Why |
| - | - |
| Each event appears twice in Meta, once from the browser and once from the server | Both copies have the same event ID. Meta counts them as one event. |
| Initiate checkout is higher than Shopify's checkout count | Ad platforms count every checkout started. Shopify counts unique visitors. |
| Add to cart is higher than Shopify's add to cart count | Upstack counts every add to cart. Shopify counts sessions with an add to cart. |
| Meta, Google Ads and Klaviyo all report the same order | Each platform reports the orders it attributes to itself. This is attribution, not duplicate events. |
| Meta shows "Low rate of pixel events covered by Conversions API" | No action needed. See [Low rate of pixel events covered by Conversions API](https://docs.upstackdata.com/destinations/catalog/meta-capi/low-rate-of-pixel-events-covered-by-conversions-api-in-meta-events-manager.md). |

## How do I turn off Facebook and Instagram data sharing in Shopify?

Turn off data sharing in the Facebook & Instagram sales channel. This is the most common cause of duplicate purchases in Meta. Your catalog and shop stay connected.

1. In Shopify Admin, click **Sales channels → Facebook & Instagram**.
2. Click the **Settings** tab.
3. Under **Share data**, click **Change**.
4. Turn **Share data** off.
5. Click **Save**.

Full walkthrough: [Turn off Facebook and Instagram data sharing](https://docs.upstackdata.com/destinations/catalog/meta-capi/how-to-disable-facebook-and-instagram-data-sharing-in-shopify.md)

## How do I check that Facebook and Instagram data sharing is still off?

Data sharing can turn back on when someone reconnects the Facebook & Instagram app.

1. In Shopify Admin, click **Settings → Customer events**.
2. Check that Facebook & Instagram shows **Disconnected**.
3. Check that **UpstackData** shows **Connected**.

## How do I turn off TikTok, Snapchat and Pinterest data sharing in Shopify?

Each sales channel sends its own events. Turn off data sharing for each one you have installed:

* [Turn off TikTok data sharing](https://docs.upstackdata.com/destinations/catalog/tiktok/how-to-disable-tiktok-data-sharing-in-shopify.md)
* [Turn off Snapchat data sharing](https://docs.upstackdata.com/destinations/catalog/snapchat/how-to-disable-snapchat-data-sharing-in-shopify.md)
* [Turn off Pinterest data sharing](https://docs.upstackdata.com/destinations/catalog/pinterest/how-to-disable-pinterest-data-sharing-in-shopify.md)

## How do I turn off other tracking apps sending to my Meta pixel?

1. In Shopify Admin, click **Settings → Apps and sales channels**.
2. Find any other tracking app, such as Elevar, Stape, Triple Whale Sonar, Blotout, Omega, WeTracked or Analyzify.
3. Turn off the app's Meta connection.
4. Uninstall the app if you no longer use it. Turning off its theme embed isn't enough, because apps can also send events from Shopify's servers.

Full walkthrough: [Turn off your old tracking](https://docs.upstackdata.com/guides/migrations/disable-existing-tracking.md). Moving from Elevar: [Elevar to Upstack](https://docs.upstackdata.com/guides/migrations/elevar-to-upstack.md)

## How do I disconnect Meta's Conversions API Gateway?

Upstack already sends your server events, so the Conversions API Gateway sends a second copy.

1. In Meta Events Manager, click your dataset.
2. Click the **Settings** tab.
3. Find **Conversions API Gateway** in the connected integrations.
4. Disconnect it.

If Meta suggests setting up the Conversions API Gateway, don't set it up.

## How do I pause Meta tags in Google Tag Manager?

1. In [Google Tag Manager](https://tagmanager.google.com), open your container.
2. Click **Tags**.
3. Pause every tag that sends events to Meta. Include tags in a server container.
4. Click **Submit**, then **Publish**. Paused tags keep running until you publish.

## How do I turn off Meta tracking in my checkout or page builder?

Checkout, funnel and landing page tools can send their own Meta purchase. In tools such as Checkout Champ, Funnelish, SamCart, GemPages or Replo, turn off the Meta pixel or Facebook integration.

Setup guides: [Checkout Champ](https://docs.upstackdata.com/resources/how-to-set-up-upstack-data-on-checkout-champ.md), [Funnelish](https://docs.upstackdata.com/resources/how-to-set-up-upstack-data-on-funnelish.md), [Replo](https://docs.upstackdata.com/resources/how-to-set-up-upstack-data-on-replo.md)

## How do I find Meta pixel code in my Shopify theme?

1. In Shopify Admin, click **Online Store → Themes**.
2. On your live theme, click the **…** menu, then **Edit code**.
3. Open `theme.liquid` and search for `fbq` and `facebook.net`.
4. Search the other theme files for your Meta Pixel ID.
5. Ask your developer to remove or comment out each Meta pixel snippet.
6. Click **Save**.

## How do I stop Google Ads counting purchases twice?

Keep one primary purchase action. Google Ads counts each primary purchase action separately.

1. In [Google Ads](https://ads.google.com), click **Goals → Summary**.
2. Click **Edit goals**.
3. Expand **Conversion action optimization**.
4. Set your Upstack purchase action to **Primary**. If you use server-side delivery, this is **Purchase - Upstack (Server-side)**.
5. Set every other purchase action to **Secondary**.
6. Click **Save**.

Full walkthroughs: [Switch the Upstack purchase goal to primary](https://docs.upstackdata.com/destinations/catalog/google-ads/how-to-enable-the-google-ads-upstack-purchase-goal-and-switch-to-primary-optimization-goal.md), [Set up Google Ads server-side conversions](https://docs.upstackdata.com/destinations/catalog/google-ads/how-to-set-up-google-ads-server-side-conversions-api-in-upstack-data.md)

## Why does Meta count one order twice when I use two pixels or ad accounts?

Meta doesn't match purchases across pixels or ad accounts. If campaigns on both get credit for the same order, Ads Manager counts it twice.

To fix it:

1. In Ads Manager, open each ad set that uses your old pixel.
2. Change its **Dataset** to the pixel Upstack sends to.
3. Pause campaigns that still use the old pixel.

If both pixels need to run for a while, set the attribution setting on both sets of campaigns to **7-day click**.

## How do I stop purchases from checkout, upsell or subscription apps counting twice?

These apps can create extra orders in Shopify, and each order is sent as a purchase.

1. Turn off the app's own Meta integration. See [How do I turn off other tracking apps sending to my Meta pixel?](#how-do-i-turn-off-other-tracking-apps-sending-to-my-meta-pixel)
2. Contact Upstack support with the app's name and an example order number. We can stop that app's orders from being sent as purchases.

## Why does add to cart fire twice?

Bundles, slide-out carts and free gift apps can make Shopify report one add to cart as two. Upstack sends add to cart events as Shopify reports them.

To check:

1. Install the [Upstack Data Pixel Helper](https://docs.upstackdata.com/guides/pixel-helper/how-to-install-upstack-data-pixel-helper.md).
2. On a product page, click **Add to cart** once.
3. Click the Pixel Helper icon and count the `add_to_cart` events.

If more than one fires, ask your developer or your cart app's support to fix how the product is added to the cart.

## What happens to my numbers after I fix duplicates?

* Purchases and ROAS in your ad platforms go down.
* Check Meta Events Manager again after 24 to 72 hours.
* Wait 7 to 10 days before comparing Google Ads conversions.

***

**Still stuck?** Contact [support@upstackdata.com](mailto:support@upstackdata.com) with your Pixel ID and a description of the issue. We typically respond within a few hours.

## Related guides

> [card] [Complete Guide to Troubleshooting Your Upstack Data Tracking Pixel](https://docs.upstackdata.com/troubleshooting/complete-guide-to-troubleshooting-your-upstack-data-tracking-pixel.md)
>
> Check the Shopify app, the Pixel Helper, your destinations and Meta Events Manager.

> [card] [Disable existing tracking](https://docs.upstackdata.com/guides/migrations/disable-existing-tracking.md)
>
> Turn off other tracking apps and pixels.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.