1Pixel
Meta Conversions API for Commerce7, by 7Labs

Documentation

How to set up 1Pixel, what it sends to Meta, and how to read the results.

Something missing or not working? Tell us. We're happy to add features wineries ask for, and we fix bugs as fast as we can. See Support and feature requests.

What 1Pixel does

1Pixel sends your Commerce7 sales and sign-ups to Meta (Facebook and Instagram). Meta uses them to show which ads led to sales and to find more people likely to buy.

The Meta pixel on a website runs in the visitor's browser, and it misses a lot. Ad blockers and iPhone privacy settings often stop it, and it never sees tasting room sales. 1Pixel gets every order straight from Commerce7 and sends it from our server, so Meta hears about the sale even when the browser didn't. This is what Meta calls the Conversions API.

What 1Pixel sends:

  • Online orders and tasting room (POS) sales
  • Tock bookings
  • Wine club sign-ups and cancellations
  • Reservations made in Commerce7
  • New customer accounts
  • With the optional website script: wine page views, add to cart and checkout starts

What you need

  • Admin access to your Commerce7 account
  • A Meta business account (business.facebook.com)
  • A Meta pixel in Events Manager. Meta sometimes calls it a dataset. It's the same thing.
  • An access token for that pixel. Step 2 below shows where to get it.

No pixel yet? See Create a Meta pixel. It takes about 2 minutes.

Create a Meta pixel

Skip this if you already have a pixel. In Events Manager, open Datasets in the left menu. If a pixel is listed there, use it. Two pixels split your data.

Create the pixel in your winery's own Meta business portfolio, not in your agency's or a personal one. A pixel can be shared later but not moved to another portfolio, and whoever owns it owns the data. Check the portfolio name at the top left of Events Manager.

  1. In Events Manager, click Connect data.
  2. In Create a new dataset, enter your winery's name under Enter a name.
  3. Untick Connect all new and existing datasets in this business portfolio to the Conversions API with Meta. That is Meta's own server connection. 1Pixel is your server connection, and two would send the same events twice.
  4. Leave Select any applicable categories empty. It's optional and meant for restricted businesses such as health or finance.
  5. Click Create.
  6. Meta then shows Connect your web data, with Set up Meta pixel and Set up Conversions API. Close it with the X. 1Pixel does both. The pixel is already created.

Your new pixel is now under Datasets. Continue with Set up 1Pixel.

Set up 1Pixel

1
Install 1Pixel Find 1Pixel in the Commerce7 App Store and click Install. Commerce7 asks you to approve access, then opens the app inside your admin.
2
Copy your Pixel ID and access token from Meta
  1. In Meta Events Manager, open Datasets, click your pixel and open the Settings tab.
  2. Under Details, copy the Dataset ID. This is your Pixel ID, a long number such as 1234567890123456.
  3. Scroll down to Conversions API. If you see "Connection pending" with a Connect now button, leave it. That is Meta's own connection, not 1Pixel's.
  4. Under Set up direct integration, keep Set up with Dataset Quality API selected. It lets 1Pixel show your match quality.
  5. Click Generate access token and copy the token. Meta shows it only once. If you lose it, generate a new one.
Keep the token private, like a password. Don't send it by email or in a screenshot.
3
Paste them into 1Pixel Open the Configuration tab. Paste the Pixel ID, and the token into CAPI Access Token. Make sure Enable server-side tracking is ticked, then click Save configuration.
4
Test the connection Click Test Connection. You should see "Connected" with your Pixel ID. If you get an error, check that the ID and the token come from the same pixel.
5
Done New orders, club sign-ups and reservations now go to Meta by themselves. Open the Event Log tab to watch them arrive. Then go through Which settings to use to check the rest of Configuration fits your winery.
6
Optional: add the website script Step 3 on the Setup tab has one line of code for your winery website. It tells Meta which wines people look at, what they add to the cart and when they start checkout. It also helps Meta match online orders to the people who clicked your ads. Orders are sent without it. See The website script.

Meta settings to check

These are on the same Settings tab in Events Manager.

  • Automatic events (under Event setup): turn it off. When it's on, Meta's AI adds its own add to cart and checkout events to your site, on top of the ones 1Pixel sends.
  • Automatic website matching (under Turn on automatic advanced matching): turn it on. It helps Meta match visitors to their Meta accounts.
  • First-party cookies (under Cookie usage): keep it on. 1Pixel uses these cookies to match online orders to ad clicks.
  • Automatically include more detailed page and product info: leave it as it is. It only adds page details to events and doesn't create new ones.
  • Connect now under Your Conversions API connections, and Set up through a partner integration: leave both alone. Either one would send the same events a second time.

Opening the app

Always open 1Pixel from inside your Commerce7 admin (under Marketing). If you open a saved link in a separate browser tab, you may see an "Unauthorized" error.

Pausing everything

Untick Enable server-side tracking in Configuration to stop sending anything to Meta without uninstalling. See Enable server-side tracking.

Which settings to use

Most wineries only need the defaults. Find each line below that fits your winery and change only what it says. Leave everything else as it is. To read what a single setting does, see Every setting explained.

If your winery...
Set this
Sells online and in the tasting room through Commerce7, and nothing else sends sales to Meta
Keep the defaults. Just make sure Enable server-side tracking is ticked.
Has a website tag (often in Google Tag Manager) that already sends Purchase to Meta
Pause that tag. If you can't, untick Online orders. Never do both. See Other tags on your site.
Takes bookings on Tock
Ask Tock to set your Commerce7 connection to Full (how). Keep Send Tock bookings as Lead ticked, so bookings never count as wine sales.
Wants Tock bookings under their own name in Meta (most wineries running ads for tastings)
Enter a Custom event name such as TockBooking, then create a custom conversion for it in Meta. Without that step, ads can't optimize for it. Leave the name blank to use the standard Lead, which works right away.
Has a Meta Pixel ID entered in its Tock Dashboard
Remove it in Tock and let 1Pixel send bookings. Only if you want to keep Tock's Pixel, tick Don't track Tock bookings at all. See Is Tock already sending to Meta?
Works with an agency that has its own pixel
Built its site on WordPress and wants us to handle the website script
Use the WordPress plugin instead of pasting the script.
Uses a cookie consent tool such as OneTrust or Ketch
Tick Require consent before tracking, and have your developer connect it. See Cookie consent tools.

Settings that break tracking

If you...
What goes wrong
Untick Online orders when no other tag sends Purchase
Online sales never reach Meta
Keep Online orders ticked and a website Purchase tag running
Every online sale counts twice
Untick Wine orders or Enable server-side tracking
No sales reach Meta at all: online or tasting room
Tick Don't track Tock bookings at all when Tock has no Pixel
Tock bookings never reach Meta
Keep a Pixel ID in Tock and leave Tock tracking on in 1Pixel
Every Tock booking counts twice
Enter a custom Tock event name and make no custom conversion in Meta
Bookings arrive, but ads can't optimize for them
Tick Require consent before tracking without connecting your consent tool
Website events wait forever and never send

After you change anything, place a test order (and a Tock booking if you use Tock), then check that the Event Log shows it as sent. Not sure what fits your winery? Contact us and we'll check your settings with you.

Every setting explained

This follows the Configuration tab from top to bottom. "Default" is what a new install starts with. Click Save configuration after any change.

Pixel & API credentials

Enable server-side trackingDefault: off until you tick it
The main switch. While it's off, nothing goes to Meta. Tick it when you set up 1Pixel. Untick it to pause everything without uninstalling.
Meta Pixel ID
The pixel 1Pixel sends to. Use the one your ads already use. Meta calls it the Dataset ID. Where to find it.
CAPI Access Token
Lets 1Pixel send to that pixel. Treat it like a password. Leave the box empty to keep the saved token. How to make a new one.
Test Event Code
Only used by the Simulate buttons, so test events show in Meta's Test events tab. Real orders never carry it, so you can leave it there. See Test before you go live.

Commerce7 server events

Each box sends one kind of Commerce7 event to Meta. The Meta event name is shown next to it.

Wine orders (Purchase)Default: on
Sends every paid order: online and tasting room. Leave it on. Unticked, no sales reach Meta. See What gets sent to Meta.
Online ordersDefault: on
Part of Wine orders. Untick it only when your website's own tag already sends Purchase to Meta and you can't pause that tag. Tasting room orders still send. See Other tags on your site.
Club signups (Subscribe)Default: on
Sends each new wine club member. See Wine club.
Average club member valueDefault: empty
An estimate of what a member is worth, for example what they spend in a year. It's sent with every club signup, because a signup has no price of its own. Leave it empty and Meta warns that Subscribe has no value. See Club sign-ups.
Club cancellations (CancelMembership)Default: on
Sends each club cancellation as a custom event. Useful for reports and audiences. Ads can't be optimized for it.
Commerce7 reservations (Lead)Default: on
Sends bookings made in Commerce7's own reservation tool. It has no effect on Tock bookings. See Reservations and Tock.
Send Tock bookings as LeadDefault: on (installs before October 2026 kept their old setting)
Sends Tock bookings as Lead, with the booking value, so Meta can aim ads at bookings. Unticked, they go as Purchase and mix with your wine sales. Only works when Tock is on Full.
Custom event name for Tock bookingsDefault: empty (sends Lead)
Sends Tock bookings under your own name, such as TockBooking, so they're easy to find in Meta's reports. Letters, numbers and underscores only. Ads can only optimize for it after you create a custom conversion.
Don't track Tock bookings at allDefault: off
Stops 1Pixel sending Tock bookings. Tick it only if Tock's own Meta Pixel sends them and you want to keep it that way. Otherwise remove the Pixel ID in Tock and leave this off. See Is Tock already sending to Meta?
Exclude club/recurring auto-ship ordersDefault: on (installs before late September 2026 kept their old setting)
Leaves out the orders Commerce7 creates when it charges club members for a shipment. No ad caused them. Untick it only if you want them counted as sales. See Wine club.
New customer accounts (CompleteRegistration)Default: on
Sends each new customer account created in Commerce7.

Website events (website script)

These four only send once the website script is on your site. All are on by default.

Page views (PageView)
Every page someone opens. If another tag already sends page views to the same pixel, 1Pixel skips its own.
Product page views (ViewContent)
Every wine page someone opens, with the wine and price.
Add to cart (AddToCart)
Each wine added to the cart, with its value.
Checkout initiated (InitiateCheckout)
Each time someone starts checkout, with the cart total.

Untick one only if another tag sends the same event and you can't remove that tag. Otherwise Meta counts it twice. See Other tags on your site.

Privacy & consent

Secondary Pixel

Secondary Pixel ID and Secondary Access TokenDefault: empty
Sends every live event to a second pixel too, for example your agency's. See Sending to a second pixel.

Advanced website setup

Website script and WordPress connection
The same website script as step 3 on the Setup tab, and the one-time code for the WordPress plugin. See The website script.

Test before you go live

Test Connection only checks your Pixel ID and token. To see a test event arrive in Meta, use Simulate events:

  1. In Meta Events Manager, open your pixel and go to Test events. Copy the test code shown there.
  2. In 1Pixel, paste it into Test Event Code in Configuration and click Save configuration.
  3. Under Simulate events, click Send next to the event you want to try, for example Purchase.
  4. In Meta's Test events tab, the event appears within a few seconds. It also shows in 1Pixel's Event Log.

You can simulate a wine shop order (Purchase), a Tock booking, a club sign-up (Subscribe), a club cancellation (CancelMembership), a reservation (Lead) and a new customer account (CompleteRegistration).

Test events only show in Meta's Test events tab. They never count in your ad results. The test code is never added to real orders, so you don't need to remove it when you're done.

Get help with setup

Setup help is free. You can have it two ways:

  • On a video call. You share your screen and we tell you what to click. You don't give us access to anything. It takes about 20 minutes.
  • We do it for you. You give us access to Commerce7 and Meta as shown below. We set everything up and tell you when it's done. You can remove our access afterwards.

Send us this first

Email 7labs@dmitru.com with:

  • Your winery name and website address
  • Your Pixel ID, if you know it. It's safe to share. You'll find it in Meta Events Manager under your pixel's Settings.
  • Who owns the pixel: your winery's own Meta business account, or your ad agency's
  • Whether you use Tock, and whether you take reservations in Commerce7
  • Whether your site uses Google Tag Manager or another tag tool, and who looks after the website
  • Whether your site has a cookie consent banner, and which one
  • Whether you want the website script added
  • Who we should talk to about Meta and the website, if it isn't you

Don't email us your access token. It works like a password for your pixel. If we do the setup, we create the token inside your Meta account and paste it straight into 1Pixel.

Access to Commerce7

  1. In your Commerce7 admin, go to Settings and open Users.
  2. Add a user with the email 7labs@dmitru.com.
  3. Give the user admin access. We need it to install 1Pixel and approve the access Commerce7 asks for. If you've already installed 1Pixel, access to apps under Marketing is enough.
  4. When we're done, delete the user, or keep it if you'd like us to check on things later.

We only use this login for 1Pixel. We don't change your orders, customers, products or other settings.

Access to Meta

The pixel has to be shared from the business account that owns it. If your agency owns it, forward this part to them.

  1. Open business.facebook.com/settings and pick your winery's business account.
  2. Go to Users, then People, and click Invite people.
  3. Enter fb@dmitru.com and choose the lower access level. We don't need to be an admin of your business.
  4. When Meta asks which assets to share, choose Datasets (older accounts say Pixels), select your pixel and turn on Full control (some accounts call it Manage). We need this to create the access token.
  5. Send the invite. We'll accept it and let you know.

We don't need your ad account, Facebook page, Instagram account or payment details. Only the pixel.

When setup is done, you can remove us under Users → People. 1Pixel keeps working, because the access token belongs to your business account, not to us.

Access to your website

Only needed if you want us to add the website script and no one on your side can paste one line of code into the site. Any one of these works:

  • Google Tag Manager: add 7labs@dmitru.com to your container with Publish permission.
  • WordPress: a user with the Administrator role.
  • Your web developer: we send them the line and tell them where it goes.

What gets sent to Meta

What happens in Commerce7
What Meta receives
An order is placed and paid: online or in the tasting room (POS)
Purchase, with the order total, currency, the wines bought and the order number
Someone joins your wine club
Subscribe
A club member cancels
CancelMembership (a custom event)
A reservation is made in Commerce7
Lead
A Tock booking arrives in Commerce7
Lead by default, with the booking value. You can send it as Purchase or not at all. See Reservations and Tock.
A new customer account is created
CompleteRegistration

Every event includes the customer's details from Commerce7 (email, name, phone and address) so Meta can match it to a person. 1Pixel hashes them first, which turns them into a code Meta can compare with its own records but can't read. See Match quality.

Orders 1Pixel doesn't send

  • Refunds and cancelled orders
  • $0 orders, such as comps or 100% off promotions
  • Orders more than 7 days old, such as an old Tock booking that syncs again. Meta would count it as a new sale.
  • Club shipments, unless you choose to include them. See Wine club.

These still show in the Event Log, with the reason.

Each event type has its own checkbox in Configuration. See Every setting explained.

Online and tasting room sales

Tasting room and POS sales go to Meta as Purchase, the same as online orders. 1Pixel marks each sale with where it happened, so Meta can keep the two apart:

Where the sale happened
How Meta sees it
Online shop
An online purchase
Tasting room or POS
An in-store purchase

In the Event Log, tasting room sales have an In-store badge, and you can filter the log by channel (Online or In-store).

Meta can credit tasting room sales to your ads, the same way it credits online sales. The next section explains how.

How Meta credits sales to ads

1Pixel sends each sale to Meta. Meta decides which ad, if any, gets the credit. 1Pixel doesn't choose.

  1. Meta matches the sale to a person on Facebook or Instagram, using the customer's email, phone, name and address. For online orders it also uses browser details when the website script is installed.
  2. Meta checks whether that person interacted with one of your ads shortly before buying.
  3. If they did, inside your attribution window, the sale counts for that ad.

Meta's default attribution window:

What the person did
Sale counts if it happens within
Clicked a link in your ad
7 days
Liked, commented on, shared or saved your ad
1 day
Saw your ad and did nothing
1 day

You can change the window in each ad set, under Attribution setting. It works the same way for online and tasting room sales.

Credit is based on timing

Meta credits an ad when the sale comes soon after the ad. It can't know whether the ad made the person buy. If someone saw your ad yesterday and visited the tasting room today for another reason, Meta still credits the ad. Every tool that sends sales to Meta works this way. If your reports need to show only sales an ad most likely caused, see Clean reporting in Ads Manager.

Sales Meta can't match

  • A tasting room sale with no customer on the order, or a customer with no email or phone. Asking for an email at the counter gets more sales matched.
  • A buyer Meta can't find, for example someone with no Facebook or Instagram account, or who uses a different email there.

Clean reporting in Ads Manager

  1. Look at tasting room sales on their own. In Ads Manager, the Purchases column adds online and in-store sales together. Add the in-store (offline) purchases column next to it, from Columns > Customize columns, so you can see how much came from the tasting room.
  2. Compare with a stricter window. Columns > Compare attribution settings shows the same results under other windows. "7-day click" drops the credit Meta gives for views, likes and comments.
  3. Leave club shipments out. Keep Exclude club/recurring auto-ship orders ticked in Configuration, so automatic club charges never count as ad sales.
  4. Check against Commerce7. The Event Log lists every sale 1Pixel sent, with its order number and channel, so you can compare Meta's numbers with your own.
  5. Make sure nothing counts twice. See Other tags on your site.

One setting to check in Ads Manager: in the Tracking section of each ad, make sure your pixel is selected. If Meta shows an Offline events option there, select your pixel under it too, so tasting room sales can be credited to that ad.

We don't recommend turning tasting room sales off. They help Meta learn who your buyers are and find more people like them. Show them in their own column instead.

Wine club

Club shipments

When Commerce7 charges members for a club shipment, it creates an order for each member. 1Pixel leaves these out by default. No ad caused them, and one club run can create hundreds of orders at once, which Meta would credit to whatever ads those members last saw.

To send them anyway, untick Exclude club/recurring auto-ship orders in Configuration. This only affects orders Commerce7 marks as club orders. Regular checkouts, tasting room sales and Tock bookings are sent either way.

If you installed 1Pixel before late September 2026, check this setting. Older installs kept what they had, which may be off.

Club sign-ups

A club sign-up has no price, so Meta warns that your Subscribe events are missing a value. Enter an Average club member value in Configuration, for example what a member spends in a year. 1Pixel sends it with every sign-up so Meta can look for people likely to join. It's an estimate, not a real charge. Leave it blank to send no value.

Reservations and Tock

1Pixel handles the two booking systems differently:

  • Booked in Commerce7's own reservation system: sent as Lead, controlled by Commerce7 reservations.
  • Booked on Tock: 1Pixel only sees the booking if Tock creates an order in Commerce7. It's then sent as Lead, with the booking value.

To set up Tock tracking:

  1. Make sure Tock is on Full. See If you use Tock.
  2. Check Tock isn't sending to Meta as well. See Is Tock already sending to Meta?
  3. Choose how bookings appear in Meta. See Tock settings in 1Pixel.
  4. Make a test booking on Tock and check the Event Log shows it as sent.

If you use Tock

Tock can connect to Commerce7 in three ways. Only Full creates Commerce7 orders, so only Full works with 1Pixel.

Tock connection
What syncs into Commerce7
Does 1Pixel see bookings?
Full
Orders and contacts
Yes. They show as "Tock booking" in the Event Log.
Partial
Contacts only
No
One Way
Nothing
No

Which one do you have? Make a test booking on Tock, wait a couple of minutes, then look in the Event Log. A row with the source Tock booking means Full is on and working. No row means Partial or One Way.

Switching to Full: Tock's support team does this for you. Commerce7 and 1Pixel can't. Email hospitality@tockhq.com and ask them to turn on Full Integration for your Tock and Commerce7 connection. New and reconnected connections start on Partial, so older setups are often on Partial too. After Tock confirms, the first sync can take up to 48 hours. Then make a test booking and check the Event Log.

Not connected at all yet?

  1. In Tock, note your Tock Business ID (top right of the Tock Dashboard).
  2. In Commerce7, go to Apps & Extensions, find the Tock app, click Install App and enter the Business ID.
  3. In Tock, go to Dashboard > Integrations, choose Commerce7, pick your location and reservation channel, and click Save.
  4. The connection starts on Partial. Email Tock support as described above to switch it to Full.

Commerce7's Tock integration guide has more detail.

Is Tock already sending to Meta?

Tock lets you add a Meta Pixel to your booking pages. If your Pixel ID is there, Tock and 1Pixel both report each booking and Meta counts it twice. Look in your Tock Dashboard's marketing or integration settings for a Meta (Facebook) Pixel ID.

  • Recommended: remove the Pixel ID in Tock. 1Pixel sends every synced booking from the server, with its value, so none are lost to ad blockers.
  • Or keep Tock's Pixel and tick Don't track Tock bookings at all. 1Pixel then sends no Tock bookings.

Not sure? Ask Tock support, or contact us and we'll check with you.

Tock settings in 1Pixel

You want
Set this
Ads aimed at bookings, with the least setup
Send Tock bookings as Lead ticked, custom name empty. Bookings arrive as Lead and ads can optimize for them right away.
Bookings under their own name, apart from other leads (what most wineries choose)
Send as Lead ticked, and a custom event name such as TockBooking. Then create a custom conversion so ads can optimize for it.
Bookings counted as sales, with wine orders
Untick Send as Lead. Bookings go as Purchase.
1Pixel to leave Tock alone

Tock cancellations aren't sent to Meta. To test without a real booking, use Simulate Tock booking under Simulate events. The Using Tock? panel on the Event Log tab shows how many Tock bookings were sent and as which event.

Optimizing ads for a custom Tock event

Meta only optimizes ads for its standard events, such as Lead, or for a custom conversion. So a custom name like TockBooking needs this one-time setup.

1. Send the custom name

  1. In 1Pixel Configuration, enter the name under Custom event name for Tock bookings, for example TockBooking, and save.
  2. Wait until a Tock booking shows as sent in the Event Log, so Meta has received the event at least once.

2. Create the custom conversion in Meta

  1. Open Meta Events Manager and select the business account your pixel is in.
  2. Click Custom conversions in the left menu, then Create custom conversion.
  3. Add a Name, such as "Tock booking".
  4. Under Data source, pick the pixel 1Pixel sends to.
  5. Under Conversion event, pick your Tock event name, for example TockBooking.
  6. Leave Rules empty, so every Tock booking counts.
  7. Leave Enter a conversion value unticked. 1Pixel already sends each booking's real value.
  8. Click Create.

The custom conversion only counts bookings that arrive after you create it.

3. Use it in your ads

  • To optimize for bookings: in the ad set's conversion settings, choose your new custom conversion as the conversion event.
  • To see bookings in Ads Manager: click Columns, then Customize columns, find your custom conversion under Custom conversions and add it.

If you change the event name in 1Pixel later, create a new custom conversion for the new name and switch your ad sets to it. Meta's own guide: About custom conversions for web.

Refunds and cancelled orders

1Pixel never sends a refund or a cancelled order as a sale. Commerce7 records a refund as a separate order with a negative total. 1Pixel spots these, and orders marked cancelled, refunded or void, and skips them. They show in the Event Log as ignored.

What 1Pixel can't do: if the original sale reached Meta before the refund, Meta keeps counting it. Meta's Conversions API has no way to take a sale back. If you have a lot of refunds, keep this in mind when you read your ad results, or contact us.

California customers

For customers in California, 1Pixel turns on Meta's Limited Data Use setting. Meta still gets the event, but limits how it uses the data, as California's privacy law (CCPA) requires. It applies when:

  • the customer's address in Commerce7 is in California (state code CA), or
  • the customer record has the field facebook-limited-data-use set to true.

There's nothing to set up.

How customer data is handled

Before anything goes to Meta, 1Pixel hashes the customer's email, name, phone and address (SHA-256). 1Pixel doesn't store these details after sending.

The website script keeps a few browser details for up to 7 days, to match online orders to ad clicks: Meta's browser cookies (_fbp, _fbc) and click ID, the IP address, the browser type, and the page address without anything after ? or #.

Leaving a customer out

To make sure 1Pixel never sends a customer's data to Meta, add this custom field to their customer record in Commerce7:

Field code
1px-opt-out
Value
true

Every event for that customer is then skipped: purchases, club, reservations, everything. You can set the field on each customer by hand, or on a whole list at once through the Commerce7 API.

How this differs from Limited Data Use: with Limited Data Use, Meta still gets the event with limits. With opt-out, nothing is sent.

If your website uses a cookie consent tool such as Ketch or OneTrust, tick Require consent before tracking in Configuration (under Privacy & consent). It's off by default. Only tick it once your developer has connected the tool as shown below, or website events are held forever.

When it's on, the website script holds its events until your consent tool says the visitor agreed. Your developer connects the tool with either of these:

JavaScript
window.OnePixel.setConsent('granted') or window.OnePixel.setConsent('denied')
Browser event
document.dispatchEvent(new CustomEvent('1px:consent', { detail: { state: 'granted' } }))

If the visitor declines, the held events are deleted and nothing is sent until they agree.

This only affects the website script. Orders, club sign-ups and reservations come from Commerce7, never from the visitor's browser, so they aren't held. For those, use opt-out and Limited Data Use.

The Event Log

The Event Log tab lists everything 1Pixel sent to Meta, and everything it chose not to send. It updates by itself, so you can place a test order and watch it appear.

Column
What it shows
Meta event
The event Meta got, such as Purchase or Lead
Source
Where it came from: Commerce7 order, Commerce7 reservation, Tock booking or Website. Tasting room sales also have an In-store badge.
Commerce7 trigger
What happened in Commerce7, or on your website, to cause it
Ref
The order number, reservation ID or membership ID in Commerce7
Status
What it means
sent
Meta accepted it.
skipped
1Pixel chose not to send it, and shows why. For example: the customer opted out, it was a club shipment, Online orders is unticked, Tock tracking is off, the order is more than 7 days old, or the order is $0.
ignored
It isn't a sale, so nothing was sent. For example a refund, a cancelled order, or Commerce7 sending the same order a second time.
error
Meta didn't accept it. 1Pixel tries again 3 times over about 20 minutes. If a retry works, the row changes to sent and says "Delivered on retry". If all 3 fail, it says "Failed after 3 attempts" and the event waits in the failed queue.

You can filter by source, event, status and channel (Online or In-store). Hide duplicates and Hide ignored are on by default, so real sales come first. The Event sources panel counts events by source and shows how many repeat deliveries from Commerce7 were caught.

After you fix a problem (usually an expired token), Retry failed sends events that are still waiting for an automatic retry. Replay dead-letter resends events that failed all 3 tries. Either way, the row changes to sent once Meta accepts it.

Clear deletes the Event Log history in 1Pixel for good. It doesn't remove anything from Meta.

Setup tab status

The Setup tab shows whether 1Pixel is ready. You don't need to set up anything in Commerce7 for events to reach 1Pixel. That connection comes with the app.

What you see
What it means and what to do
Connect your Meta Pixel (step 2)
Turns green, with your Pixel ID, once your Pixel ID and token are saved and Enable server-side tracking is ticked.
Add the website script (step 3)
Detected on your site: the script loaded in the last 7 days. Installed, waiting for step 2: the script is on your site but your Meta details aren't saved yet. Recommended if you run Meta ads: not installed. It's optional. See The website script.
Notes under step 3
Another tag sends the same website event to your pixel. For page views, 1Pixel skips its own and there's nothing to do. For other events, remove the other tag. See Other tags on your site.
Tracking health
Tracking active: your Meta details are saved and tracking is on. Finish setup: it tells you what's missing, either saving your Meta details or ticking Enable server-side tracking.
Your site's own Meta tags
No duplicates or Duplicates found, from a check of your site's Google Tag Manager. See Other tags on your site.

To see whether orders are actually reaching Meta, use the Event Log. A real order showing as sent is the proof.

Match quality

Meta scores how well it can match your events to real people, from 0 to 10. Meta calls this Event Match Quality (EMQ). The Event Log tab shows the score for each event type. A higher score means more sales credited to the right ads, and better lookalike audiences.

Score
What it means
8 to 10 Excellent
Meta matches most of your events.
6 to 7.9 Good
Most events are matched.
Below 6 Needs work
Many events aren't matched. Make sure your customers have an email and phone number in Commerce7.

1Pixel sends everything Commerce7 has for matching: email, first and last name, phone, city, state, ZIP code, country and the Commerce7 customer ID. Online orders also carry the IP address and browser type. With the website script installed, Meta's browser cookies (fbp and fbc) are added too. Fields Commerce7 doesn't have are left out, which is common for walk-in tasting room customers with no address on file. Meta updates the score about 24 hours after real events arrive.

The website script

The website script is one line of code for your public winery website. It works on WordPress, Webflow, Squarespace, Wix and custom sites. You don't need it for orders, club sign-ups or reservations, because those come from Commerce7.

What it adds:

  • Page views, wine page views, add to cart and checkout starts
  • Meta's browser cookies, which help Meta match online orders to the people who clicked your ads

Each of these events is sent twice: once from the visitor's browser and once from 1Pixel's server, with the same event ID. Meta keeps one. If an ad blocker stops the browser copy, the server copy still gets through.

If your site has no Meta pixel yet, the script loads it for you. Don't add Meta's own pixel code or Meta's WordPress plugin as well, or each event is sent twice.

You install it once. Later fixes and improvements come from 1Pixel, with no change to the code on your site.

Install it

  1. In 1Pixel, open the Setup tab, step 3 Add the website script. The same code is in Configuration under Advanced website setup.
  2. Click Copy, or Copy instructions for your web developer to send them the steps.
  3. Paste it on your website just before </body>, on every page. Use a site-wide footer or custom code setting. Add it to the site itself, not through Google Tag Manager.
  4. Publish your site and reload a page. Step 3 on the Setup tab should say Detected on your site.

Where to paste it: on WordPress, a footer scripts setting in your theme or a header and footer plugin. On Webflow, Project Settings > Custom Code > Footer. On Squarespace and Wix, their footer code injection setting.

Turn off overlapping tags first. Your base Meta pixel code can stay. But if Google Tag Manager, the Meta Event Setup Tool or another app already sends page views, wine views, add to cart or checkout starts, turn those off before you tick the same events in 1Pixel. The other tool uses different event IDs, so Meta would count each event twice. For page views, 1Pixel notices the other tag and skips its own. The Setup tab lists any other tags it sees.

Check that it works

  1. Open a wine page on your site and reload it.
  2. With the Meta Pixel Helper browser extension, check that ViewContent and AddToCart show the wine ID, value, currency and quantity.
  3. In 1Pixel's Setup tab, check that Website tracker detected is green. It turns yellow if the script isn't seen for 7 days.

WordPress plugin

If your site runs on WordPress, the 1Pixel WordPress plugin can add the website script for you. It also checks your site for other Meta tags before it switches tracking on.

  1. Email 7labs@dmitru.com for the plugin, then install it in WordPress.
  2. In 1Pixel, open Configuration, then Advanced website setup, and click Generate one-time code under WordPress connection.
  3. Enter the code in the plugin within 10 minutes.
  4. Follow the plugin's checklist. It looks for other Meta tags, asks you to remove duplicates, tests again, then switches tracking on.

Connected sites are listed under WordPress connection. Rotate token gives the site a new connection key without stopping tracking. Revoke disconnects the site straight away.

Other tags on your site

Many winery sites already send some events to Meta through Google Tag Manager or an older setup. If that tag and 1Pixel both send a Purchase for the same order, Meta counts the sale twice and your ads look better than they are.

1Pixel looks through the Google Tag Manager containers on your website (the address set in Commerce7) when you open the app, at most once a day. It lists any tag that would count something twice: a Purchase without a matching event ID, or page views sent by more than one tag. You'll find the list on the Setup tab under Your site's own Meta tags. Click Check again after you change a tag.

To fix a Purchase that's counted twice, in order of preference:

  1. Pause that Purchase tag in Google Tag Manager. 1Pixel's Purchase carries more: the order value, the wines and the customer details for matching.
  2. Or give your tag the same event ID as 1Pixel's. See Event IDs and double counting.
  3. Or untick Online orders in Configuration. 1Pixel then skips online orders and still sends tasting room orders and Tock bookings.

For a full check of what your wine pages send to Meta and Google, run the free checker at 7labs.dmitru.com/check.

For agencies and ad teams

Does 1Pixel replace our pixel?

No. You connect the same Pixel ID you already use, and 1Pixel adds a server connection next to it. It doesn't change your campaigns, audiences or pixel settings. If you uninstall 1Pixel, it stops sending and your pixel stays as it was.

Your base pixel code can stay on the site. Tags that send the same events as 1Pixel should go. See Other tags on your site.

What Meta gets from each part

Part
Events
Why it matters
Commerce7 (always on)
Purchase, Subscribe, Lead, CompleteRegistration, CancelMembership
Every order with its real value, including sales the browser missed and tasting room sales
Website script (optional)
PageView, ViewContent, AddToCart, InitiateCheckout
Browsing and cart activity, plus browser cookies for better matching
Simulate events
Test events only
Checking the setup. Never in live results.

The website script never sends Purchase. All purchases come from Commerce7.

Settings

Start with Which settings to use, then check single settings in Every setting explained. For how tasting room sales are credited and reported, see How Meta credits sales to ads and Clean reporting in Ads Manager.

More purchases than before?

After you switch 1Pixel on, Events Manager often shows more purchases than the browser pixel reported. Usually these are sales the browser missed. To be sure, compare 5 to 10 real orders across the Event Log, Commerce7 and Events Manager.

Sending to a second pixel

1Pixel can send every event to two pixels, for example when an agency and the winery each have their own. Open Secondary Pixel in Configuration and add the second Pixel ID and its access token.

Both pixels get the same live events. Simulated test events only go to the first pixel, so the second one stays clean.

Go-live checklist

  1. Check that the Pixel ID in 1Pixel is the one your campaigns use.
  2. Click Test Connection, then simulate a Purchase and find it in Meta's Test events.
  3. Place a real test order, plus a reservation or Tock booking if the winery uses them. Check that the Event Log shows it as sent.
  4. After 24 to 48 hours, check that Purchase is arriving in Events Manager.
  5. Look at Your site's own Meta tags on the Setup tab and fix anything that counts twice.
  6. If the winery uses Tock, check Tock has no Meta Pixel of its own. See Is Tock already sending to Meta?
  7. Go through Which settings to use, and decide how you'll report tasting room sales and club shipments.
  8. Decide whether the site needs the website script.

Event IDs and double counting

Meta treats two events as one when they have the same event name and the same event ID.

Website script events: the browser copy and the server copy share an event ID, so Meta keeps one. If the browser copy is blocked, the server copy still arrives. If 1Pixel's server can't be reached, the browser copy still goes out.

Purchase: 1Pixel's Purchase uses this event ID:

event_id = "Purchase_" + Commerce7 order number
// example: Purchase_78061

If you keep your own Purchase tag, for example in Google Tag Manager on the order confirmation page, set its eventID to the same string, built from the order number on that page. Meta then keeps one of the two. 1Pixel can't do this for you, because it can't see how your tags are set up.

The website script never sends Purchase, so if you don't have your own Purchase tag there's nothing to set up.

Catalog matching

1Pixel identifies wines the same way as a Meta catalog built from Commerce7: each variant's SKU is the item ID, grouped by the Commerce7 product ID.

Event
What 1Pixel sends
Purchase, AddToCart
Each variant's SKU, with content_type product. If a line has no SKU, the product ID is used.
ViewContent
The Commerce7 product ID, with content_type product_group, because one wine page can show several variants. If the page's structured data names the SKU, the SKU is sent as product instead.

Your catalog feed should use the SKU as id and the Commerce7 product ID as item_group_id. Otherwise Meta can't link these events to your catalog items. Advanced Shopping Feed by 7Labs builds Meta catalogs this way.

What the website events contain

Product and cart events include content_ids, content_type, content_name, value, currency and num_items when available. On Commerce7 product pages, the script reads the product ID, price and currency from Commerce7, so the page doesn't need structured data. Collection pages don't count as wine pages.

AddToCart and InitiateCheckout come from Commerce7's own add_to_cart and begin_checkout events. AddToCart carries the exact variant SKU and only the value of what was just added: adding one $25 bottle twice sends $25 and then $25, and adding two at once sends $50. InitiateCheckout carries the cart total.

Browser console

The website script prints one line in the browser console when it starts, and adds a few read-only helpers on window.OnePixel:

  • OnePixel.help() explains what the script sends and how the browser and server copies are matched.
  • OnePixel.status() prints a table of every event on the current page: the shared event_id, whether the browser and server copies were sent, the product and the value. It also lists other tags seen sending to the same pixel, and returns the same data as an object.
  • OnePixel.debug(true), or ?1px_debug=1 in the page URL, logs each event as it happens. OnePixel.debug(false) turns it off.

None of these show access tokens or customer data. The hosted script starts with a short comment naming 1Pixel, so anyone reading the page source can see what it is. In the browser's Network tab, look for storefront.js, signal/heartbeat and signal/event.

Commerce7 webhooks

1Pixel receives Commerce7 webhooks at https://1pixel.dmitru.com/webhook. They're registered once for the app in Commerce7's Dev Center, so wineries don't enter anything.

  • Order created and updated: online, tasting room and Tock (Full) orders. Commerce7 has no "checkout completed" webhook, so 1Pixel sends Purchase once an order has a submitted or paid date, and only once per order. The Event Log shows these as Checkout completed.
  • Club membership created and cancelled
  • Reservation created: Commerce7 reservations only
  • Customer created

Tock bookings are recognised by externalOrderVendor: Tock on the order, which Tock's Full integration sets.

Tasting room orders go to Meta with action_source physical_store. Online orders use website when the website script recorded the visit, and system_generated when there's no page address to send. Meta uses all of these for measurement and optimization.

Data we keep

Event Log
Kept until you uninstall the app or click Clear. The dashboard shows the latest 100 events. There's no export yet. Ask us if you need one.
Audit log (our record of changes made in the app)
90 days
Records used to stop the same order being sent twice
7 days
Browser details from the website script
7 days
Customer details
Hashed before they're sent to Meta, and not stored in readable form. See California customers.

Common questions

I see "Unauthorized" when I open the app

Open 1Pixel from inside your Commerce7 admin (under Marketing), not from a saved link or a separate browser tab.

Tracking health says "Finish setup"

It tells you what's missing: save your Pixel ID and token, or tick Enable server-side tracking. See Setup tab status.

Are tasting room sales sent to Meta?

Yes. They go as Purchase, marked as in-store. See Online and tasting room sales.

Will Meta credit tasting room sales to my ads?

Yes, when Meta can match the customer and that person interacted with one of your ads within your attribution window. See How Meta credits sales to ads.

Tock bookings aren't in the Event Log

Your Tock connection is most likely on Partial instead of Full. See If you use Tock. If you ticked Don't track Tock bookings at all, this is expected.

Commerce7 reservations don't show as Lead

Tick Commerce7 reservations in Configuration. Tock bookings don't use this. They arrive as orders.

Events don't show in Meta Events Manager

Server events usually take 20 to 30 minutes to appear in Events Manager's Overview. To see an event right away, use Simulate events and Meta's Test events tab.

The Event Log shows an error

1Pixel retries 3 times over about 20 minutes, and a row that gets through changes to sent by itself. If it still says error, read the message under it. The usual cause is an expired access token. Make a new one in Meta, paste it into Configuration, save, then click Replay dead-letter in the Event Log.

How do I make a new access token?

In Meta Events Manager, open Datasets, click your pixel and open Settings. Under Conversions API > Set up direct integration, click Generate access token. Paste the new token into Configuration and click Save configuration.

My site already has the Meta pixel. Will purchases count twice?

The base pixel code is fine. A Purchase tag on your site (often in Google Tag Manager) can count each order twice. 1Pixel checks for this. See Other tags on your site.

Can I send only some events?

Yes. Each event type has its own checkbox in Configuration. See Every setting explained. To stop everything, untick Enable server-side tracking.

Support and feature requests

Email 7labs@dmitru.com or use the contact form. Tell us your winery name and what you see. We usually reply within 1 business day.

Setup help is free. We'll go through it with you until the connection works. See Get help with setup for what to send us and the access we need.

Missing a feature? Tell us. We're happy to add what wineries need.

Found a bug? Report it and we'll fix it as fast as we can.