Before Black Friday: check the tracking your holiday decisions depend on.

The busiest week of the year is the worst time to find out purchases stopped recording, or that every order counted twice. Here’s what I check before the holidays, in the order I check it.

Published 5 minute read

The short answer

Place a real test order and follow it through every system: the store, GA4, Google Ads and Meta. Check that it’s counted once, with the right value and currency, and that it still records when a visitor accepts consent and doesn’t when they decline. Do it before your code freeze, because after the freeze, fixes wait until January.

On this page
  1. Start with one real order
  2. Is the purchase counted once, with the right value?
  3. Does the purchase keep its source?
  4. Do the ad platforms see it?
  5. Does tracking follow the consent choice?
  6. Has anything changed on the site since the last check?
  7. During the sale week

Start with one real order

Every check below comes back to one test purchase. Use a real product, a discount code if you’re running one, and the payment methods your customers actually use, including any that send the buyer to another site, such as PayPal or Shop Pay.

Write down the order number, the total, the tax and shipping, and the time. Then look for that exact order everywhere it should appear. A tag firing in Tag Manager’s preview is a good sign, but it isn’t proof. The order showing up in each platform, once, with the right value, is proof.

Is the purchase counted once, with the right value?

In GA4, find the test order by its transaction ID. Check three things:

  • Counted once. Reloading the confirmation page or returning to it from an email shouldn’t create a second purchase. Every purchase event should send a transaction ID, so duplicates can be spotted and removed.
  • The right value. Decide whether revenue includes tax, shipping and discounts, then check that the value matches that rule. A mismatch here makes return on ad spend wrong in every report.
  • The right currency. If you sell in more than one currency, each purchase needs its own currency code, or GA4 treats every sale as your default currency.

Does the purchase keep its source?

When a payment provider sends the buyer to another site and back, GA4 can credit the sale to that payment site instead of the ad or email that brought the buyer in. Check that the test order kept its original source. If it shows a payment provider as the referral, add that domain to GA4’s list of unwanted referrals.

Do the ad platforms see it?

Holiday bidding runs on these numbers, so check each platform directly.

  • Google Ads. The purchase conversion should record with its value. Google combined the enhanced conversions settings into a single setting this year, so confirm it’s on for your purchase conversion and that the account has accepted Google’s customer data terms.
  • Meta. If you send purchases through both the Meta pixel and the Conversions API, each pair must share the same event ID so Meta counts the sale once. In Events Manager, look for your test purchase and check that it isn’t counted twice.

Has anything changed on the site since the last check?

Most holiday tracking problems come from a recent change, not an old one: a new theme, a checkout app, a redesigned confirmation page, a new cookie banner, or a platform update. If your store moved to a newer checkout, check that tracking scripts that used to run on the thank-you page still run somewhere.

List what changed since your last good sales day and test those pages first.

Five checks, one test orderRun them in order. Each one assumes the one before it passed.
The pre-holiday check: five checks on one test order
CheckHow to testWhat good looks like
Purchase recordedPlace a real order and find its transaction ID in GA4One purchase, matching order number
Value and currencyCompare GA4’s revenue with the order totalMatches your revenue rule, correct currency
Source keptPay with a provider that redirects off-siteOriginal source, not the payment site
Ad platformsFind the order in Google Ads and Meta Events ManagerCounted once in each, with value
ConsentRepeat the order after accepting, then decliningRecords only as your consent setup allows

During the sale week

Set up a simple daily check: orders in your store against purchases in GA4 and conversions in Google Ads and Meta. The numbers won’t match exactly, since each platform counts differently. What matters is that the gap stays steady. A sudden change in the gap usually means something broke, and you’ll catch it in a day instead of in January.

Add an annotation for each promotion’s start and end, so next year’s comparison makes sense.

Where the work goes from here

Red sandstone towers and ledges above a slickrock wash with yellow-flowered shrubs, under a gray, cloudy sky.

Want a second set of eyes before your code freeze?

Tell me your store platform, your ad channels and when your freeze starts. If you’re an agency, I can run this check across several client stores.