Fix guide · Framer · easy · about 20 min

Duplicate Meta Pixel events on Framer

For the finding “Duplicate Meta events”. Not on Framer? See the general guide.

What this means

The same event (for example PageView or Lead) was sent twice for the same pixel ID within about a second, or the same pixel was set up twice on the page. On Framer, this nearly always means the pixel is installed in two places.

Why it costs you money:

This is about two identical browser events. A browser event plus a server (Conversions API) event for the same action is expected; Meta merges those when they share an event ID.

How to confirm it yourself

  1. Open your published site in a private (incognito) window, open developer tools (F12), go to Network and filter by facebook.com/tr.
  2. Accept cookies.
  3. In each request’s payload, id is the pixel ID and ev is the event name. Two requests with the same id and same ev at almost the same moment are a duplicate. Different id values mean two different pixels, which is a separate question.
  4. Click to another page of the site and watch again: each page change should produce one PageView per pixel ID, not two.

Meta Ads Data Advisor (Meta’s Chrome extension, formerly Meta Pixel Helper) reports “Duplicate Pixel code” as a common setup error, and the Test events tool in Meta Events Manager will show the event twice.

How to fix

  1. Check every place a Framer site can load the pixel:

    • Project Settings > Custom Code. Each piece of custom code is a separate script with its own placement and page selection, so check every script, including ones limited to selected pages. Look for fbevents.js and fbq('init'.
    • Embeds and code components on the canvas, including components bought from the marketplace.
    • Plugins that add tracking (for example Pixelary or PixelFlow). These install a browser pixel for you; if you also pasted Meta’s base code, you have two.
    • Your GTM container, whether GTM is loaded by Framer’s Cookie Banner or by a snippet in custom code.
  2. Check that GTM is installed only once. Framer’s Cookie Banner loads GTM itself when its GTM ID property is filled in. If a GTM snippet is also pasted into custom code, remove that snippet. If you see gtm.js requests for two different container IDs, check both containers: if each has a Meta tag, every event is sent twice.

  3. Keep one installation, remove the rest. If you use a tracking plugin or a Conversions API tool, the usual choice is to keep that and remove the manual base code from custom code and GTM. If you manage everything in GTM (for example together with Framer’s Cookie Banner), remove the pixel from custom code and from plugins.

  4. Check how page views are sent. Framer switches between pages without a full page reload (the address changes through the browser’s History API). The Meta Pixel already sends a PageView by itself on these changes. A second PageView on every page change comes from something that sends it again, for example:

    • a GTM PageView tag on a History Change trigger;
    • a custom code script that calls fbq('track', 'PageView') and is set to Run on every page visit.

    Remove the extra one. Also check GTM for two tags sending the same event on overlapping triggers.

  5. Publish the Framer site (and GTM, if you changed it).

Pixelary is built by the same team as IsPixelWorking. Our check treats every tool the same way: a duplicate is a duplicate, whichever tool caused it.

Common causes

How to verify the fix

  1. In a private window on the published site, accept cookies and check that each event appears once per pixel ID: on page load, after clicking a button that sends an event, and after moving to another page.
  2. Re-run the check on IsPixelWorking. The issue should be gone.

Sources