A visible banner proves nothing
When I check an integration, I do not start by looking at whether the banner displays correctly. I open the browser developer tools and inspect what is actually loaded on the page.
A CMP can display a banner, save a choice and appear to work perfectly while a tracker has already loaded before it. The real check therefore happens in the DOM and network requests, not only on screen.
I start with loading order
The first check is simple: I look at how tarteaucitron is loaded and where the services it must control are located. As explained in the article about loading order, if GA4 appears before tarteaucitron in the <head>, it is already too late.
In Pro automatic mode, the tarteaucitron marker must therefore load before the trackers. This allows it to detect and block supported services before they execute.
Manual mode has a different trap
A case I regularly see is a website configured manually with GA4 correctly declared in tarteaucitron, while the old GA4 code is still present on the website.
In that situation, the tarteaucitron declaration works, but it is almost pointless: the directly loaded GA4 code continues independently. It does not become controlled simply because another GA4 integration was declared in the CMP.
Declaring a service in a CMP does not automatically disable another existing integration of the same service.
Open source: remove direct loading
With a manual tarteaucitron.js integration, the HTML or JavaScript that directly loads the service must be removed from the website. tarteaucitron then becomes responsible for loading it at the appropriate time.
This is an important difference with Pro automatic mode. Automatic mode is designed to detect supported services already present in the DOM and intervene, provided the Pro marker loads early enough.
The network tells the truth
Once the DOM has been checked, the Network panel shows what actually happens. I test the website with no saved choice, then after refusal and after acceptance.
This is more reliable than only checking cookies. A third-party service may send a request before a final cookie inspection gives a clear picture of what happened.
Test a CMP by its result
In the end, the test is straightforward: before consent, are the services that should be blocked actually blocked? After refusal, do they remain blocked? After acceptance, do they load correctly?
Understanding what a CMP really is, technically helps here. The banner is only the visible interface. What matters is what happens behind it.


