Consent or Pay is a CMP implementation pattern commonly used by publishers. It presents users with a clear choice: consent to personalized advertising and continue browsing for free, or pay for a subscription to access the site without tracking.
Usercentrics provides a native Consent or Pay theme that can be activated and configured directly from the Admin Interface, no custom banner HTML required. The theme handles the banner display, button behavior, and second-layer UX automatically, while publishers retain full control over the subscriber check logic on their own website.
Components of Consent or Pay
There are two main components:
CMP (Usercentrics): Provides the native Usercentrics banner theme configured in the Admin Interface. Also, enabling the consent API, delivers the second layer (privacy center), and serves the TCF API (
__tcfapi).Payment / subscription provider: Handles subscription management, user login, and redirect back to the originating page. The publisher owns this component.
How Consent or Pay works
When a user visits the site, the publisher checks whether they are an active subscriber:
Subscriber: The CMP is loaded silently without displaying any banner. No consent interaction is required.
Non-subscriber: The Consent or Pay banner is shown. The user must either accept tracking or take the subscription path.
Prerequisite
Consent or Pay requires your script to be running with the newest version of Usercentrics’ CMP script (V3 script tag). Go to the Implementation tab and verify that you are using the V3 script tag.
.png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
If you are not seeing this option, it means you are using the newest version of the Admin Interface which only includes the V3 script, so you are using the right version for Consent of Pay.
Set up Consent or Pay
To set up Consent or Pay, follow these steps:
Activate the Consent or Pay theme:
In the Usercentrics Admin Interface, navigate to your CMP configuration.
In the Configuration tab use the toggle to activate the Consent or Pay theme.
.png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
Optional: configure how TCF signal is handled if a paying user denied all consent:
To include a TCF signal for paying users when they denied all consent, use the Include TCF signal for paying users that rejected consent checkbox.
If you select this option, you include the TCF signal, which means vendors can show non-personalized ads based on legitimate interest, as defined by TCF. Without it, they won't have a valid legal basis to do so.
If you don’t select this option, for paying users who declined all consent the TCF signal__tcfapiis either absent or returns an empty signal..png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
Configure the banner:
Under Implementation > Consent and Pay, you can configure the following:
Login link: Allows existing subscribers to log in directly from the banner. Configure as a redirect URL that sends the user to your login page.
Reject and subscribe button: This button replaces the standard Deny All button in the first layer. It functions as a deny-all action and simultaneously redirects the user to your subscription/payment page. It is configured as a Redirect URL: The user is sent to your subscription page.
Exclude pages: use this option to automatically suppress CMP on any page where you would like to allow customers to signup or login without the CMP blocking them. When suppressing the CMP, it is not logging a consent decision.
.png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
Configure button colors and label under Appearance > Styling and Content > Labels.
.png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
.png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
Configure the banner messages under Content > TCF First Layer. You can configure the following text on the banner:
Consent or Pay Banner Message
Pricing of Subscription
Opt-in Banner Message
.png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
Configure which
sdf
sdf
Step 3 – Configure Required vs Flexible Consent (Granular)
Usercentrics provides a Mandatory / Flexible classification for each Category, Purpose, and Special Feature, allowing the Publisher to assess which purposes is required to not be required to pay for access.
In the Admin UI, alongside the Publisher Restrictions column, there is a Consent or Pay configuration column with two options per entry:
Mandatory — This purpose is gated by the Consent or Pay model. The user must either consent or purchase a subscription.
Flexible — This purpose can be declined by the user without forcing the pay option.
.png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
Second layer behavior: The second layer always includes a Deny All button (mandatory per TCF policy). After clicking Deny All, the user is returned to the first layer.
Vendor level toggles
When using consent or pay, the consent is normally given based on the purpose or category. However, it is possible to allow vendor level toggles. When doing so, the user can reject individual vendors, while still providing consent to the purpose or category, and access the website.
.png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
Required categories
It is also possible to select that a category (used for your own Data Processing Services outside the scope of TCF) can be marked as required for consent or pay.
.png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
If a category is set as required for Consent or Pay, remember to also set the category as Accepted by Default. This ensures that all services within the category will be toggled on by default, and mandatorily accepted when user gives consent.
.png?sv=2026-02-06&spr=https&st=2026-10-22T04%3A01%3A57Z&se=2026-10-22T04%3A17%3A57Z&sr=c&sp=r&sig=ONR40Cy%2BmZjLFOe9sBnEXYl8QvOsQepFg9N8Wq6eVec%3D)
Integrating with the publisher website
The Admin Interface theme handles the banner automatically. However, the publisher is still responsible for the subscriber check on their own website, as Usercentrics has no visibility into who is a paying subscriber.
Subscriber check and conditional CMP loading
The Usercentrics CMP will always try to prompt, if the mandatory consent requirement is not met. Because we do not control the subscriber layer, the following function must be used to suppress the CMP for paying subscribers.
The following script must be implemented before the CMP script
// Subscriber check
<script type="application/javascript">
// Replace this with your payment provider's actual subscriber check
var isSubscriber = myPaymentProvider.isSubscriber();
// Suppress the CMP display for paying subscribers
var UC_UI_SUPPRESS_CMP_DISPLAY = isSubscriber;
</script>
// CMP script
<script src="https://web.cmp.usercentrics.eu/tcf/stub.js"></script>
<script id="usercentrics-cmp" src="https://web.cmp.usercentrics.eu/ui/loader.js" data-settings-id="YOUR-SETTINGS-ID" async></script>Checking consent status
If you are using the Usercentrics Consent or Pay CMP banner, you do not need to perform this check. If you are utilizing a custom first layer, you may rely on this function
When using the Required / Flexible consent model, you may use AreAllRequiredConsentsAccepted() instead of areAllConsentsAccepted() to check whether the user has provided consent for all purposes marked as mandatory. This allows users who have declined flexible purposes to still access the site freely.
// Check if all Required consents have been given
if (UC_UI.AreAllRequiredConsentsAccepted() === true) {
// Grant access — user has consented to all required purposes
} else {
// Show Consent or Pay banner or restrict access
}If you are not using the granular consent requirement, you may choose to still use areAllConsentsAccepted().
The
AreAllRequiredConsentsAcceptedfunction does not take into account vendor level consents, if toggles is made available for vendors.
KPIs to monitor
When deploying your new Consent or Pay CMPbanner, it is recommended that you keep track of the KPI’s listed below, to ensure the launch is working as intended.
KPI | What to expect |
|---|---|
Accept Rate % | You should expect an increase in Accept Rate % |
Interaction Rate % | You may notice a small decline in Interaction Rate %, as some users may neither want to accept or subscribe for access. |
Daily Accepts | Daily Accepts show the absolute number of daily accepts. Compare this to the amount of daily users in your website statistics, for a full picture. |
Note: Usercentrics does not provide legal guidance. Best practices and applicable regulations vary by jurisdiction. Publishers should obtain their own legal assessment, particularly regarding granular consent requirements (see e.g UK ICO guidance and DK DPA guidance).