Facebook Pixel and Conversions API
TrueMetriks sends all your events and data back to Facebook so it optimizes your ads and gets you more sales. Here is how to set it up.
Prefer to watch instead of read? Every step on this page also has a short video. They are bundled together at Facebook video guides - watch top-to-bottom to set everything up without reading.
Connect Facebook
Connecting Facebook is a Meta OAuth flow with five screens after you click the button in TrueMetriks. The whole thing takes about 90 seconds.
Video guide
Prefer to read along? The full step-by-step is below.
Step 1 - Click Connect Facebook in TrueMetriks
In the TrueMetriks dashboard, open Settings > Ad integrations, pick the Facebook tab, and click the highlighted Connect Facebook button.
A Meta OAuth popup opens. If your browser blocks popups, you will get an inline prompt to allow it - allow it and click Connect Facebook again.
Don't revoke this app in your Facebook Business Settings later. If you do, your Conversions API events stop firing until you re-run this flow. Use the Disconnect button in this card instead - it cleans up on both ends.
Step 2 - Confirm your Facebook account
Meta asks which Facebook user is granting access. If you are signed into the right Facebook account, click Continue.
Continue as Your Name?
TrueMetriks Analytics will receive your name and profile picture.
Not Your Name?
If the wrong account is shown (for example a personal account when you wanted a business one), click Log into another account and sign in. The Facebook user only needs profile-level access - this screen is just identity confirmation, no business permissions are granted here yet.
Step 3 - Choose which Businesses to share
Meta now asks how much of your Business Manager footprint to give TrueMetriks. You have two options.
Choose the Businesses you want TrueMetriks Analytics to access
Later you'll be able to review what TrueMetriks Analytics will be able to do with the Businesses you select.
-
Opt in to all current and future Businesses
This will give TrueMetriks Analytics access to your current Businesses, in addition to any Businesses you create in the future.
-
Opt in to current Businesses only
This will only give TrueMetriks Analytics access to the Businesses you select.
- Opt in to all current and future Businesses (recommended for most accounts) - TrueMetriks gets access to every Business portfolio on this Facebook account, including any you create later. Pick this if you run a single agency or own all the portfolios on this account.
- Opt in to current Businesses only - You will hand-pick which portfolios on the next view. Pick this if your Facebook account is a member of someone else's Business that you do not want TrueMetriks to touch.
Step 4 - Pick the Business portfolios (only if you chose "current only")
If you chose current Businesses only, Meta shows a searchable list of every Business portfolio your account belongs to. Tick the ones you want TrueMetriks to access. Use Select all to grab them in one click.
-
Opt in to all current and future Businesses
This will give TrueMetriks Analytics access to your current Businesses, in addition to any Businesses you create in the future.
-
Opt in to current Businesses only
This will only give TrueMetriks Analytics access to the Businesses you select.
-
Acme Holdings
346740378173522
-
Northwind Co.
165904530700341
-
Riverline Studio
216135910729119
-
Client B - Lifestyle
726022288418319
-
Demo Wellness
754415809583780
-
Side Project LLC
131040391987347
Each Business portfolio you select unlocks every ad account and every pixel inside it. You will pick the specific pixel for each TrueMetriks site in a later step (after the connect flow finishes).
Step 5 - Review the permission grant
Meta summarises what TrueMetriks is about to receive. There are three permissions and one summary line.
Review TrueMetriks Analytics's access request
-
Manage ads for ad accounts that you have access to
-
Access your Facebook ads and related stats
-
Manage your business
2 Businesses selected
This integration enables TrueMetriks Analytics to establish a connection with your business portfolio(s), and manage everything in the portfolio except for sensitive actions, like deleting the portfolio. They may be able to use an API to manage the portfolio, including giving access to third parties. .
- Manage ads for ad accounts that you have access to - lets TrueMetriks read your ad account list and post events to the right pixel.
- Access your Facebook ads and related stats - lets TrueMetriks read campaign / ad-set / ad metadata so it can attribute clicks back to specific ads in the dashboard.
- Manage your business - lets TrueMetriks list pixels and catalogs inside the Business portfolios you selected. The line below ("2 Businesses selected" or similar) shows the count from Step 4.
Click Save when the list matches what you expect. If you spot the wrong scope, hit Back and re-do Step 3 or 4.
Step 6 - Confirmation, then back to TrueMetriks
Meta confirms the connection. Click Got it and the popup closes.
Your Name has been connected to TrueMetriks Analytics
To manage this connection, .
When the popup closes, the TrueMetriks dashboard card flips to Connected and reveals the next sub-section: Select your pixel. That is the next step below.
Select your pixel
The connect step gave TrueMetriks access to your Business portfolios. Now you tell it which pixel inside those businesses this site should fire events into. Three clicks.
Video guide
Prefer to read along? The full step-by-step is below.
Step 1 - Click Add pixel
Under the Active pixels header, click the highlighted Add pixel button in the top-right.
Active pixels
5 pixels ready to add from your connected Business Manager.
Click Add pixel above to pick the one this site fires events into.
The hint banner shows how many pixels TrueMetriks found across the Business portfolios you connected. If the count is 0, your Business Manager has no pixel yet - create one in Facebook Events Manager first, then come back.
Step 2 - Pick the pixel from the dropdown
Clicking Add pixel inserts an empty row with a Pick a pixel dropdown. Click it to see every pixel in your connected Business portfolios. Each row shows the pixel name on the left and the Business / Ad Account it belongs to on the right.
Active pixels
- My Site Pixel (My Site | Ad Account)
- Demo Brand Pixel (Demo Brand | Ad Account)
- Client A Pixel (Client A Holdings)
- Side Project Pixel (Side Project LLC)
- Test Pixel (Test Business)
Click the pixel you want. The dropdown closes and the row collapses to show your selection.
Step 3 - Review the Allowed events list
Click the row to expand it. Four sections appear: Pixel (the same selector, in case you want to swap), Test event code (covered in How to test), Allowed events (highlighted), and Custom events (covered later).
Active pixels
My Site Pixel
under: My Site | Ad Account
Pixel
Test event code
Codes expire after 24 hours; after expiry, events flow to your production Facebook feed.
Allowed events
Uncheck events you don't want fired to this pixel. Useful for restricted-category advertisers.
Custom event mappings
Fire a custom event name alongside the standard one (e.g. Purchase + Purchase_NewCustomer for granular reporting). Restricted-category advertisers can uncheck restricted standards above so only the custom name fires.
How the Allowed events list works
All seven standard Facebook events (PageView, ViewContent, AddToCart, InitiateCheckout, Lead, Schedule, Purchase) are checked by default. A checked box does not make an event fire - it just means "if my site fires this event, send it to this pixel." Which ones actually fire depends on your site and platform.
Leave all seven checked unless you are in a restricted category (health, wellness, finance, and similar) where Meta blocks certain standard names. In that case, uncheck the restricted standard here and fire a custom event in its place (see Custom events below).
Click Save changes at the bottom of the integration card to persist your pixel selection and the allowed-events list.
Custom events
The Allowed events list above controls which standard event names go to your pixel. Custom events let you fire an additional, custom-named event alongside any standard event. Two reasons to use them:
- Granular reporting - mirror
PurchaseasPurchase_NewCustomerfor new-vs-returning splits, orLeadasLead_Webinarto break out a specific lead source. Both events fire; the standard one keeps your existing optimization audiences healthy and the custom one gives you a dedicated reporting column in Ads Manager. - Restricted-category bypass - if your business is in a category Meta restricts (health, wellness, finance, supplements, gambling, dating, alcohol, and a few others), Meta will block or throttle ad delivery on certain standard event names like
Purchase,Lead,InitiateCheckout,AddToCart,Schedule, andViewContent. In practice you are stuck withPageViewfor optimization, which is too high in the funnel to be useful. The workaround is to uncheck the restricted standards in the Allowed events list above and instead fire a custom event with a meaningless name (e.g.ghyu) that Meta's pattern detector cannot map back to a restricted intent. For the full strategy - including how to keep your product names and URLs just as neutral as the event name - see the dedicated Restricted categories guide. A blog post on which categories are restricted and how Meta enforces it is coming too; we'll link it here when it ships.
Explainer video
Walkthrough - restricted categories
If your business sits in a restricted category, the video below walks through the exact "uncheck the restricted standards, fire a custom event with a neutral name" pattern from point 2 above, end-to-end in TrueMetriks.
Explainer video
For the full playbook - including how to keep your product names and URLs just as neutral as the event name - see the dedicated Restricted categories guide.
Step 1 - Click Create
Inside the expanded pixel row (the same one where the Allowed events checkboxes live), scroll to the Custom events panel and click the highlighted Create button in the top-right.
Custom events
Fire a custom event name alongside the standard one (e.g. Purchase + Purchase_NewCustomer for granular reporting). Restricted-category advertisers can uncheck restricted standards above so only the custom name fires.
Important - restricted categories: if you advertise in a restricted category (health, finance, etc.), read this guide before you set up your custom events so events fire compliantly. Read the guide
After saving, wait 30-60 seconds for changes to propagate before firing test events. Removing a custom event stops it here, but the Custom Conversion entry remains in Facebook Ads Manager - delete it there if you no longer need it.
No custom events yet. Click Create to add one.
Step 2 - Fill in the Create custom event popup
Clicking Create opens the Create custom event popup. It has three fields, plus an optional fourth that appears only for Purchase:
- Standard event (dropdown) - the standard event you want to mirror. Pick
Purchaseto fire every time a Purchase event would. Same forLead,Schedule, etc. - Custom event name (input) - any name you want. It must start with a letter and can contain letters, numbers, spaces,
_or-, up to 40 characters. For restricted categories, use something arbitrary and meaningless likeghyu,kt8x2, orwellness_evt_a- anything that does NOT contain the wordspurchase,buy,cart,checkout,lead,signup, etc. For granular reporting, use something descriptive likePurchase_NewCustomerorLead_Webinar. - Fire when (dropdown) -
Always(the default) fires on every matching event. ForPurchase,Lead, andScheduleyou can also pickNew customers onlyorReturning onlyto split your audience. - Product filter (Purchase only, optional) - fire only when a purchased product matches a name or ID. Leave it blank to fire on every Purchase. See the Product filter section below.
Then click the highlighted Create button.
Create custom event
Only fire when a purchased product matches. Leave blank to fire on every Purchase.
Matches if any purchased product matches the name or the ID. Case-insensitive.
Step 3 - Save changes to create it in Facebook
Your new custom event appears as a card in the Custom events list with a coloured status dot. It starts amber ("unsaved - click Save changes") until you persist it.
Click the Save changes button at the bottom of the integration card. TrueMetriks calls the Meta API and creates the matching Custom Conversion in Facebook for you; the dot turns green and a synced check mark appears.
To change a saved custom event later, click the pencil to edit when it fires (or its product filter). The standard event and custom name lock once it is saved, so to rename one, delete it with the trash icon and create a new one.
Custom events
Step 4 - Confirm the Custom Conversion appears in Facebook
The moment you save, TrueMetriks calls the Meta API and creates a Custom Conversion in Facebook on your behalf. You don't have to set it up manually.
To confirm it landed, go to Meta Ads Manager → Events Manager (left rail) → pick the pixel you mapped this to → Custom conversions tab. Your custom name shows up in the table, attached to the right pixel and Ad Account.
It will be Inactive until the first event lands. Fire a test event (covered in How to test below) or wait for live traffic; the status flips to Active once Meta sees the first conversion.
Step 5 - Add the conversion as a column in Ads Manager
A Custom Conversion is only useful if you can see it in your campaign reporting. In Meta Ads Manager → Campaigns (or Ad sets / Ads) → click the Columns: Performance dropdown in the top-right → pick Customize columns at the bottom of the menu. Search for your custom name, tick Total, Value, and Cost on the matching row, then click Apply.
Step 6 - Read the column on every campaign row
The Campaigns / Ad sets / Ads table now has a dedicated column for your custom conversion. Use it the same way you would use a standard Purchase column - sort by it, build saved reports off it, set up automated rules against it.
Important gotchas
- Wait 30 to 60 seconds after Save before firing test events. Meta needs to finish creating the Custom Conversion before it will accept matching events. If you fire too fast, the first few events will land as plain custom events without the conversion attached.
- Removing a custom event in TrueMetriks does NOT delete the Custom Conversion in Facebook. It stops TrueMetriks from firing the custom name, but the Custom Conversion entry stays in Events Manager. If you no longer need it, delete it from Facebook's Custom Conversions tab manually.
- Custom Conversions have a 100-per-pixel limit (Meta's restriction, not ours). Each custom event you add counts as one. The Custom Conversions list in your pixel will show "You have N custom conversions remaining" at the bottom.
Product filter
The Product filter is an optional control on a Purchase custom event. It lets you fire the custom event only when a specific product was bought, instead of on every Purchase. It appears in the Create custom event popup whenever the standard event is Purchase.
Video guide
You have two fields, and they are either/or - a purchase fires the event if it matches either one:
- Product name (contains) - a case-insensitive contains match on the product name. Enter
Masterclassand a product called "Ultimate Ads Masterclass" matches, because its name contains that word. - Product ID (exact) - a case-insensitive exact match on the product's ID or SKU.
Fill in one, the other, or both. If any purchased product in the order matches either field, the custom event fires. Leave both blank and the event fires on every Purchase, the same as not using the filter at all.
Only fire when a purchased product matches. Leave blank to fire on every Purchase.
Matches if any purchased product matches the name or the ID. Case-insensitive.
Masterclass, so "Ultimate Ads Masterclass" matches. Fill the name, the ID, or both.Why this is useful
A product filter lets you optimize and report on a single product instead of "any purchase". For example, if your funnel has an upsell with a strong take rate, create a Purchase custom event filtered to that upsell product, add it as a column in Ads Manager, and optimize your campaigns toward that specific conversion - so Meta learns to find buyers of your best upsell, not just any buyer.
Catalog
A Facebook Catalog is the product database Meta uses to power Advantage+ catalog ads (dynamic product ads, retargeting carousels, Instagram shops). Connecting your catalog to TrueMetriks lets Meta match every Purchase, AddToCart, and ViewContent event we ship against a specific product in your catalog, so dynamic-product-ad audiences populate correctly.
This step is mostly useful if you sell physical products on Shopify or WooCommerce. If you only run lead-gen or info-product campaigns, you can skip the catalog entirely - the Purchase / Lead events will still attribute back to your ads through the pixel selection above.
What you need before connecting
Meta's catalog format requires a few fields on every product. Most ecommerce platforms generate this automatically when you install their Facebook integration (covered below per-platform):
- id - a unique product identifier per item, usually your SKU.
- title - product name.
- description - product description.
- availability - one of
in stock,out of stock,preorder,available for order,discontinued. - condition - one of
new,refurbished,used. - price - amount + ISO currency, e.g.
29.99 USD. - link - public URL of the product page.
- image_link - public URL of the main product image. Minimum 500x500 pixels, 1024x1024 recommended, JPEG or PNG, under 8 MB.
- brand - manufacturer or brand name.
If your catalog is missing fields, products with bad data are excluded from Advantage+ ads and your catalog match rate drops.
Video guide
Prefer to read along? The full step-by-step is below. The Shopify-specific catalog flow has its own walkthrough further down.
Step 1 - Click Connect Facebook Catalog
In TrueMetriks, scroll down to the Facebook Catalog panel inside the Facebook integration card and click the highlighted button.
Facebook Catalog
Catalog access not yet granted. Click below to authorize.
This triggers a second Meta OAuth grant, separate from the one that connects your pixel. Catalog access is a different permission scope, which is why Facebook asks again.
Step 2 - Authorize through Meta OAuth
A separate Meta popup opens for the catalog grant. It walks you through four screens.
Confirm your Facebook account. Click Continue.
Continue as Your Name?
TrueMetriks Analytics will receive your name and profile picture.
Not Your Name?
Choose which Businesses to share. Same scope choice as the pixel connect: opt in to all current and future, or pick specific Business portfolios. Pick whichever is appropriate and click Continue.
Choose the Businesses you want TrueMetriks Analytics to access
Later you'll be able to review what TrueMetriks Analytics will be able to do with the Businesses you select.
-
Opt in to all current and future Businesses
This will give TrueMetriks Analytics access to your current Businesses, in addition to any Businesses you create in the future.
-
Opt in to current Businesses only
This will only give TrueMetriks Analytics access to the Businesses you select.
Review the permission grant. The catalog grant asks for two things the pixel grant did not: a new top-line permission Manage your product catalogs, plus a Review what terms you are agreeing to → Product Catalog Terms section. Read them, then click Save.
Review TrueMetriks Analytics's access request
-
Manage your product catalogs
-
Manage ads for ad accounts that you have access to
-
Access your Facebook ads and related stats
-
Manage your business
2 Businesses selected
Review what terms you are agreeing to
This integration enables TrueMetriks Analytics to establish a connection with your business portfolio(s), and manage everything in the portfolio except for sensitive actions, like deleting the portfolio. They may be able to use an API to manage the portfolio, including giving access to third parties. .
Connection confirmed. Click Got it to close the popup. The TrueMetriks panel reloads.
Your Name has been connected to TrueMetriks Analytics
To manage this connection, .
Step 3 - Create a new catalog or connect an existing one
After OAuth closes, the panel in TrueMetriks switches to a catalog picker:
Facebook Catalog
Create new catalog (recommended)
We create a fresh catalog named "TrueMetriks - your-domain.com" so your products stay isolated from any other catalog you run.
Connect to existing catalog
- Select a catalog...
- TrueMetriks - your-domain.com - Main
- Products from your-domain.com - Main
- Demo Brand Catalog
- Create new catalog (recommended) - TrueMetriks creates a fresh catalog named
TrueMetriks - your-domain.cominside the Business portfolio you picked. Use this if you don't already have a catalog or if you want a clean separation between TrueMetriks-tracked products and any other catalog you run. - Connect to existing catalog - pick a catalog from the dropdown. Use this if Shopify, WooCommerce, or another partner already populates a catalog you want to keep.
Click Connect catalog. TrueMetriks saves the choice and the panel flips to "Catalog connected".
Step 4 - Find your catalog in Meta Commerce Manager
Catalogs live in Meta's Commerce Manager, not Ads Manager. Open Commerce Manager → pick the same Business portfolio you connected → Assets in the left rail → Catalogs. Your new catalog appears in the list.
Commerce Manager
- Assets
- All tools
Catalogs
-
TrueMetriks - your-domain.com
Catalog ID: 1655588159057516
-
Demo Brand Catalog
Catalog ID: 1680276399787484
Click into the catalog to open its dashboard. Catalog → Products in the left rail shows every item the catalog knows about; on a fresh catalog this list is empty until your platform (Shopify / WooCommerce / a feed URL) starts pushing products in.
Step 5 - Connect the pixel as the catalog's event source
A catalog is just product data until you wire it to a pixel. Meta uses the pixel to learn what your visitors viewed, added, and bought, and matches those events to catalog products via the content_ids field on each event.
On the catalog Overview screen, the Connect to tracking row will be red until you do this. Click Connect event source (highlighted), or use Catalog → Events in the left rail.
Commerce Manager
- Overview
- Catalog
- Products
- Sets
- Data sources
- Events
- Offers
- Shops
- Settings
Overview
Finish your Advantage+ catalog ads setup
You're a few steps away from using this catalog for Advantage+ ads. Using a catalog lets you show your products to the right people.
- Add basic Info
-
Connect to tracking
Set permissions
You can manage catalog access for people and partners in Business Settings.
- Upload products
A dataset picker opens. Flip the toggle on the same pixel you picked in Select your pixel above, then click Connect.
Make the most of your event tracking
Setting up your event tracking with the right dataset will enable you to automatically show relevant products from your catalog to people who have searched for, viewed or interacted with them on your website.
Connect a dataset to track the products people are interacting with on your website or app.
Available datasets
-
My Site - WP
Meta SDK ID: 503905749106283
-
Demo Brand Pixel
Dataset ID: 2820043304834500
-
My Site Pixel
Dataset ID: 618120340405935
Purchase for this site (the same one you picked in Select your pixel), then click Connect. Meta now uses the pixel's product IDs to populate dynamic-product-ad audiences from your catalog.Meta now knows which pixel to listen to for catalog matching.
Step 6 - Watch the catalog match rate climb
The Events tab now shows your dataset with a Catalog match rate gauge.
The match rate is the share of Purchase / AddToCart / ViewContent events whose content_ids actually map to a product in this catalog. It starts at 0% the moment you connect (no events have arrived yet under the new wiring) and climbs as live traffic flows in. Aim for 90%+ within a day or two of normal traffic; anything below 90% means a chunk of your events are firing IDs that don't exist in the catalog, which usually points to:
- The pixel events ship Shopify
variant_idbut the catalog storesproduct_id(or vice versa). - Some products are missing from the catalog feed entirely.
- Newly added products haven't synced yet (Shopify / Woo feeds typically refresh every 1-24 hours).
The Catalog → Events screen has a per-dataset diagnostics view that lists the most-common unmatched IDs - work through those to lift the score.
Connect a catalog on Shopify
On Shopify, the TrueMetriks Catalog Sync app handles everything end-to-end - just like on WordPress, you do not need Meta's "Facebook & Instagram by Meta" sales channel. Install the TM app once, and every product create / update / delete in Shopify pushes to the catalog you connected in Step 3 above. Initial sync runs automatically the moment the install completes.
This connection is separate from the Facebook OAuth you did earlier - it grants TrueMetriks read access to your Shopify products, which lets us push them into the Facebook catalog.
Video guide
Prefer to read along? The full step-by-step is below.
Step 1 - Open Shopify Admin Settings
Inside your Shopify Admin, click Settings in the bottom-left of the sidebar.
- ⌂Home
- ■Orders5
- ◆Products
- ☻Customers
- ◎Marketing
- %Discounts
- □Content
- $Markets
- ☥Finance
- ≡Analytics
Sales channels ›
- ▤Online Store
Apps ›
- ⊕Add
Step 2 - Click Domains
Inside Settings, scroll the store sub-menu and click Domains.
Your Business LLC
Organization
- ▢Organization
- ☻Users
Your Store
your-store.com
- ⌂General
- □Plan
- $Billing
- ◆Payments
- ▤Checkout
- ☻Customer accounts
- ↻Shipping and delivery
- %Taxes and duties
- ⌖Locations
- $Markets
- ▦Apps
- ◎Sales channels
- ▤Domains
- ◎Customer events
- ☠Notifications
- □Metafields and metaobjects
- ALanguages
- 🔒Customer privacy
- ▤Policies
Step 3 - Copy the .myshopify.com domain
You will see two rows: your custom storefront domain (marked Primary) and the original Shopify-issued domain that ends in .myshopify.com. Copy the .myshopify.com row, not the primary one.
TrueMetriks identifies Shopify stores by their permanent .myshopify.com handle, so the primary domain will not work even if it points to the same store.
Step 4 - Paste it into TrueMetriks and click Connect Shopify
Switch back to the TrueMetriks dashboard, scroll to the Connect Shopify (for FB Catalog sync) panel inside the Facebook integration card, paste the .myshopify.com domain into the input, and click Connect Shopify. The button starts spinning and a small popup window opens.
Step 5 - Install the TrueMetriks Catalog Sync app
The popup is Shopify's standard install prompt. The app is TrueMetriks Catalog Sync and asks for only two scopes: View store data: Products (so we can read your product list) and View staff and contributor data: Store owner. Click Install.
Your Store - Install app - Shopify Plus
Install app
TrueMetriks Catalog Sync
Game Dev Pro LLC
This app needs access to:
-
View staff and contributor data
Store owner
-
View store data
Products
Once you click Install, Shopify provisions the access token, the TrueMetriks backend receives it, and the popup closes itself. The TrueMetriks panel updates inline to Connected to your-store-abc123.myshopify.com. Shopify product catalog sync is active. without reloading the page.
Step 6 - Sync is automatic from this point
The moment the install completes, TrueMetriks pulls your entire Shopify product catalog and pushes it into the Facebook catalog you picked in Step 3 above. Every subsequent product create, update, or delete in Shopify is forwarded in real time through the same webhook pipeline - no scheduled cron, no manual re-imports.
You do not need to do anything else. The pixel events fired by the Shopify Custom Pixel (the one you set up in Select your pixel above) ship content_ids that match the Shopify product IDs in the catalog, so dynamic-product-ad audiences populate as soon as live traffic flows in.
Same automatic-sync model on WordPress: the TrueMetriks WP plugin handles all create / update / delete events through WooCommerce hooks. No manual sync is required on either platform.
Field mapping note: the TrueMetriks Catalog Sync app ships variant_id as the catalog id for variant-level products and product_id for simple products. The TrueMetriks Shopify Custom Pixel emits matching content_ids automatically. If you ever wire a non-TM pixel to the same catalog, double-check it ships the same ID shape or your match rate will drop.
Connect a catalog on WordPress / WooCommerce
On WordPress + WooCommerce, the TrueMetriks plugin handles the catalog sync end-to-end - you don't need Meta's "Facebook for WooCommerce" extension at all. The TrueMetriks plugin pushes products into the catalog you connected in Step 3 above, so there's nothing to wire up manually on Meta's side.
How it works
- You connect the Facebook Catalog in the TrueMetriks dashboard (Steps 1-3 above) - that's the only place the OAuth + catalog selection happens.
- The TrueMetriks WordPress plugin polls your TrueMetriks account, detects the connection, and starts pushing products into the connected catalog automatically.
- Every time you create, update, or delete a product in WooCommerce, the plugin syncs that change to the catalog in real time. No cron, no scheduled re-pushes.
That means you do not need to repeat the Facebook OAuth inside WordPress. The dashboard connection covers both the pixel events and the catalog feed.
Before connecting on the dashboard
Open WordPress Admin → TrueMetriks → Facebook Catalog. Before the dashboard connection is in place, the tab looks like this:
Facebook Catalog
Push your WooCommerce products to Facebook Catalog for Advantage+ and Dynamic Product Ads. Products sync automatically whenever you create, update, or delete a product in WooCommerce.
Connect your Facebook Catalog in the first. The connection status shown below is fetched from your TrueMetriks account.
Default brand
Facebook Catalog requires a brand on every product. This value is sent as the fallback brand when a product has no brand assigned in WooCommerce (via product_brand, pwb-brand, or yith_product_brand taxonomies). Leave blank to use your WordPress site name.
Status: Facebook Catalog is not connected to this site yet.
Set up the Facebook Catalog connection on the , then come back here and click Refresh to confirm. The Connect button below will take you straight to the right dashboard page.
The Status line confirms the catalog isn't connected yet. The blue Connect Facebook Catalog button just deep-links you straight to the right page on the TrueMetriks dashboard - it doesn't run any OAuth on the WordPress side.
After connecting on the dashboard
Once you complete the connect flow in the dashboard (Steps 1-3 above), the WordPress plugin auto-detects the change on its next poll. If the WordPress tab was already open, click Refresh connection status to force a re-check immediately. The green banner appears and the tab switches to the connected layout:
Facebook Catalog
Push your WooCommerce products to Facebook Catalog for Advantage+ and Dynamic Product Ads. Products sync automatically whenever you create, update, or delete a product in WooCommerce.
Connect your Facebook Catalog in the first. The connection status shown below is fetched from your TrueMetriks account.
Default brand
Facebook Catalog requires a brand on every product. This value is sent as the fallback brand when a product has no brand assigned in WooCommerce (via product_brand, pwb-brand, or yith_product_brand taxonomies). Leave blank to use your WordPress site name.
Connected to: TrueMetriks - your-domain.com 1655588159057516
Products sync automatically on every create, update, and delete. Use Resync all products only after a sync error or to force a full re-push of your catalog.
You now have three actions on this tab:
- Refresh connection status - re-fetches the connection state from your TrueMetriks account. Useful right after connecting in the dashboard, or if you ever suspect WordPress and the dashboard have drifted apart.
- Default brand - Meta requires a
brandfield on every catalog product. The plugin reads brand from WooCommerce taxonomies (product_brand,pwb-brand,yith_product_brand) when available; this fallback value is used for any product that doesn't have one. Leave blank to use your WordPress site name as the fallback. - Resync all products - forces a full re-push of every product in your WooCommerce catalog into the Facebook catalog. Normal create / update / delete events sync automatically; only use Resync after a sync error or a Meta-side rebuild.
- Disconnect - stops the WordPress plugin from pushing further updates and removes the catalog binding. The dashboard-side connection stays in place; reconnect the WordPress side later with Refresh connection status.
What you should NOT do
You do not need to install Facebook for WooCommerce alongside the TrueMetriks plugin. If you already have it, that's fine - it'll create its own duplicate catalog. Just make sure the catalog you pick in the TrueMetriks dashboard (Step 3) is the TrueMetriks-managed one, not the Facebook-for-WooCommerce-managed one. Pointing TrueMetriks at the wrong catalog will work, but you'll end up syncing the same products twice into different catalogs.
Field mapping note: the TrueMetriks plugin ships the WooCommerce product_id (or variation_id for variable products) as the catalog id, and the TrueMetriks tracker fires matching content_ids on Purchase / AddToCart / ViewContent events. Catalog matching works without any extra configuration.
Other platforms
If your store runs on BigCommerce, Squarespace Commerce, Wix, or a custom build, the path is:
- Use Meta's Data Sources flow in Commerce Manager (Catalog → Data sources) to point Meta at a product feed URL or CSV / XML upload.
- Or use a feed-management tool (DataFeedWatch, GoDataFeed, Channable) to generate and push a feed.
- Connect that catalog in TrueMetriks using the Connect to existing catalog path.
- Make sure whatever fires your
Purchase/AddToCart/ViewContentevents shipscontent_idsthat match theidfield in the feed.
How to test
Before you trust the pixel for real campaigns, you want to see your events arrive in Facebook with your own eyes. Meta's Test Events tab is the way - and TrueMetriks has a one-field workflow that wires it up. Six steps, about two minutes end-to-end.
The whole loop: copy a short-lived test code from Facebook, paste it into TrueMetriks, browse your site, watch events appear in real time on Facebook's Test Events table. After 24 hours the code expires and your events automatically flow back into the live Facebook feed - no flag to clear.
Video guide
Prefer to read along? The full step-by-step is below.
Step 1 - Click Open in Facebook in TrueMetriks
Expand your pixel row in Settings > Ad integrations > Facebook. In the Test event code group, click the highlighted Open in Facebook link.
Active pixels
My Site Pixel
under: My Site | Ad Account
Pixel
Test event code
Codes expire after 24 hours; after expiry, events flow to your production Facebook feed.
Allowed events
Uncheck events you don't want fired to this pixel.
This opens Facebook Events Manager in a new tab, scoped directly to the pixel you are working on. No hunting through the Meta UI to find the right dataset.
Step 2 - You land on Datasets, with your pixel selected and the Test events tab active
Facebook Events Manager opens straight to Datasets, with the pixel from TrueMetriks highlighted in the middle list and the Test events tab already selected in the right panel.
Datasets
-
My Site Pixel
ID 618120340405935
-
Academy Pixel
ID 2820043304834500
-
Side Project Pixel
ID 771197136645079
-
Demo Brand Pixel
ID 26884361097883851
My Site Pixel
Test your events
Use test events to confirm your website, app, CRM and server events are set up correctly.
Note that test behavior may differ from live environments, and your personal ad settings won't affect test data. Learn more
Select a marketing channel to receive its corresponding instructions:
If you have multiple pixels, double-check the name in the right-panel header matches the pixel you clicked from in TrueMetriks. The first time you open this tab on a fresh pixel, the channel dropdown reads Select channel - that's the next click.
Step 3 - Pick Website in the Select channel dropdown
Click the Select channel dropdown and choose Website.
My Site Pixel
Test your events
Use test events to confirm your website, app, CRM and server events are set up correctly.
Note that test behavior may differ from live environments, and your personal ad settings won't affect test data. Learn more
Select a marketing channel to receive its corresponding instructions:
Always Website, never Offline. TrueMetriks sends every event over the Conversions API as a website event - even server-fired Purchases. The Offline option is for CRM uploads and won't show your test traffic.
Step 4 - Copy your unique test code
Once you pick Website, Facebook reveals a Confirm your server's events are set up correctly card. The first step inside that card shows your unique test code as a test_event_code: TEST... chip with a Copy button next to it.
My Site Pixel
Test your events
Use test events to confirm your website, app, CRM and server events are set up correctly.
Select a marketing channel to receive its corresponding instructions:
Confirm your server's events are set up correctly
You can perform a test to make sure your server is connecting and sharing event data. Make sure the Test Events page stays open in Events Manager during the test.
To run the test:
-
Copy your unique test code. This code will be used to validate your data in the next step.
test_event_code: TEST17763 -
Open up Graph API Explorer. Make sure all the parameters entered above match what's shown in the payload, then submit and return to this page.
Confirm your website's events are set up correctly
TEST... code from the Confirm your server's events are set up correctly card. (You don't need the Graph API Explorer step - TrueMetriks handles the server side for you.)Click Copy. That's the only thing you need from this card - ignore the Graph API Explorer button and the "Confirm your website's events are set up correctly" card below it, those are for raw API testing and we already handle the server side for you.
Step 5 - Paste the code back into TrueMetriks and save
Switch back to TrueMetriks, paste the code into the Test event code field, and save. The pixel-row header flips to a green Test active - 24h left badge.
Active pixels
My Site Pixel
under: My Site | Ad Account
Pixel
Test event code
Codes expire after 24 hours; after expiry, events flow to your production Facebook feed.
Allowed events
Uncheck events you don't want fired to this pixel.
From this moment on, every event TrueMetriks sends for this pixel carries the test code attached. Facebook routes those events into the Test Events tab instead of your live feed, so nothing you do in the next 24 hours will dirty your production reporting.
You only need to do this for the pixel you are actively testing. Other pixels with no test code keep sending real events to production - they are not affected.
Step 6 - Browse your site and watch events arrive
Go to your website and do something that should fire an event. Open a few pages (PageView), add a product to cart (AddToCart), start a checkout (InitiateCheckout), submit a lead form (Lead), or place a test order (Purchase).
Switch back to Facebook Events Manager. Within a few seconds the Receiving activity banner turns green and rows start appearing in the table, newest at the top.
Every row carries the event name, a green Processed pill, the Event ID, and the timestamp. Watch them stack up as you browse.
Every row says Server under Received From. That is correct and expected. TrueMetriks is server-side only - we do not fire the Facebook browser pixel at all. Every event you see in Test Events came from our server talking directly to Meta's Conversions API, with click IDs and hashed PII attached. The "Server" pill on every row is the proof.
If you don't see events within ~30 seconds, jump to Troubleshooting below.
After the test - the code expires automatically
Test codes are deliberately short-lived. 24 hours after you saved it, the code expires and TrueMetriks resumes sending events to your production Facebook feed without any action from you. The green badge in the pixel row disappears and the field empties out.
If you want to end the test sooner - say you confirmed everything in 5 minutes and don't want a 24-hour gap in production reporting - just clear the Test event code field in TrueMetriks and save. Events flow to production from the next event onward.
Troubleshooting
Events show up on Test Events but never appear in campaign reporting. Test events are scoped to the Test Events tab only - they are intentionally walled off from your live attribution. After the code expires (or you clear it), real events flow to production. Check campaign reporting the day after, not during the test.
Receiving activity stays empty for more than a minute. Three things to check, in order: 1. The pixel name in the Facebook Events Manager header matches the pixel you pasted the code into - mismatched pixels are the most common cause. 2. Your Channel dropdown says Website, not Offline. 3. The test code in TrueMetriks matches the one in Facebook character-for-character. If a code is older than 24 hours, Facebook silently ignores it - copy a fresh one from Step 4 and re-paste.
Events arrive but the Catalog match rate stays at 0%. Your event content_ids don't match the IDs in your catalog feed. See the Catalog section above - on Shopify the catalog ID is the variant id, on WooCommerce it is the product id. Cross-reference one event's content_ids against the catalog's product list in Commerce Manager.
The Test active - 24h left badge never appeared after saving. The code field didn't take. Hard-refresh the dashboard page, re-paste the code, and save again. If it still doesn't stick, the saved code is probably one that already expired in Facebook - get a fresh one.
Frequently asked questions
Which pixel should I select for my site?
Pick the pixel inside your connected Business portfolios that this site should fire events into. Each site maps to its own pixel via the Add pixel button, which lists every pixel in the businesses you connected.
Why does every test event show Server under Received From?
That is correct and expected. TrueMetriks is server-side only and does not fire the Facebook browser pixel. Every event comes from our server talking directly to Meta's Conversions API.
How long does the Facebook test code stay active?
Test codes expire 24 hours after you save one. After that TrueMetriks resumes sending events to your live feed automatically, or you can clear the field early to end the test sooner.
Can I fire a Facebook custom event for only one product?
Yes. On a Purchase custom event, open the optional Product filter and enter a Product name (case-insensitive contains match) or a Product ID (case-insensitive exact match). The custom event fires only when a purchased product matches either field; leave both blank to fire on every Purchase.