---
title: "TikTok Pixel event_id missing on WordPress and WooCommerce"
description: "WordPress and WooCommerce TikTok Pixel events without an event_id can't be matched with Events API events. Fix it with one plugin for both, GTM or code."
updated: "2026-10-23"
url: "https://ispixelworking.com/guides/tiktok.missing_event_id/wordpress"
---

# TikTok Pixel event_id missing on WordPress and WooCommerce

Fix guide · WordPress · advanced · about 60 min · updated 2026-10-23

For the finding “TikTok events have no event ID” (`tiktok.missing_event_id`).
Also for: [Any website](https://ispixelworking.com/guides/tiktok.missing_event_id/generic), [Shopify](https://ispixelworking.com/guides/tiktok.missing_event_id/shopify), [Webflow](https://ispixelworking.com/guides/tiktok.missing_event_id/webflow), [Framer](https://ispixelworking.com/guides/tiktok.missing_event_id/framer).

## What this means

Each TikTok Pixel event can carry an **event ID** (`event_id`), a unique label for that one action. Your events arrive with an empty `event_id`. The pixel does not fill in an ID by itself (that is the empty `event_id` field you see in the Network tab): TikTok asks advertisers to choose a unique ID for each event, and if the code that sends the event does not pass one, the field stays empty.

Whether this costs you money depends on whether your site **also sends events from a server** through the TikTok Events API. On WordPress that is common, because TikTok's own plugin, PixelYourSite Professional and Pixel Manager for WooCommerce Pro can send server events:

- **Yes, or you are not sure:** TikTok merges a browser event and a server event only when they share the pixel code, the event name and the `event_id`. When the server event has no `event_id` either, TikTok can fall back to the `_ttp` cookie, but only within 5 minutes and only if the server sends `ttp`. Anything else may be counted twice.
- **No, browser pixel only:** there is nothing to deduplicate yet. It matters the day you add the Events API.

We cannot see server-to-server traffic from a browser, so we cannot tell whether your Events API works; we only check the browser events.

## How to confirm it yourself

1. **Log out of WordPress** or use a **private (incognito) window**, open developer tools (F12), go to **Network** and filter by `analytics.tiktok.com/api/v2/pixel`.
2. Accept cookies, then trigger your key events: submit a test lead, or on a store add a product to the cart.
3. In each request's payload, `event` is the event name and `event_id` is the ID. `"event_id": ""` means no ID. Note **which** events lack it: if `AddToCart` carries an ID but a second page view does not, the events without an ID usually come from a second installation (see "Duplicate TikTok events").
4. If the event without an ID is a `ClickButton` from TikTok's plugin: in the plugin's code (version 1.4.2), its form and button events (`ClickButton`, `SubmitForm`, `Contact`) carry an ID, except the `ClickButton` it sends for Ninja Forms. All of these events are sent from the browser only, with no server copy, so they cannot be counted twice against the Events API.

In TikTok Events Manager, the pixel's detail page shows "Browser", "Server" and "Server & Browser" figures; TikTok says that if "Server & Browser" is too low, you should check your deduplication.

## How to fix

TikTok keeps the first copy of an event and discards later copies with the same pixel code, event name and `event_id` that arrive within 48 hours. On WordPress, the simplest way to get there is to let **one plugin send both** the browser and the server event, because it can give them a shared ID.

**Route 1: one plugin for browser and server events.**

- **TikTok's plugin** ("TikTok" on WordPress.org, TikTok for WooCommerce in WooCommerce's documentation): it installs the pixel and the Events API from **Marketing > TikTok** (on sites without WooCommerce, **TikTok** in the dashboard menu). In the plugin's code (version 1.4.2), each page view and WooCommerce event call uses one ID for the browser and the server copy. But its `Purchase` code runs on two WooCommerce hooks (`woocommerce_payment_complete` and `woocommerce_thankyou`), and each run creates a new ID and its own server `Purchase`, so one order may send two server purchases (our reading of the code, untested). Compare the `Purchase` count in Events Manager with your WooCommerce orders. Its plugin page recommends the pixel it creates "for a more seamless setup and event deduplication" and warns that an existing custom setup may need extra work.
- **PixelYourSite Professional:** add your pixel ID and an Events API access token under **PixelYourSite Pro > TikTok** and turn on the API. Its documentation says browser and API events then share one event ID.
- **Pixel Manager for WooCommerce:** the TikTok browser pixel is free; the Events API is a Pro feature that, according to its documentation, deduplicates browser and server events. Enter the token under **Tracking Pixels > TikTok**.

Then:

1. **Remove every other copy of the pixel:** base code pasted into WPCode, Elementor Pro's Custom Code, a theme field or `header.php`, TikTok tags in GTM, and a second tracking plugin. Each tool adds IDs only to the events **it** sends.
2. **Check that the IDs change between visitors.** A full-page cache (WP Rocket, LiteSpeed Cache, your host's or CDN's cache) stores the page's HTML. If a plugin writes event IDs into that HTML, every visitor can get the same ID, and TikTok then drops real events as repeats. TikTok's plugin creates its IDs in PHP while WordPress builds the page (version 1.4.2), so test it: open the same product page in two private windows and compare `event_id`. PixelYourSite documents an Ajax option for cached sites that creates unique IDs. If IDs repeat, see [Repeated TikTok event IDs](https://ispixelworking.com/guides/tiktok.event_id_reused/generic).
3. **Keep the plugin updated and connected to TikTok.** Its server events depend on that connection.

**Route 2: Google Tag Manager with server-side GTM.** If your TikTok Pixel runs as GTM tags (GTM added by Site Kit, GTM4WP or a snippet; GTM4WP can push WooCommerce events such as `add_to_cart` and `purchase` to the data layer):

1. In TikTok's **TikTok Pixel** tag template, fill **De-duplication Configurations > Event ID** with a variable that creates a new value per event, for example Stape's **Unique Event ID** variable from the Community Template Gallery. TikTok says its interactive GTM setup in Events Manager configures an `event_id` variable for you.
2. Send the same value with the server event, for example by passing it to your server-side GTM container and TikTok's **TikTok Events API (Official)** tag.

**Route 3: your own code.** If a developer sends server events from your theme or a custom plugin (for example from a WooCommerce order hook), pass the same ID to the pixel and the server. For purchases, an ID built from the WooCommerce order number works well. The ID goes in the **third** argument of `ttq.track`:

```js
ttq.track('Purchase', { value: 49.90, currency: 'EUR' }, { event_id: 'order-1234' });
```

The server event must use `event_id: "order-1234"`, the event name `Purchase` and your pixel code as `event_source_id`. Two separately generated random IDs never match.

Keep first-party cookies on for the pixel (**Tools > Events > Data sources** > your pixel > **Settings**), so the `_ttp` fallback still works for events that slip through without an ID.

## Common causes

- The pixel was pasted with TikTok's standard base code and event snippets (in a snippet plugin, theme field or page builder), which do not add event IDs.
- A plugin with the Events API was added later, but an older pasted pixel or GTM tag still sends its own browser events.
- Two tracking plugins run side by side, and only one of them sets event IDs.
- In GTM, the Event ID field of the TikTok tag is empty or uses a value the server never sees.

## How to verify the fix

1. In the Network tab, every pixel request for your key events carries a non-empty `event_id`, and the value changes between actions and between visitors (test in two private windows).
2. In Events Manager, the "Server & Browser" figures for those events grow. Data is not shown in real time.
3. Re-run the check on IsPixelWorking. The issue should be gone.

## Sources

- TikTok API for Business, Event Deduplication (keys, 48 hours, `_ttp` fallback within 5 minutes, Server & Browser metrics): https://business-api.tiktok.com/portal/docs?id=1771100965992450
- TikTok API for Business, Events API 2.0 setup guide for Web (`event_id`, `event_source_id`, first-party cookies in pixel Settings): https://business-api.tiktok.com/portal/docs?id=1771100865818625
- TikTok API for Business, Events API and Pixel setup with Google Tag Manager (interactive setup configures an `event_id` variable): https://business-api.tiktok.com/portal/docs?id=1799004052020225
- TikTok on GitHub, TikTok Pixel GTM template (De-duplication Configurations > Event ID): https://github.com/tiktok/gtm-template-pixel
- TikTok on GitHub, TikTok Events API (Official) server-side GTM template: https://github.com/tiktok/gtm-template-eapi
- WordPress.org, TikTok (official plugin, Pixel and Events API, deduplication note): https://wordpress.org/plugins/tiktok-for-business/
- WooCommerce, TikTok for WooCommerce documentation: https://woocommerce.com/document/tiktok-for-woocommerce/
- TikTok plugin source, version 1.4.2 (IDs created in PHP, one ID for pixel and Events API per call, `Purchase` on two WooCommerce hooks): https://plugins.svn.wordpress.org/tiktok-for-business/trunk/pixel/Tt4b_Pixel_Class.php
- TikTok plugin source, version 1.4.2 (form and button events pass an `event_id` in the properties, except the Ninja Forms `ClickButton`; browser only): https://plugins.svn.wordpress.org/tiktok-for-business/trunk/admin/js/ajaxSnippet.js
- PixelYourSite, TikTok Tag and API (one event ID for pixel and Events API): https://www.pixelyoursite.com/tiktok-tag-pixelyoursite
- PixelYourSite, TikTok Settings (PixelYourSite Pro > TikTok, access token): https://www.pixelyoursite.com/docs/tiktok-settings-configuration
- PixelYourSite, General settings (Ajax options for cached sites, unique `event_id`): https://www.pixelyoursite.com/docs/general-settings-configuration
- SweetCode, Pixel Manager: TikTok (Events API in Pro, browser and server deduplication): https://sweetcode.com/docs/pmw/plugin-configuration/tiktok
- WordPress.org, GTM4WP (WooCommerce data layer events): https://wordpress.org/plugins/duracelltomi-google-tag-manager/
- Stape, Unique Event ID variable: https://stape.io/helpdesk/documentation/unique-event-id
