Marketing intelligence
White Friday 2026: The Measurement Setup GCC Stores Need Before the Sale
A step-by-step checklist to agree definitions, capture a baseline, verify purchase tracking and freeze changes before the biggest sales week of the year.

To measure White Friday properly, do four things before the sale starts. Agree what counts as revenue, capture a baseline from normal weeks, test purchase tracking on every ad platform and in GA4, and freeze tracking changes for the sale week. None of this can be fixed after the event. A tag that wasn't firing on Black Friday (27 November 2026) won't record those orders afterwards, and a baseline you never saved can't be rebuilt honestly.
"White Friday" is the name many GCC retailers use for their Black Friday sales. Many stores also run promotions around 11.11 (11 November). This guide treats the whole late-November period as one measurement project.
Why the setup has to happen now
Most post-sale arguments come from measurement gaps, not from performance. The same three gaps come up every year:
- Definitions change halfway through. Finance reports delivered revenue excluding VAT, while marketing reports platform-attributed purchase value. Neither is wrong, but they can't be compared.
- There is nothing to compare against. Without a saved baseline, any sales number looks like a success.
- Tracking breaks quietly. A checkout update or a new payment option stops the purchase event, and nobody notices until the reports look odd.
Some fixes also take time to show up. In GA4, an event you mark as a key event can take up to 24 hours to appear in standard reports, and it isn't applied to older data. Changes made on sale day are too late.
The timeline from now to the sale
| Window | Focus | Done when |
|---|---|---|
| 9 – 13 Nov | Definitions and tracking audit | Revenue definition signed off; test purchases recorded on every platform |
| 14 – 18 Nov | Baseline and campaign structure | Baseline sheet saved; UTMs and promo codes assigned |
| 19 – 22 Nov | Freeze and dry run | No more tag or checkout changes; dashboard reviewed with stakeholders |
| 23 Nov – 2 Dec | Sale window | Daily review using the agreed numbers |
| 3 – 16 Dec | Settlement | Returns and cancellations applied; final report issued |
Adjust the dates to your own campaign calendar, but keep the order. Definitions come first, the freeze comes before the sale, and the final report waits for returns.
Step 1: Agree the definitions
Write these down in one place and get finance and marketing to agree on them:
- Sale window: the exact start and end, in your store's timezone.
- Revenue basis: orders placed, orders delivered, or orders settled. Cash-on-delivery stores should report placed and delivered separately.
- Tax and shipping: whether VAT and delivery fees are included.
- Cancellations and returns: how they're subtracted, and when the number is considered final.
- Headline ratio: blended ROAS, MER or contribution margin. Use the same one before, during and after the sale.
If you haven't settled the ratio yet, how to track blended ROAS and MER explains the difference and gives a worked example.
Step 2: Capture a baseline
A baseline is a record of what a normal week looked like. Save it now, before anyone starts adjusting campaigns for the sale.
- Use 4 recent comparable weeks with no major promotion. Leave out any week with an 11.11 sale.
- Record daily orders, net revenue, average order value, new versus returning customers, and spend by channel.
- Note anything unusual, such as a stock-out, a site outage or a payday effect at the end of the month.
Store this as a fixed sheet that nobody edits later. After the sale, it helps you judge how much of the uplift was extra demand and how much was purchases brought forward from December.
Step 3: Test purchase tracking on every platform
Place a small real test order and confirm it appears everywhere it should. Check each platform separately:
| Platform | What to verify | Common failure |
|---|---|---|
| GA4 | The purchase event arrives with value, currency and transaction ID, and is marked as a key event | Thank-you page skipped by a new payment method |
| Meta | Pixel and Conversions API both send purchases with a shared event ID | Duplicate purchases when the IDs don't match |
| TikTok | Pixel and Events API send the same event_id, which TikTok uses to remove duplicates | Value sent without currency |
| Snapchat | Snap Pixel and Conversions API send purchase events with value and currency | Events firing on page load instead of on purchase |
| Store (Salla, Zid, Shopify) | The order appears with the correct status, discount and payment method | COD orders counted as paid immediately |
Record the order ID, time and amount of each test. If a platform shows the purchase twice or not at all, fix it before the freeze. Don't just note it and move on.
Step 4: Make every channel identifiable
The post-sale question will be which channels drove results. Make that answerable now:
- UTM parameters on every paid and email link, using one naming convention for source, medium and campaign.
- Unique promo codes per influencer and per major channel. A code proves which offer was used, even when the click came from another device.
- A campaign log listing launch times, budgets and offer changes. It explains spikes that would otherwise look like tracking errors.
Step 5: Freeze and do a dry run
From about a week before the sale, stop all changes to tags, checkout and tracking scripts unless something is broken. Then run a dry run with the people who will read the reports:
- Open the dashboard and confirm each number matches its source for one completed day.
- Confirm the dashboard shows when it was last refreshed.
- Agree who checks the numbers each morning, and what counts as a problem that needs action.
An illustrative daily sale sheet
The columns below are an example layout, not a required format. Keep platform numbers and store numbers in separate columns.
| Date | Store orders | Net revenue (SAR) | Spend, all platforms (SAR) | Blended ROAS | Meta purchases | TikTok purchases | Snapchat purchases | Notes |
|---|---|---|---|---|---|---|---|---|
| Baseline day avg. | 140 | 42,000 | 9,000 | 4.7 | 61 | 38 | 29 | 4-week average |
| Sale day 1 |
Add up the platform purchase columns and you'll usually get more than the store order count, because several platforms claim the same sale. That's expected. The store columns are the business result, and the platform columns show signal and trend.
After the sale
Label the first numbers as provisional. Apply cancellations and returns once your returns window closes, then publish the final report against the baseline you saved. For cash-on-delivery stores, delivered revenue is the number to judge the sale on.
If you want these numbers in one place instead of five tabs, AKM brings connected ad accounts and store data together, and Report Builder lets you build the daily sale view once and refresh it each morning. Our Snapchat Ads to BigQuery guide covers the warehouse route if you prefer to model the data yourself.