The timing dilemma
Every consent banner faces the same dilemma. Show it immediately and it blocks the first impression: the visitor's first experience of the site is a legal interruption. Delay it and the visit starts clean, but the tracking tags may fire before the visitor has chosen, which voids the consent the banner was built to collect. Both options have real costs, and the wrong choice fails in the direction regulators care about most.
The dilemma is sharpest on fast sites and slow banners. When the banner JavaScript loads after the tag manager, there is a window, sometimes seconds long, in which tracking runs unconsented. Visitors do not see the problem. Auditors do. Timing is not a cosmetic decision. It is the mechanism by which consent either precedes tracking or does not.
What the law requires
The legal rule is simple and unforgiving: consent must come before the processing it authorizes. For non-essential cookies and tags, that means the banner choice must precede the tag firing, not follow it. Delaying the banner does not delay the obligation. If your tags fire on page load and your banner appears three seconds later, you have three seconds of unconsented tracking on every visit.
This is where many implementations fail without anyone noticing. The banner looks compliant. It has granular choices, an equal reject, a preference center. But the tag sequencing underneath tells a different story, and the sequencing is what enforcement examines. A beautiful banner over a leaky tag setup is non-compliance with good design.
The compliant pattern
The pattern that works is default-blocked tags plus a prompt, non-destructive banner. Block all non-essential tags by default in the tag manager, so nothing fires before the choice regardless of when the banner renders. Then show the banner promptly, as a bottom bar or corner card rather than a full-screen takeover where the design allows. The visitor sees content and the banner together, and the tags wait.
Prioritize the banner's own loading. It should be among the first scripts to execute, not queued behind analytics and personalization. If the consent tool loads late, the default-blocked tags still protect you, but the visitor waits longer to choose, and the analytics gap grows. Fast banner, blocked tags, prompt display: the three parts work together, and removing any one of them reopens the timing hole.
What not to do
Do not fire tags while the banner is about to appear. About to is not a consent state. Do not treat scrolling, time on page, or continued browsing as implied consent; regulators have rejected this consistently, and it poisons the records. Do not re-show the banner aggressively after dismissal in a way that punishes the visitor for choosing; the re-ask schedule should be measured in months, not pageviews.
Also avoid the reverse failure: a banner so delayed or so subtle that visitors never notice it, while the site runs on default-blocked tags that cripple analytics. That is compliant but self-defeating. The goal is a banner the visitor actually sees and answers, with tags that respect the answer. Timing serves both masters when the banner is prompt and the defaults are safe.
Proving the order
The test is straightforward and should be run quarterly. Open a fresh browser profile, load the site, and record every network request before interacting with the banner. The pre-choice log should show no non-essential tracking: no advertising pixels, no analytics beacons beyond what is strictly necessary. Then make a choice, accept and separately reject, and confirm the request log changes accordingly.
Document the test with dates and results. When the tag inventory changes, and it always does, re-run the pre-choice check, because every new tag is a new chance to reintroduce the timing hole. The banner timing question never gets permanently answered. It gets answered continuously, by a tag setup that defaults to blocked and a test that keeps proving the order is right.