{"publication":{"methodologyVersion":"cookiebench-v3.2.4","analysisId":"matrix-2026-10-12","publishedOn":"2026-10-12","collectedFrom":"2026-10-10","collectedTo":"2026-10-11","visitsPerCell":15},"preview":true,"profile":"desktop","framework":"nextjs","testConditions":{"label":"Desktop","viewport":"1365 × 768","cpu":"No CPU slowdown","network":"12.5 MB/s, no added latency"},"methodologyUrl":"https://cookiebench.com/methodology","sourceUrl":"https://github.com/inthhq/cookiebench","caveats":["This published matrix is preview data. Compare products within the same profile and framework.","An inconclusive interval is no measurable difference. Missing answers are not zero.","Click timings record one click per flow. Emulated mobile is not a physical phone measurement.","Inth maintains CookieBench and develops c15t, which is included in the benchmark."],"metrics":[{"id":"bannerVisible","unit":"ms","description":"Time from navigation until the banner is visible on screen. Lower is better."},{"id":"pageDelay","unit":"ms","description":"Extra time before the main content paints (LCP), compared with the same page without a consent manager."},{"id":"clickResponse","unit":"ms","description":"Time from pressing Accept until the screen updates. Under 200 ms feels instant."},{"id":"addedBytes","unit":"bytes","description":"Extra data transferred during the first load, compared with the same page without a consent manager."},{"id":"mainThread","unit":"ms","description":"Added long-task time during load: periods when the page cannot respond to input."}],"results":[{"product":{"slug":"c15t","name":"c15t","vendor":"inth","version":"3.0.0-alpha.11","website":"https://c15t.com"},"answers":{"bannerVisible":{"status":"measured","median":26.5,"samples":15,"tier":"good"},"pageDelay":{"status":"measured","median":8,"interval":{"low":8,"high":16},"conclusion":"added","samples":15,"tier":"good"},"clickResponse":{"status":"measured","median":40,"samples":1,"tier":"good"},"addedBytes":{"status":"measured","median":103933,"interval":{"low":103927,"high":103982},"conclusion":"added","samples":15,"tier":"fair"},"mainThread":{"status":"measured","median":0,"samples":15,"tier":"good"}},"rejectResponse":{"status":"measured","median":40,"samples":1,"tier":"good"},"correctness":{"status":"measured","verified":4,"failed":0,"unknown":0,"failures":[]},"notes":["c15t ran on an Apple M1 Pro; the other CMPs ran on an AMD Ryzen 7 2700. Read its differences against its own no-CMP page, not as a same-machine ranking against other CMPs.","c15t makes this route render per request, while the no-CMP page is prerendered. That accounts for most of its added TTFB and FCP."]},{"product":{"slug":"cookie-control","name":"Cookie Control","vendor":"Civic","version":"v9, hosted","website":"https://www.civicuk.com"},"answers":{"bannerVisible":{"status":"measured","median":384.70000000018626,"samples":15,"tier":"fair"},"pageDelay":{"status":"measured","median":8,"interval":{"low":-16,"high":20},"conclusion":"inconclusive","samples":15,"tier":"good"},"clickResponse":{"status":"measured","median":16,"samples":1,"tier":"good"},"addedBytes":{"status":"measured","median":98534,"interval":{"low":98533,"high":98553},"conclusion":"added","samples":15,"tier":"good"},"mainThread":{"status":"measured","median":1,"samples":15,"tier":"good"}},"rejectResponse":{"status":"measured","median":24,"samples":1,"tier":"good"},"correctness":{"status":"measured","verified":3,"failed":0,"unknown":1,"failures":[]},"notes":["There is no granular save-preferences flow to test."]},{"product":{"slug":"didomi","name":"Didomi","vendor":"Didomi","version":"Hosted","website":"https://www.didomi.io"},"answers":{"bannerVisible":{"status":"measured","median":465.8999999994412,"samples":15,"tier":"fair"},"pageDelay":{"status":"measured","median":-4,"interval":{"low":-16,"high":12},"conclusion":"inconclusive","samples":15,"tier":"good"},"clickResponse":{"status":"measured","median":16,"samples":1,"tier":"good"},"addedBytes":{"status":"measured","median":252915,"interval":{"low":252909,"high":252923},"conclusion":"added","samples":15,"tier":"poor"},"mainThread":{"status":"measured","median":52,"samples":15,"tier":"fair"}},"rejectResponse":{"status":"unavailable","reason":"The click worked, but the browser reported no timing for it. That is not zero, and not proof it took under 16 ms"},"correctness":{"status":"measured","verified":4,"failed":0,"unknown":0,"failures":[]},"notes":[]},{"product":{"slug":"enzuzo","name":"Enzuzo","vendor":"Enzuzo","version":"Hosted","website":"https://www.enzuzo.com"},"answers":{"bannerVisible":{"status":"measured","median":476.79999999981374,"samples":15,"tier":"fair"},"pageDelay":{"status":"measured","median":4,"samples":15,"tier":"good"},"clickResponse":{"status":"measured","median":24,"samples":1,"tier":"good"},"addedBytes":{"status":"measured","median":153159,"samples":15,"tier":"fair"},"mainThread":{"status":"measured","median":39,"samples":15,"tier":"good"}},"rejectResponse":{"status":"measured","median":16,"samples":1,"tier":"good"},"correctness":{"status":"measured","verified":4,"failed":0,"unknown":0,"failures":[]},"notes":["Its remote script or config changed during the run, so the run gives no confidence intervals for this cell. Differences are medians only."]},{"product":{"slug":"iubenda","name":"iubenda","vendor":"iubenda","version":"Hosted","website":"https://www.iubenda.com"},"answers":{"bannerVisible":{"status":"measured","median":431.20000000018626,"samples":15,"tier":"fair"},"pageDelay":{"status":"measured","median":-4,"interval":{"low":-16,"high":12},"conclusion":"inconclusive","samples":15,"tier":"good"},"clickResponse":{"status":"measured","median":16,"samples":1,"tier":"good"},"addedBytes":{"status":"measured","median":121550,"interval":{"low":121541,"high":121559},"conclusion":"added","samples":15,"tier":"fair"},"mainThread":{"status":"measured","median":0,"samples":15,"tier":"good"}},"rejectResponse":{"status":"measured","median":16,"samples":1,"tier":"good"},"correctness":{"status":"measured","verified":4,"failed":0,"unknown":0,"failures":[]},"notes":[]},{"product":{"slug":"ketch","name":"Ketch","vendor":"Ketch","version":"Hosted","website":"https://www.ketch.com"},"answers":{"bannerVisible":{"status":"measured","median":1680.1000000005588,"samples":15,"tier":"poor"},"pageDelay":{"status":"measured","median":0,"samples":15,"tier":"good"},"clickResponse":{"status":"measured","median":40,"samples":1,"tier":"good"},"addedBytes":{"status":"measured","median":532187,"samples":15,"tier":"poor"},"mainThread":{"status":"measured","median":172,"samples":15,"tier":"poor"}},"rejectResponse":{"status":"measured","median":16,"samples":1,"tier":"good"},"correctness":{"status":"measured","verified":4,"failed":0,"unknown":0,"failures":[]},"notes":["Its remote script or config changed during the run, so the run gives no confidence intervals for this cell. Differences are medians only."]},{"product":{"slug":"onetrust","name":"OneTrust","vendor":"OneTrust","version":"Hosted","website":"https://www.onetrust.com"},"answers":{"bannerVisible":{"status":"measured","median":629.3999999994412,"samples":15,"tier":"fair"},"pageDelay":{"status":"measured","median":4,"interval":{"low":-20,"high":20},"conclusion":"inconclusive","samples":15,"tier":"good"},"clickResponse":{"status":"measured","median":24,"samples":1,"tier":"good"},"addedBytes":{"status":"measured","median":211148,"interval":{"low":211120,"high":211202},"conclusion":"added","samples":15,"tier":"fair"},"mainThread":{"status":"measured","median":1,"samples":15,"tier":"good"}},"rejectResponse":{"status":"measured","median":24,"samples":1,"tier":"good"},"correctness":{"status":"measured","verified":4,"failed":0,"unknown":0,"failures":[]},"notes":[]},{"product":{"slug":"osano","name":"Osano","vendor":"Osano","version":"Hosted","website":"https://www.osano.com"},"answers":{"bannerVisible":{"status":"measured","median":643.7999999998137,"samples":15,"tier":"fair"},"pageDelay":{"status":"measured","median":0,"interval":{"low":-20,"high":20},"conclusion":"inconclusive","samples":15,"tier":"good"},"clickResponse":{"status":"measured","median":32,"samples":1,"tier":"good"},"addedBytes":{"status":"measured","median":86914,"interval":{"low":84877,"high":86931},"conclusion":"added","samples":15,"tier":"good"},"mainThread":{"status":"measured","median":1,"samples":15,"tier":"good"}},"rejectResponse":{"status":"measured","median":24,"samples":1,"tier":"good"},"correctness":{"status":"measured","verified":4,"failed":0,"unknown":0,"failures":[]},"notes":[]},{"product":{"slug":"usercentrics","name":"Usercentrics","vendor":"Usercentrics","version":"Hosted","website":"https://usercentrics.com"},"answers":{"bannerVisible":{"status":"measured","median":671.7000000001863,"samples":15,"tier":"fair"},"pageDelay":{"status":"measured","median":0,"interval":{"low":-16,"high":16},"conclusion":"inconclusive","samples":15,"tier":"good"},"clickResponse":{"status":"measured","median":16,"samples":1,"tier":"good"},"addedBytes":{"status":"measured","median":164178,"interval":{"low":164172,"high":164231},"conclusion":"added","samples":15,"tier":"fair"},"mainThread":{"status":"measured","median":50,"samples":15,"tier":"good"}},"rejectResponse":{"status":"unavailable","reason":"The click worked, but the browser reported no timing for it. That is not zero, and not proof it took under 16 ms"},"correctness":{"status":"measured","verified":4,"failed":0,"unknown":0,"failures":[]},"notes":[]},{"product":{"slug":"cookieyes","name":"CookieYes","vendor":"CookieYes","version":"Hosted","website":"https://www.cookieyes.com"},"answers":{"bannerVisible":{"status":"measured","median":387.20000000298023,"samples":15,"tier":"fair"},"pageDelay":{"status":"measured","median":-4,"interval":{"low":-12,"high":24},"conclusion":"inconclusive","samples":15,"tier":"good"},"clickResponse":{"status":"measured","median":16,"samples":1,"tier":"good"},"addedBytes":{"status":"measured","median":30966,"interval":{"low":30965,"high":30995},"conclusion":"added","samples":15,"tier":"good"},"mainThread":{"status":"measured","median":0,"samples":15,"tier":"good"}},"rejectResponse":{"status":"measured","median":16,"samples":1,"tier":"good"},"correctness":{"status":"measured","verified":3,"failed":0,"unknown":1,"failures":[]},"notes":["CookieYes only renders on its registered host, so it ran in its own batch beside its own no-CMP page on that host.","Its site configuration has no cookies assigned, so its bytes are probably a few KB lower than on a real site.","Here CookieYes loads after the page hydrates: with its script in the head, accept, reject and save failed on mobile. This cell comes from a separate morning run, so compare it with its own no-CMP page rather than with CookieYes on other frameworks.","There is no granular save-preferences flow to test."]}]}