Skip to content

Products

Compliance Officer Service Expert-led compliance, end to end Compliance Portal Share security documents securely Open-source platform Deploy Probo on your own infrastructure

Resources

Probo stories How teams get compliant with Probo Blog Ideas and guidance from the Probo team Guides & tools Practical compliance guides and free tools Love from Customers What customers say about working with Probo Changelog Latest product updates Download Get the Probo Agent

Company

About The people and vision powering Probo Careers Join the team building Probo Brand assets Official logos and visual resources Security Review our security and compliance posture
Overview Understand Probo and its core concepts Product Explore Probo's GRC capabilities Developers Explore GraphQL, CLI, MCP, n8n, and webhooks Deployment Probo Cloud, self-hosting, and configuration

Explore

GitHub Explore our open-source compliance tools

Geolocation and Regulations

Learn how Probo detects a visitor's location and automatically applies the matching privacy regulation, presentation, and consent mode for the banner.

View as Markdown

Probo automatically detects each visitor’s location from their IP address and applies the correct privacy regulation. The banner’s presentation (opt-in, opt-out, or notice), button set, initial/reopen state, and copy all adapt to the visitor’s location without any manual configuration.

Probo shows the least a jurisdiction allows. The banner only opens by itself where a law requires a proactive disclosure — everywhere else the visitor sees nothing but the cookie settings link you place in your footer.

Every time the JavaScript SDK fetches the banner configuration, the API resolves the visitor’s location:

  1. The visitor’s IP address is extracted from the request.
  2. The IP is looked up against a geolocation database to determine the country and, where it matters, the state or province.
  3. The location is mapped to an applicable privacy regulation. This is subdivision-aware: a visitor in Texas gets the TDPSA rather than California’s CCPA, and a visitor in Quebec gets Law 25 rather than the federal PIPEDA.
  4. The regulation determines the layout (presentation, initial_state, reopen_state, buttons, settings-link style) and consent mode. Banner text variants are selected to match.

This happens transparently on every configuration request. You do not need to install any additional library or pass location data from the client.

If geolocation cannot resolve a country (for example the IP cannot be looked up), Probo falls back to GDPR — the strictest opt-in model.

The SDK renders from three presentations (see layout.presentation in the JavaScript SDK):

PresentationOn first loadBehaviorReopen target
OPT_INBanner opensNon-essential cookies blocked until the visitor consents. Accept / reject / customize.Preference panel
OPT_OUTNothing opensNon-essential cookies active by default. The settings link is the only visible surface; following it opens a compact acknowledge + opt-out banner.Compact banner (Privacy Choices under CCPA)
NOTICEBanner opensInformational notice with a single dismiss control. Records ACKNOWLEDGE (not accept-all). Cookies follow the opt-out model (active by default).Notice banner

OPT_OUT never opens on its own, which makes <probo-settings-link> load-bearing rather than decorative: in those jurisdictions it is the visitor’s only route to their choices. See Settings link.

Opt-in (OPT_IN) — banner opens on first load

Section titled “Opt-in (OPT_IN) — banner opens on first load”
RegulationWhere it applies
GDPRAustria, Belgium, Bulgaria, Croatia, Cyprus, Czechia, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, Iceland, Liechtenstein, Norway
UK GDPRUnited Kingdom
FADPSwitzerland
Law 25Quebec
LGPDBrazil
POPIASouth Africa
PDPAThailand
PIPLChina
PIPASouth Korea
DPDPIndia
PDPLSaudi Arabia
Section titled “Opt-out (OPT_OUT) — nothing opens; settings link only”
RegulationWhere it appliesSettings link
CCPA / CPRACalifornia, and any US visitor whose state cannot be resolved“Your Privacy Choices” + the official opt-out icon, opening the Privacy Choices panel
US state privacy lawsVirginia (VCDPA), Colorado (CPA), Connecticut (CTDPA), Utah (UCPA), Texas (TDPSA), Oregon (OCPA), Montana (MTCDPA), Florida (FDBR), Iowa (IAICDPA), Delaware (DEPDPA), New Hampshire (NHPA), Nebraska (NENDPA), New Jersey (NJDPA), Tennessee (TIPA), Minnesota (MNDPA), Maryland (MODPA), Indiana (INCDPA), Kentucky (KCDPA), Rhode Island (RIDTPPA)Default label, opening the compact opt-out banner
PIPEDACanada — federal, and provinces without their own statuteDefault label, opening the compact opt-out banner
PIPA (AB / BC)Alberta, British ColumbiaDefault label, opening the compact opt-out banner
APPIJapanDefault label, opening the compact opt-out banner
NoneEvery other identified country, and US states with no comprehensive privacy lawDefault label, opening the compact opt-out banner

Japan and the no-law case sit here rather than in NOTICE because their disclosure duties are satisfied by a published privacy policy — nothing requires interrupting the visitor. They still get a working opt-out through the settings link.

Notice (NOTICE) — banner opens on first load

Section titled “Notice (NOTICE) — banner opens on first load”
RegulationWhere it appliesNotes
LFPDPPPMexicoSingle acknowledge / dismiss control

Mexico is the only jurisdiction in this group. Article 76 of the LFPDPPP regulations requires the cookie disclosure to be shown in a visible location, which a privacy-policy link alone does not satisfy.

  1. Location resolved — Map country and subdivision to the regulation above and apply that regulation’s layout (presentation, consent mode, reopen target, settings-link style).
  2. US visitor, state unresolved — Fall back to CCPA. California cannot be ruled out, so the visitor gets the statutory “Your Privacy Choices” link.
  3. Canadian visitor, province unresolved — Fall back to PIPEDA, the federal baseline.
  4. Country unresolved — Fall back to GDPR (strict opt-in).
  5. There is no console “default consent mode” override. Layout is always derived from the resolved regulation.

The API adjusts button labels and description text to match the resolved presentation. You do not need to manage separate text variants in code — use presentation-specific translation keys in the console (or resolveBannerText in headless embeds).

PresentationBanner behavior
OPT_INAccept all, reject all, and customize with the standard consent description
OPT_OUTAcknowledge + opt-out with opt-out-specific description. US state laws get state-law wording, Canada gets Canadian wording
NOTICESingle dismiss button with a notice-style description — records ACKNOWLEDGE

The opt-out button label is regional too. US state laws show the statutory “Do Not Sell or Share My Personal Information”; every other opt-out jurisdiction shows a neutral “Reject non-essential cookies”, since the California phrase misdescribes the choice elsewhere.

If you have customized banner translations, the system uses your opt-out or notice-specific text variants when they apply. Configure these per language in the Probo console under the banner’s Translations tab.

Geolocation and regulation mapping are fully automatic. You do not pick a consent mode when creating a banner — only name, origin, policy URLs, expiry, and languages. Everything else — IP resolution, location-to-regulation mapping, layout, and text adaptation — is handled by Probo.

The one thing you must do is place <probo-settings-link> in your header or footer. Most of the world falls under OPT_OUT, where that link is the only surface a visitor ever sees.