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. Use NewPayingCustomer to measure new paying customers. This dedicated event is sent through the browser Pixel and, when enabled, Conversions API. 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

NewPayingCustomer is a dedicated Meta custom event. It identifies the customer's first successful ticket order charging £0.01 or more through the payment gateway. Registration alone, free entries, wallet-only purchases and wallet top-ups do not qualify. A customer can qualify after earlier free entries. Customers with previous qualifying paid ticket orders or imported paid spend are excluded, including customers whose earlier completed purchase was later refunded. An unsuccessful attempt refunded before completion does not use up eligibility.

The backend assigns one qualifying order per customer. Both channels use that decision:

ConnectionWhen it sendsRequired setup
Browser Meta PixelWhen the customer reaches the successful order confirmation page within 24 hours of paymentMeta Pixel ID and accepted marketing cookies
Server Conversions API (CAPI)After the qualifying order is fulfilled, even if the customer closes the pageThe same Pixel ID, CAPI enabled with a valid token, and consent recorded at checkout

The browser checks eligibility in a separate optional request after confirmation details load. A slow or failed tracking check cannot hold up the confirmation page; it simply skips the browser custom event. CAPI runs independently in the background.

Both report NewPayingCustomer with the same event ID, so Meta can deduplicate the browser and server copies. The event value is the amount actually charged, excluding wallet credit. The normal Purchase event continues to report the full order total for every purchase.

In Meta Events Manager, test with a customer who has no previous paid orders, accept the cookie banner and complete a ticket purchase of at least 1p. Check for NewPayingCustomer in Test Events. A second purchase by that customer should produce Purchase only. Once Meta has received the custom event, use it to create a custom conversion for new paying customers; campaign availability is controlled by Meta. See Server-Side Purchase Tracking to enable and test CAPI.

What about the existing new_customer flag? The browser Purchase event still carries it. It checks whether there is an earlier completed ticket order, without checking the amount paid; an earlier free order can therefore make it false. CAPI Purchase does not carry that flag. Use NewPayingCustomer for the paid-customer definition above. TikTok does not receive this custom event.

Copy this to your agency:

The site supports Meta Pixel and Conversions API. NewPayingCustomer fires for a customer's first successful ticket order charging at least £0.01, excluding free entries, wallet-only orders, top-ups and existing paying customers. Pixel and CAPI share an event ID for deduplication. CAPI must be enabled in Settings → Advanced → Analytics, and both channels require marketing-cookie consent. Use NewPayingCustomer for your new-paying-customer conversion.

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 reload. A few security-sensitive pages are excluded — see Pages your tracking never seesnone
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
NewPayingCustomer (custom event)First qualifying ticket order charging at least £0.01; browser and CAPI when enabledcontent_ids, content_type, value (amount charged), currency, num_items, order_id
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 event parameters. CAPI uses hashed email and phone identifiers in its separate customer-matching fields; see what is sent. 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.
  • Server-side tracking covers Meta ViewContent, Purchase and NewPayingCustomer. Enable Conversions API to send these from your server as well as the browser. Other events, and TikTok tracking, remain browser-only.
  • No tracking without consent. There is no way to fire events for visitors who have not accepted marketing cookies.