Checklist

How do you test a Shopify cookie banner's Reject All button?

Start a free audit

Test Shopify Reject All in a clean profile: compare fresh, reject, and accept cookies and pixels. The Privacy API records consent and does not block scripts.

In brief

To test Reject All on a Shopify storefront, open the shop in a clean profile, click Reject All, Decline, or Essential only, then navigate once. Record cookies, storage, and third-party ad or analytics requests. Compare that run with a fresh visit and with Accept All on the same URL. If post-reject marketing pixels look like Accept, the banner is not gating those scripts. The Customer Privacy API records consent and does not by itself block theme, app, or pixel scripts.

Not legal advice

This page is a Shopify storefront test for Reject All, Decline, or Essential only. It is not legal advice, not a GDPR or CCPA certificate, and not a verdict that a banner meets a statute. Pass and fail below mean the network and cookie jar changed, or did not. Counsel still owns the legal reading.

Short answer

Use a clean browser profile, open the shop, click Reject All (or Decline, or Essential only), then reload or navigate once. Record cookies, storage, and third-party ad and analytics requests. Compare that run with a fresh visit and with Accept All on the same URL.

If marketing pixels or analytics after Reject look like Accept, the banner UI is not gating the scripts that matter. On Shopify that often happens when a theme embed, an app pixel, or a customer event ignores the consent state. Shopify's Customer Privacy API records consent. It does not automatically block scripts. The API limits guide walks that split. Keep state-labeled screenshots and request lists.

When the banner exists and the pixels still fire

The failure mode is specific. The reject control is on the page. In Network you still see hosts such as connect.facebook.net, www.googletagmanager.com, or analytics.tiktok.com, or the same marketing cookies you saw after Accept. Those host names are examples of what to look for. They are not a measurement of a named shop.

Typical causes sit outside the banner widget. A script in theme.liquid or a Liquid snippet loads on every page. An app embed injects a tag the banner does not know about. A customer event or a web pixel subscribes without reading the consent state. A pixel was installed in a channel the CMP does not control. The server sets a cookie on the document response before any client script can wait.

One sentence on the API: a recorded consent state is not a firewall. Tags still have to read that state and skip their own loads. Read the Customer Privacy API limits guide before you spend a day inside the banner admin.

Prep

Write down the exact button text you will click. Reject All, Decline, and Essential only are not interchangeable if the banner wires them differently. Note the theme and the apps you expect to load. Verify current Shopify admin labels in Shopify's own docs when you follow a menu. This page describes capabilities, not a click path that will rot when the admin is renamed.

If you need to claim an EU result, run the test in an EU context or use ConsentProbe paid EU scenarios. A free US-baseline visit is one non-California technical record. It is not an EU reject conclusion. The free versus paid guide states that scope. The EU fresh, reject, and accept guide is the three-state comparison when the region is the EU.

Prep before the three Shopify runs. Technical checklist only.
ItemSpec
ProfileClean or dedicated. Turn off an ad blocker that would hide the bug.
StorefrontA production or staging URL you control. Note the theme and the apps.
RegionEU-context testing, or a paid EU scenario, if you will describe the result as EU. A free US-baseline visit is not that result.
LabelsExact button text: Reject All, Decline, or Essential only.
ToolsDevTools Network and Application (cookies and storage). Optional HAR, with query secrets removed.

Three runs

Change only the consent action. Keep the URL and the wait time stable. Start runs B and C from clean profiles so an earlier Accept does not leak into Reject.

Fresh, Reject, and Accept on the same Shopify URL.
RunActionRecord
A FreshLoad the shop. Do not click Accept.Cookies, storage, third-party requests, banner screenshot.
B RejectClick Reject All, then navigate once.The same surfaces, plus whether marketing pixels dropped.
C AcceptNew clean profile. Click Accept All.The same surfaces, as the comparison baseline.

How to read the diff

Build a short vendor list from the three runs. Mark each host or cookie present or absent.

Vendors present in B and in C mean Reject was ignored for those vendors. B cleaner than C means partial wiring: some tags waited, some did not. Write which hosts stayed. A quiet analytics cookie does not clear a marketing pixel that still fired.

If A is already full of marketing pixels, you have a pre-consent problem as well as a reject problem. The Shopify pre-consent checklist and the general pre-Accept guide cover that fresh load. This page stays on the reject run. The general Reject All guide covers the same failure on non-Shopify stacks. Use it when the shop is not the only property in scope.

Shopify checks after the diff

The Shopify pre-consent checklist is the longer storefront list. These rows are the reject-specific slice. Confirm current behavior in Shopify's pixel and customer privacy docs before you file a bug against a menu name.

  • Customer events and pixels: do they wait until marketing is allowed, or do they load on the first page view?
  • App embeds: which ones inject a tracker the banner never names?
  • Theme files: is a script hard-coded in theme.liquid or a snippet that renders on every template?
  • Banner and API: does the banner write the Customer Privacy API, and do the tags read that state before they fire?
  • Other storefronts: password page, landing pages, and checkout-adjacent pages if they are in scope and you are allowed to test them.

Evidence pack

Label the files Fresh, Reject, and Accept. Include cookie tables, key request URLs (the pixel domains, not only the banner vendor), CMP or banner screenshots, timestamps, the shop URL, and theme or app notes.

Send engineering the pixel domains that survived Reject, circled on the request list. A screenshot of the green reject toast without the Network panel does not show the bug.

ConsentProbe maps findings to a request, a cookie, or a screenshot. Paste the shop URL when you want that labeled pack without keeping three DevTools sessions straight.

DIY versus ConsentProbe

DIY is the right way to learn one shop. A stored pack is the right handoff when someone who was not in the browser has to read the result.

Manual Shopify runs versus a ConsentProbe evidence pack. Neither one is a legal certificate.
DIY on ShopifyConsentProbe
SetupManual profiles and DevToolsPaste the storefront URL. Scenarios are labeled.
ConsistencyA reused profile or a missed pixel is easyThe pack repeats the same evidence types
ScopeGood for learning and a one-off debugUse it when engineering or counsel needs a shareable file
RegionYou have to control the context yourselfFree US-baseline is not an EU result. Paid EU covers reject and accept comparisons.

FAQ

How do I test Shopify Reject All in five steps?

Use a clean profile, load the shop, click Reject All, navigate once, and compare cookies and requests with a separate Accept All run.

Why does Reject All still track on Shopify?

Theme scripts, app embeds, customer events, or pixels often load outside the banner. The Customer Privacy API records consent. It does not automatically block those scripts.

Is the Customer Privacy API enough?

It records and exposes consent. You still verify Network and cookies on the storefront. Read the API limits guide for that boundary.

Does a free US ConsentProbe scan prove EU Reject All?

No. A free US-baseline visit is a non-California technical record. Use paid EU scenarios when you need an EU reject and accept comparison.

What do I send my developer?

Fresh, Reject, and Accept packs with the pixel domains marked. A banner screenshot alone leaves the failing host unnamed.

Should I also check before Accept?

Yes. Pre-consent loading is a separate failure. Use the Shopify pre-consent checklist for that pass.

Related guides

The general Reject All guide is the non-Shopify diagnosis. The Shopify pre-consent checklist and the platform-agnostic checklist cover the fresh load. The API limits guide explains why a recorded consent state still leaves scripts running.

Sources

These links cover the platform and regulatory context used in this guide. Applicability still depends on the organization and jurisdiction.

Save a US-baseline technical record

After a DIY check, run a free US-baseline audit: one browser visit outside California, with cookies, requests, and screenshots stored as evidence. That visit does not run EU reject/accept or California GPC. EU, California, and Global 2 audits can be purchased from Billing after sign-in.

Test Shopify Reject All | ConsentProbe