How to Use Meta Test Events (and Why Nothing Shows Up)

Quick fix: Open your pixel in Events Manager, go to the Test Events tab, and start browsing your site from there in a browser without ad blockers. For server events, add the code shown in the tab as a top-level test_event_code field next to data. If nothing appears, check that the event goes to the same pixel ID you have open.
Test Events is the fastest way to see what Meta actually receives from your site and server, almost in real time. Aggregate reports in Events Manager can lag, while Test Events shows individual events with their parameters as they arrive.
This guide covers testing browser events, testing Conversions API events with test_event_code, reading the results, and the usual reasons the screen stays empty.
Where to find Test Events
Meta's Conversions API documentation gives the path as Events Manager, then Data Sources, then your pixel, then Test Events. Make sure you've selected the pixel (dataset) that your site actually sends to. If your business has several pixels, check the ID in the page's fbq('init', '...') call against the ID shown in Events Manager.
The tab has two parts: testing browser events from your website, and a test code for server events. Labels in Events Manager change from time to time, but both parts have been on this tab for years.
Testing browser (pixel) events step by step
- Prepare a clean browser. Disable ad blockers and privacy extensions for your site, or use a fresh profile. Blocked requests never reach Meta, so they can't appear in Test Events.
- Enter your website URL in the browser events section of the Test Events tab and open it from there. Keep browsing in that same browser.
- Accept marketing cookies if your site shows a consent banner. Without consent, a correctly configured site won't send pixel events.
- Perform the actions you want to test: view a product, add to cart, start checkout, submit a form or place a test order.
- Watch the Test Events list. Each event appears as it's received. Expand an event to see its parameters, such as
value,currencyandcontent_ids.
Keep DevTools open on the Network tab, filtered by facebook.com/tr, while you test. If a request leaves the browser but nothing shows in Test Events, the problem is on the receiving side, such as a different pixel ID. If no request leaves the browser, the problem is in your page code. A pixel-detecting extension like the Pixel Helper extension gives you a second view of what fired on each page.
Testing Conversions API events with test_event_code
Server events don't come from your browser session, so Meta needs a way to show them in the Test Events window. The tab generates a test code, and you send it as test_event_code. It's a top-level field next to the data array, not a property inside each event:
POST https://graph.facebook.com/{API_VERSION}/{PIXEL_ID}/events?access_token={TOKEN}
{
"data": [
{
"event_name": "Purchase",
"event_time": 1793092800,
"event_id": "order_10482",
"action_source": "website",
"event_source_url": "https://shop.example.com/thank-you",
"user_data": {
"client_ip_address": "203.0.113.10",
"client_user_agent": "Mozilla/5.0 ..."
},
"custom_data": {
"value": 129.00,
"currency": "USD"
}
}
],
"test_event_code": "TEST12345"
}
Replace TEST12345 with the code shown in your Test Events tab, and event_time with the real Unix timestamp in seconds. Meta also provides a Payload Helper tool that generates a sample payload you can adapt.
If you use a platform integration or a server-side tag manager, look for a "test event code" setting in its configuration instead of editing payloads by hand.
Meta's documentation says test_event_code is for testing only and must be removed from production payloads. It also notes that events sent with a test code are not dropped: they still flow into Events Manager and are used for targeting and ads measurement. Test with test orders, not fake purchases you wouldn't want counted.
Interpreting the results
For each event in the list, check these points:
- Source. Each event shows whether it was received from the browser or the server. If you send both, you should see one of each for the same action.
- Event name. Confirm it's the standard name you expect (
Purchase, notpurchaseor a custom variation). - Parameters. Expand the event. Check that
valueis a number,currencyis a three-letter code, and product IDs match your catalog. - Event ID. If you run both pixel and Conversions API, the browser and server copies should carry the same event ID so Meta can deduplicate them. See Pixel and Conversions API deduplication.
- Count. One action should produce one event per source. Two browser events for one click is a duplicate installation; see Meta Pixel duplicate events.
Why nothing shows up, most likely first
1. You're looking at a different pixel
Compare the id= parameter on the browser request, or the pixel ID in your Conversions API endpoint, with the pixel open in Events Manager. Old pixels from a previous setup are a frequent cause.
2. The browser request is blocked
Ad blockers, privacy browsers, a consent tool waiting for consent, or a Content Security Policy can all stop the request. In DevTools, blocked requests show an error such as ERR_BLOCKED_BY_CLIENT, and CSP blocks show a "Refused to load" message in the Console. Our Meta Pixel not firing guide covers each case.
3. You browsed outside the test session
Start browsing from the Test Events tab and stay in that browser. Events from your phone, another browser, or a different profile may not appear in your session's view.
4. The test code is in the wrong place or out of date
Putting test_event_code inside an event object, misspelling it, or using an old code from a previous test session are common mistakes. Copy the code currently displayed in the tab and put it at the top level of the request body.
5. The server request failed
Check your server's response from Meta. A valid payload returns a 2xx code, and an invalid one returns a 4xx with a short error message. Typical problems are an expired or wrong access token, a malformed field, or an event_time more than seven days old. Meta rejects the whole request if any event in it is older than that.
6. The event fires on a page you didn't reach
Purchase often only fires on the order confirmation page. If you test without completing checkout, there's nothing to see. Use a real test order or your platform's test payment mode.
How to verify your setup end to end
- Run through a full funnel in Test Events: page view, product view, add to cart, checkout, purchase.
- For each step, confirm one browser event and, if you use the Conversions API, one matching server event.
- Expand Purchase and check value, currency and event ID on both copies.
- Remove
test_event_codefrom your server configuration once you're done. - Over the next days, check the pixel's Overview and Diagnostics for warnings. Meta's setup verification guide says server events should appear in the Overview within 20 minutes.
FAQ
Do test events count in my reports?
Meta's documentation says events sent with test_event_code are not dropped and are used for targeting and measurement. Browser events you trigger while testing are also real events. Use test orders and keep testing short.
Can I leave test_event_code on in production?
No. Meta says to remove it from production payloads. Leaving it on mixes live traffic into the test view and isn't how the field is meant to be used.
Why do browser events show but server events don't?
Usually the server request doesn't include the current test code, it goes to a different pixel ID, or it's failing with an error. Log the full response from Meta's API to see which.
Is Test Events enough to confirm deduplication?
It shows both copies and their event IDs, which confirms the inputs are right. To see whether Meta actually deduplicates at scale, check the event's Event Deduplication tab in the Overview over the following days.
