Skip to content

Tracking Pixel Events

Your site fires a full set of standard conversion events into your Meta Pixel and TikTok Pixel automatically, at every step from first page view to purchase. There is nothing to install and no custom code to write: enter your pixel IDs once and everything on this page starts firing.

Where to set it up: Admin → Settings, then the Advanced tab (/admin/settings), under Analytics. See Connect analytics and tracking pixels for the setup steps. This page covers the ad pixels only. Your site's own visitor analytics are covered in Website Analytics.

Brief your ad agency

When your agency asks "what events does the site fire?", send them the Meta event reference and TikTok event reference below.

Also tell them two things, because both come up every time:

  1. Do not paste a pixel snippet into Custom Scripts. Your site already loads the pixel, so a pasted copy would double-count page views. Pasted scripts also run on every page regardless of consent, which would bypass the cookie banner that keeps your tracking compliant.
  2. No developer work is needed to split new customers from repeat buyers. That flag is already on the Purchase event. See Report on first-time buyers in Meta.

Check your events are firing

  1. In Meta Events Manager, open the Test Events tab and follow its instructions to open your site.
  2. Click Accept on the cookie banner on your site. This is the step people forget. With the banner unanswered nothing fires at all and the test looks broken.
  3. Walk the funnel: open a competition (ViewContent), add tickets to the basket (AddToCart), start checkout (InitiateCheckout).
  4. To verify the whole path, complete a small real order. The confirmation page fires Purchase, with new_customer among its parameters.
  5. Watch the events arrive in the Test Events stream and check each one's parameters against the reference tables below.

TikTok has an equivalent test tool in TikTok Ads Manager under Events. The same walkthrough applies, including the consent step.

Report on first-time buyers in Meta

Every Meta Purchase event carries a new_customer parameter: true when this is the customer's first ever paid order on your site, false on every repeat purchase. Turn it into something you can optimise towards:

  1. In Meta Events Manager, open Custom Conversions and click Create custom conversion.
  2. Choose your pixel as the data source and Purchase as the event.
  3. Add a rule on the event parameter: new_customer equals true.
  4. Name it something like "First-time purchase" and save.

You can now report on first-time purchases in Ads Manager, optimise campaigns towards acquiring new customers rather than repeat orders, and build audiences either side of the split.

The new_customer flag is on Meta's Purchase event only. TikTok's CompletePayment does not carry it.

Explain why your pixel numbers run below your real traffic

Both pixels only load after a visitor clicks Accept on your site's cookie banner. Visitors who click Reject, or who never answer the banner at all, fire no events whatsoever. So:

  • Pixel page views will always sit below your true visitor numbers.
  • Retargeting audiences are built from consenting visitors only.
  • Reported conversions can undercount real orders, because a buyer who declined cookies converts invisibly.

This is compliance working as intended and it cannot be switched off. If your agency flags "missing" traffic, point them at this section.

Meta Pixel event reference

EventWhen it firesKey parameters
PageViewEvery page a visitor views, including moving between pages without a full reloadnone
ViewContentA visitor opens a competition pagecontent_ids, content_name, content_type (product), value (price of one ticket), currency
AddToCartA visitor adds tickets to their basketcontent_ids, content_name, content_type, value (ticket price multiplied by quantity added), currency
RemoveFromCartA visitor removes a competition from their basketcontent_ids, content_name, content_type, value (total removed), currency
InitiateCheckoutThe customer starts payment on the checkout page, for card and wallet-credit orders alikecontent_ids (every competition in the basket), content_type, value (basket total), currency, num_items (total tickets)
PurchaseThe order confirmation page, once payment has succeededcontent_ids, content_type, value (order total), currency, num_items, order_id, new_customer
CompleteRegistrationA new customer verifies their email address to complete sign-upstatus (success)
Login (custom event)A customer logs in, including after two-factor authenticationnone

Worth knowing:

  • content_ids match your Meta catalogue. The identifiers in these events are the same ones your product catalogue feed publishes, so dynamic ads and "products matched" reporting work with no mapping.
  • All values are in pounds (GBP). The Purchase value is the full order total, including any part the customer paid with wallet credit (store credit).
  • Purchase only fires for real, successful orders. If a payment ultimately fails, or the order is automatically refunded, no Purchase event is sent. Failed orders never book phantom conversions.
  • CompleteRegistration counts confirmed accounts. It fires when the customer clicks the verification link in their email, not when they submit the sign-up form.
  • Login is a custom event. It appears under custom events in Meta Events Manager and is useful for building audiences of engaged, returning customers.

TikTok Pixel event reference

EventWhen it firesKey parameters
Page viewEvery page a visitor views, including moving between pages without a full reloadnone
ViewContentA visitor opens a competition pagecontent_id, content_name, content_type (product), value (price of one ticket), currency
AddToCartA visitor adds tickets to their basketcontent_id, content_name, content_type, value (ticket price multiplied by quantity added), currency
InitiateCheckoutThe customer starts payment on the checkout pagecontent_ids, content_type, value (basket total), currency, quantity (total tickets)
CompletePaymentThe order confirmation page, once payment has succeeded. This is TikTok's equivalent of Purchasecontent_ids, content_type, value (order total), currency, quantity, order_id
CompleteRegistrationA new customer verifies their email address to complete sign-upstatus (success)
Login (custom event)A customer logs innone

TikTok does not receive a remove-from-basket event. That one is Meta only.

Alongside the events, your site makes TikTok's advanced matching (identify) call so TikTok can match conversions to its own users. It runs at three moments: when a customer logs in, when a new customer verifies their email, and after a successful purchase. It shares the customer's email address, and their phone number where the order has one. This uses TikTok's own supported matching mechanism, it only happens for visitors who accepted marketing cookies, and the details are never attached to the event payloads themselves.

What your site does not do

Three things agencies commonly ask about or assume, especially those migrating you from a WordPress site:

  • No personal data in Meta event payloads. Your site never puts a customer's email address, phone number or postal address inside Meta pixel events. Sending raw personal data in event parameters is against Meta's terms. Some WordPress pixel plugins did exactly that, which is why agencies sometimes expect it. Customer matching on TikTok happens only through the supported advanced matching call described above.
  • No server-side events. All events fire from the visitor's browser. If your agency asks about the Meta Conversions API (server-side event sending), that is not currently available.
  • No tracking without consent. There is no way to fire events for visitors who have not accepted marketing cookies.