Black Friday tracking QA: check GA4 and the Meta Pixel before your biggest week
Black Friday falls on November 27, 2026 and Cyber Monday on November 30. In that week, a purchase event that stops firing, fires twice or loses its value distorts the reports and the campaign signals that budget decisions rely on. This checklist covers what to check in the browser in the weeks before, and how to watch the numbers during the week.
1. Two to three weeks before: list what changed
Start by reviewing changes made since the last time you confirmed that purchases were measured correctly:
- Theme, apps and checkout. Shopify set August 26, 2026 as the deadline for non-Plus stores to upgrade their Thank you and Order status pages; the upgrade replaces the existing pages and incompatible customizations stop working. If purchase tracking used to live in those pages, confirm how it is sent now (for example, an app pixel or a custom pixel in Customer events).
- Tags and containers. New versions of the tag manager container, new tags added for the campaign, or a second copy of the same tag added by an app.
- Consent banner. Changes to the banner or its configuration. With Google’s consent mode, check which consent types your banner updates (
ad_storage,analytics_storage,ad_user_data,ad_personalization) and whether you use basic or advanced mode. - Promotions. New discount types, gift cards, bundles or free gifts that create orders your tracking has not seen before.
2. Place a test order and read what the browser sends
Place an order through the real checkout with DevTools open, using your platform’s test mode or a real order you refund afterwards. Then check each request:
On Shopify, customers cannot place live orders while the payment provider is in test mode. Use a test store or a planned maintenance window, and restore live payments afterwards. A real payment that you later refund may incur processing fees.
- GA4 purchase (a request to a path ending in
/g/collectwithen=purchase): atransaction_idthat is not empty and matches the order (ep.transaction_id), avalue(epn.value) and acurrency(cu), and the items with anitem_idoritem_name. Google recommends a value equal to the sum of price × quantity of the items, without shipping or tax, which have their own parameters. - Meta Pixel Purchase (a request to
facebook.com/trwithev=Purchase): Meta requiresvalueandcurrencyfor Purchase (cd[value],cd[currency]). If the same purchase is also sent from a server with the Conversions API, Meta’s recommended deduplication compares the event name and the event ID of the same purchase and pixel:eventIDin the fourth argument offbqandevent_idin the server event. The browser request carries the ID aseid. Seeing it in the browser does not prove that the server sent the matching event or that Meta deduplicated it. - How many times each one is sent. For an implementation that sends browser purchases, expect one purchase event per order for each intended GA4 measurement ID and Meta pixel. Check each destination separately. Reload the confirmation page once and check whether it is sent again.
- With a discount code. Repeat the order with the promotion you will run. For GA4, send each item’s discounted unit price in
priceand calculatevalueas the sum ofprice×quantity, excluding shipping and tax. Google does not subtractdiscountautomatically. The optional event-levelcouponparameter can identify the order’s code (ep.coupon). Check Meta’s amount separately against the integration’s documented definition. - With consent denied. Repeat the journey refusing consent and check that what is sent matches the consent mode you chose: in basic mode, Google tags send nothing until the visitor consents.
For a step-by-step reading of each request, see how to check a GA4 purchase event and how to check Meta Pixel event parameters. In Meta’s Events Manager, check the events received (Meta suggests checking within 20 minutes) and review the Event deduplication tab. For GA4, enable debug mode on your test device and select that device in DebugView. Events may not appear there when consent for Analytics cookies is denied. These views help inspect collection; they do not establish final reporting, attribution or successful deduplication of each order.
3. Duplicates and empty IDs
- GA4 deduplicates purchases from the same user with the same transaction ID in web streams. Use a unique, non-empty ID for each order. Google warns that it deduplicates all purchase events sent with
transaction_id="", which can cause undercounting. Different IDs for the same order do not provide transaction-ID deduplication (see GA4 duplicate purchase events). - Meta Pixel events sent twice from the browser are a separate problem from Pixel and Conversions API deduplication: check that only one Purchase request per order and intended pixel leaves the browser (see Meta Pixel firing twice).
4. During the week: compare every day
Agree on a short daily check before the week starts, and keep tag and checkout changes to a minimum until it ends.
- Orders vs purchases. Compare the same sales channels, dates and time zone. Treat yesterday’s comparison as provisional: GA4 processing can take 24–48 hours. Recheck it after processing, and investigate a sudden change with a test order. A difference alone does not prove a tracking failure.
- Unusual values. Check unexpected amounts against the actual orders. Zero can be valid after a full discount, and higher revenue without more orders can reflect larger purchases. Investigate duplicates or incorrect values when the orders do not explain the change.
- After any change. If something has to change during the week, place another test order right after it.
To compare orders and purchases order by order after the week, see GA4 purchases don’t match Shopify orders.
Checklist
- Changes since the last confirmed check listed: theme, apps, checkout pages, tags, consent banner, promotions.
- A test order through the real checkout, with DevTools open.
- GA4: one purchase per order and intended measurement ID, with a non-empty transaction ID, value, currency and items.
- Meta Pixel: one Purchase per order and intended pixel, with value and currency; when using event-ID deduplication with a server event, matching event names and IDs.
- A second test order with the discount you will run, and one with consent denied.
- A daily comparison of orders and purchases agreed for the week.
Google Analytics is a trademark of Google LLC. Meta is a trademark of Meta Platforms, Inc. Shopify is a trademark of Shopify Inc. Tracklint is not affiliated with, endorsed or sponsored by Google, Meta or Shopify.