High vendor count
AdSense, DFP, Header Bidding SSPs, social pixels, analytics tools... None should run without consent. cerez.io controls them all from a single point with data-cb-category.
Google Consent Mode v2 (5 signals), category-based script blocking and soft paywall integration for news sites, magazines and blogs. Manage your ad revenue in line with the consent process.
About IAB TCF: The IAB TCF framework is in development (alpha): cerez.io is not a registered or certified IAB Europe CMP and is not yet suitable for ad networks that require TCF. No timeline has been set for IAB registration. For your questions get in touch.
News sites and magazine platforms work with an average of 50-150 3rd-party vendors. Each one has different consent requirements that need to be passed to the programmatic advertising ecosystem.
AdSense, DFP, Header Bidding SSPs, social pixels, analytics tools... None should run without consent. cerez.io controls them all from a single point with data-cb-category.
Because ad revenue drops when consent is rejected, publishers pay attention to banner design. With Google Consent Mode v2, even for rejected consents, measurement is not entirely lost thanks to modeled conversions.
The programmatic advertising ecosystem (SSP/DSP) usually expects an IAB TCF v2.3 compatible TC String. The IAB TCF framework is in development (alpha): cerez.io is not a registered or certified IAB Europe CMP and is not yet suitable for ad networks that require TCF.
On news sites, every 100ms of delay increases bounce. The Shadow DOM architecture isolates the banner CSS; the SDK loads async, and the sessionStorage cache prevents a server call on repeat visits.
On sites offering premium content + ad revenue together, the consent status has to be coordinated with the paywall logic. The CerezBanner.getConsent() API works integrated with your own paywall system.
With an international or multilingual readership, the consent banner must display correctly in every language. TR/EN/DE support; per-domain banner_language selection (automatic or fixed language).
While the programmatic advertising ecosystem expects a TC String, Google Analytics and AdSense expect GCM v2 signals. Google Consent Mode v2 is supported. The IAB TCF framework is in development (alpha): cerez.io is not a registered or certified IAB Europe CMP and is not yet suitable for ad networks that require TCF.
The IAB TCF framework is in development (alpha): cerez.io is not a registered or certified IAB Europe CMP and is not yet suitable for ad networks that require TCF. A TC String produced by an unregistered CMP is not recognised by ad networks, so TCF has not been opened to customers.
When consent is given or rejected, Google tags are notified instantly. It starts in the default denied state and moves to granted based on the user's choice; for rejected consents, modeled conversions kick in.
ad_storage · ad_user_data · ad_personalization
analytics_storage · functionality_storage
ad_storage
granted
ad_user_data
granted
ad_personalization
granted
analytics_storage
granted
functionality_storage
denied
Categorize any script tag with the data-cb-category attribute. cerez.io enables or blocks that category based on the user's choice.
<!-- AdSense -->
<script
src="ads.js"
data-cb-category="advertising"
type="text/plain"
></script>
<!-- GA4 -->
<script
src="gtag.js"
data-cb-category="analytics"
type="text/plain"
></script>
<!-- Meta Pixel -->
<script
src="fbpixel.js"
data-cb-category="marketing"
type="text/plain"
></script>
data-cb-category="advertising"
data-cb-category="analytics"
data-cb-category="marketing"
data-cb-category="personalization"
Scripts kept as type="text/plain" before consent is given are not executed by the browser. After consent cerez.io it switches them to type="text/javascript".
On news sites offering premium content, running the consent process in coordination with your subscription offer both improves the user experience and protects two revenue channels.
The consent banner + subscription offer are presented at the same time. The user chooses one of two paths; ad revenue and subscription revenue together.
CerezBanner.getConsent()
Content is completely hidden without giving consent or taking a subscription. cerez.io does not support this; it needs to be evaluated carefully.
Every publisher deals with a different problem. Below you can see which features solve common scenarios.
data-cb-category attribute), consent log retention, 6 banner positions, multilingual banner (TR/EN/DE) and soft paywall APIs. The IAB TCF framework is in development (alpha): cerez.io is not a registered or certified IAB Europe CMP and is not yet suitable for ad networks that require TCF. No timeline has been set for IAB registration. For full programmatic advertising ecosystem integration, large publishers should consider certified CMPs such as OneTrust or Sourcepoint.data-cb-category="advertising" attribute and control it on a category basis. GCM v2 signals (ad_storage, ad_user_data, ad_personalization) are updated automatically based on consent status. For publishers showing AdSense ads to EU/UK traffic, Google requires a certified CMP integrated with TCF; cerez.io is not a registered or certified IAB Europe CMP, so a certified CMP should be used in parallel for this traffic.CerezBanner.getConsent()) and is run together with your own paywall logic. A hard cookie wall (closing content to those who do not give consent) is permitted only to a limited extent in EU countries; cerez.io does not offer a native hard wall, so your own implementation is required.async; the single-line JS embed code is added directly to the <head>. With the sessionStorage cache, no server call is made on repeat visits and the banner is drawn instantly. Minimal impact on Core Web Vitals is the aim.?cb_preview=true, the existing consent is skipped in preview mode; the banner is always shown, no cookie is written, nothing is recorded to the consent log, and no heartbeat is sent. Editors and administrators can run a full test before publishing.GCM v2, script blocking and soft paywall integration. Single-line embed, manage it from the cerez.io panel.