# Licenses and Domains

This page explains how Consent Pro licenses work.

## One license per domain

- Each production domain requires its own license.
- Domains and subdomains are treated as different domains.
- Example: `example.com` and `app.example.com` each need their own license.

## Sites using a reverse proxy

If your site uses a reverse proxy — for example, `example.com` serves content that originates from `foo.example.com` — use the **publicly visible domain** (`example.com`) as the license domain, not the origin domain (`foo.example.com`).

## Update your active domain anytime

You can always update the active domain for a license in [my.finsweet.com/plans](https://my.finsweet.com/plans).

## If you do not have a production domain yet

Connect the domain you intend to ship on, then attach a license to it before launch — see [Live domains vs staging domains](#live-domains-vs-staging-domains) below.

## If a license stops working after moving or renaming a site

If a site moved between accounts or changed domains and the license no longer works, you can fix it directly on the [Plans page](https://my.finsweet.com/plans):

1. Remove the connected domain from the license.
2. Connect the correct domain again.

## Live domains vs staging domains

Consent Pro only requires a license on live production domains.

A custom-site project without a license does not serve the banner on its production domain, so a license is required before launch.

Each staging or preview hostname is a separate domain. Connect it to the project if you want the banner to run there, and keep the license on the production domain.

## Preview the banner before the license is active

A custom site has no free domain to test on. **Preview** covers that instead: it unlocks the banner temporarily so you can see it in place before a license is attached.

Click **Preview** in the project header. Consent Pro opens your domain in a new tab with a signed token attached, and the banner loads together with the [Debugger](/web-app/debugger) overlay.

A preview serves the project's latest **saved** configuration, so it works before anything has been published and reflects changes you have not published yet. The **Geolocation** control in the debugger resolves the banner for any region, so you can check regional instances without a VPN.

The link is short-lived and scoped to the project it was minted for. Open a preview through **Preview** rather than constructing the URL by hand, and reopen it when the banner stops loading.

**warning Preview is not a substitute for a license**
The token only unlocks the tab you opened. Ordinary visitors on a domain without a license still get no banner, so attach the license before launch.


## Geolocation

**Premium** plans can use region-specific banner instances (for example EU vs Global). Consent Pro detects the visitor's region and loads the matching instance.

**Basic** plans only apply instances configured with `regions: "Global"`. Regional instances (for example EU-only) are ignored on Basic.

If a returning visitor's detected region changes since they last gave consent (for example, they traveled or are using a VPN), Consent Pro discards the stored consent and asks for consent again, so the correct regional banner and consent requirements apply.
