Geo-Targeting & Regionale Regeln

Regionale Banner-Steuerung für EU- und Non-EU-Besucher. Letzte Aktualisierung: Februar 2025

1. Wie Geo-Targeting funktioniert

Barefoot CMP nutzt CDN-Header zur automatischen Ländererkennung Ihrer Besucher. Dadurch wird das richtige Banner-Verhalten je nach Standort des Nutzers gesteuert – ohne dass IP-Adressen gespeichert werden.

CDN-Header-Erkennung

Barefoot CMP erkennt das Herkunftsland über die folgenden CDN-Header:

  • Vercel: x-vercel-ip-country Header
  • Cloudflare: cf-ipcountry Header
  • Fallback: /v1/geo API-Endpoint (wenn kein CDN-Header vorhanden ist)

Datenschutz: Es wird keine IP-Adresse gespeichert. Barefoot CMP ermittelt lediglich den Ländercode (z.B. "DE" für Deutschland) und verwirft die IP-Information sofort.

Session-Caching

Das Ergebnis der Geo-Erkennung wird in sessionStorage zwischengespeichert. Das bedeutet:

  • Pro Browser-Session wird nur eine einzige Geo-Abfrage durchgeführt
  • Alle weiteren Seitenaufrufe in derselben Session nutzen den Cache
  • Beim Schließen des Browsers wird der Cache automatisch gelöscht

2. EU/EWR-Länderliste

Die folgenden 31 Länder werden von Barefoot CMP als "EU/EWR" erkannt und erhalten standardmäßig das Opt-in-Banner:

Land Code Region
BelgienBEEU
BulgarienBGEU
DänemarkDKEU
DeutschlandDEEU
EstlandEEEU
FinnlandFIEU
FrankreichFREU
GriechenlandGREU
IrlandIEEU
ItalienITEU
KroatienHREU
LettlandLVEU
LitauenLTEU
LuxemburgLUEU
MaltaMTEU
NiederlandeNLEU
ÖsterreichATEU
PolenPLEU
PortugalPTEU
RumänienROEU
SchwedenSEEU
SlowakeiSKEU
SlowenienSIEU
SpanienESEU
TschechienCZEU
UngarnHUEU
ZypernCYEU
IslandISEWR
LiechtensteinLIEWR
NorwegenNOEWR
Vereinigtes KönigreichGBPost-Brexit (DSGVO-ähnlich)

Hinweis: Das Vereinigte Königreich wird standardmäßig als EU/EWR behandelt, da die UK-GDPR ähnliche Anforderungen an Cookie-Consent stellt wie die europäische DSGVO.

3. Konfigurationsmodi

Barefoot CMP bietet zwei Grundmodi für das Geo-Targeting:

3.1 EU-Only (Standard)

Im EU-Only-Modus wird das Consent-Banner nur Besuchern aus EU/EWR-Ländern angezeigt:

  • EU/EWR-Besucher sehen das vollständige Opt-in-Banner
  • Non-EU-Besucher sehen kein Banner – alle Scripts laden normal
  • Empfohlen für europäische Websites mit internationalem Traffic

3.2 Worldwide

Im Worldwide-Modus wird das Banner allen Besuchern weltweit angezeigt:

  • Jeder Besucher, unabhängig vom Standort, sieht das Consent-Banner
  • Empfohlen wenn Sie sicherstellen möchten, dass alle Besucher Consent geben
  • Besonders relevant bei internationalen Datenschutzgesetzen (LGPD, CCPA etc.)
window.ConsentManagerConfig = { geoTargeting: { enabled: true, mode: 'eu-only' // 'eu-only' | 'worldwide' } };

4. Non-EU-Verhalten

Was passiert mit Besuchern außerhalb der EU? Im eu-only-Modus können Sie das Verhalten für Non-EU-Besucher separat konfigurieren:

Verhalten Config-Wert Beschreibung
Kein Banner none Kein Banner, alle Scripts laden normal (Standard für Non-EU)
Einfacher Hinweis notice Nicht-blockierender Info-Hinweis ohne Opt-in-Zwang
Volles Banner full Gleicher Opt-in-Banner wie für EU-Besucher
window.ConsentManagerConfig = { geoTargeting: { enabled: true, mode: 'eu-only', nonEuBehavior: 'none' // 'none' | 'notice' | 'full' } };

Achtung: Beachten Sie, dass einige Nicht-EU-Länder eigene Datenschutzgesetze haben (z.B. Brasilien LGPD, Kalifornien CCPA). Für maximale Compliance empfehlen wir nonEuBehavior: 'full'.

5. Fallback-Verhalten

Was passiert, wenn die Geo-Erkennung fehlschlägt? Zum Beispiel bei Netzwerkproblemen, Timeout oder fehlenden CDN-Headern.

5.1 Strict (Standard, empfohlen)

  • Annahme: Besucher kommt aus der EU
  • Banner wird angezeigt
  • Sicherer Ansatz – DSGVO-konform im Zweifelsfall

Empfehlung: Verwenden Sie immer den strict-Modus. Im Zweifelsfall ist es besser, das Banner einem Nicht-EU-Besucher zu zeigen, als einem EU-Besucher kein Banner zu zeigen.

5.2 Relaxed

  • Annahme: Besucher kommt NICHT aus der EU
  • Kein Banner wird angezeigt

Nicht empfohlen! Im Zweifelsfall immer den strengeren Ansatz wählen. Der relaxed-Modus kann dazu führen, dass EU-Besuchern kein Banner gezeigt wird – ein DSGVO-Verstoß.

window.ConsentManagerConfig = { geoTargeting: { enabled: true, fallback: 'strict' // 'strict' | 'relaxed' } };

6. Vollständige Konfiguration

Hier ein komplettes Beispiel mit allen verfügbaren Geo-Targeting-Optionen:

window.ConsentManagerConfig = { geoTargeting: { enabled: true, apiUrl: '/v1/geo', mode: 'eu-only', nonEuBehavior: 'none', fallback: 'strict' } };
Option Standard Beschreibung
enabled true Geo-Targeting aktivieren/deaktivieren
apiUrl /v1/geo URL des Geo-API-Endpoints
mode eu-only Banner-Modus: eu-only oder worldwide
nonEuBehavior none Verhalten für Non-EU: none, notice oder full
fallback strict Fallback bei Fehler: strict oder relaxed

7. Konfiguration via Dashboard

Alle Geo-Targeting-Einstellungen lassen sich bequem über das Barefoot CMP Dashboard vornehmen – ganz ohne Code:

  • Dashboard aufrufen und einloggen
  • Navigieren Sie zu Websites und wählen Sie Ihre Website
  • Öffnen Sie den Tab "Geo-Targeting"
  • Aktivieren/Deaktivieren per Toggle-Schalter
  • Modus wählen: EU-Only oder Weltweit
  • Non-EU-Verhalten einstellen (Kein Banner, Hinweis oder Volles Banner)
  • Fallback-Modus wählen (Strict oder Relaxed)

Tipp: Änderungen im Dashboard werden sofort wirksam. Sie müssen keinen Code auf Ihrer Website ändern – die Konfiguration wird automatisch beim nächsten Seitenaufruf geladen.

8. Technische Details

8.1 API-Endpoint

Der Geo-API-Endpoint gibt Standortinformationen des aktuellen Besuchers zurück:

GET /v1/geo

Response:

{ "country": "DE", "region": "EU", "requiresConsent": true }
Feld Typ Beschreibung
country String ISO 3166-1 Alpha-2 Ländercode (z.B. "DE", "US", "FR")
region String "EU" für EU/EWR-Länder, "non-EU" für alle anderen
requiresConsent Boolean Ob für dieses Land ein Consent-Banner erforderlich ist

8.2 Session-Caching

Die Geo-Daten werden im Browser zwischengespeichert, um unnötige API-Aufrufe zu vermeiden:

  • Speicherort: sessionStorage
  • Key: bf_geo_data
  • Gültig für: Die aktuelle Browser-Session
  • Zweck: Verhindert mehrfache API-Aufrufe pro Session

8.3 Timeout

  • Die Geo-API hat ein 500ms Timeout
  • Bei Timeout greift der konfigurierte Fallback-Modus
  • Bei strict (Standard): EU wird angenommen, Banner wird angezeigt
  • Bei relaxed: Non-EU wird angenommen, kein Banner

Performance: Durch das Session-Caching und die CDN-Header-Erkennung ist der Geo-Check in den meisten Fällen unter 5ms. Der API-Fallback wird nur selten benötigt.

9. Testen

So können Sie das Geo-Targeting Ihrer Barefoot CMP-Installation testen:

VPN nutzen

Verwenden Sie einen VPN-Dienst, um verschiedene Länder zu simulieren. Verbinden Sie sich mit einem Server in einem EU-Land (z.B. Deutschland) oder einem Non-EU-Land (z.B. USA) und prüfen Sie das Banner-Verhalten.

Browser Developer Tools

  • Öffnen Sie die Developer Tools (F12)
  • Wechseln Sie zum Network-Tab
  • Suchen Sie nach dem /v1/geo Request
  • Prüfen Sie die Response (country, region, requiresConsent)

Console-Check

Prüfen Sie den gecachten Geo-Status direkt in der Browser-Console:

// Aktuellen Geo-Cache auslesen console.log(JSON.parse(sessionStorage.getItem('bf_geo_data')));

Geo-Cache zurücksetzen

Um den Geo-Cache für Tests zurückzusetzen:

// Geo-Cache zurücksetzen für Tests sessionStorage.removeItem('bf_geo_data'); // Dann Seite neu laden location.reload();

Header-Override (lokal)

Für lokale Entwicklung können Sie den CDN-Header manuell setzen. In Ihrem lokalen Reverse-Proxy oder Entwicklungsserver:

// Beispiel: Header in Express setzen (nur für Entwicklung) app.use((req, res, next) => { req.headers['x-vercel-ip-country'] = 'US'; // oder 'DE' für EU-Test next(); });

Hinweis: Für lokale Tests (localhost) gibt es keinen CDN-Header. Der Fallback greift – bei strict wird das Banner angezeigt, bei relaxed nicht.

10. Häufige Fragen

Wird meine IP-Adresse gespeichert?

Nein. Barefoot CMP ermittelt lediglich den Ländercode (z.B. "DE" für Deutschland) aus CDN-Headern oder über den Geo-API-Endpoint. Die IP-Adresse wird zu keinem Zeitpunkt gespeichert, protokolliert oder an Dritte übermittelt. Die Erkennung erfolgt ausschließlich serverseitig und nur der Ländercode wird an den Browser zurückgegeben.

Funktioniert Geo-Targeting mit CDN/Proxy?

Ja, wenn der CDN oder Proxy die Header cf-ipcountry (Cloudflare) oder x-vercel-ip-country (Vercel) an den Ursprungsserver weiterleitet. Die meisten großen CDN-Anbieter setzen diese Header automatisch. Falls kein Header vorhanden ist, nutzt Barefoot CMP den /v1/geo API-Fallback.

Was ist mit der Schweiz?

Die Schweiz (CH) ist nicht in der EU/EWR und wird standardmäßig als Non-EU behandelt. Allerdings hat das Schweizer Datenschutzgesetz (DSG, revDSG) ähnliche Anforderungen wie die DSGVO. Unsere Empfehlung: Setzen Sie nonEuBehavior: 'full', damit auch Schweizer Besucher das vollständige Consent-Banner sehen. Alternativ können Sie die Schweiz über eine zukünftige Version manuell als "EU" behandeln lassen.

Kann ich einzelne Länder konfigurieren?

Aktuell unterstützt Barefoot CMP nur die Unterscheidung zwischen EU/EWR und Non-EU. Länderspezifische Regeln (z.B. separate Konfiguration für die Schweiz, Brasilien oder Kalifornien) sind für eine zukünftige Version geplant. Bis dahin empfehlen wir nonEuBehavior: 'full' für maximale Compliance über alle Länder hinweg.

Geo-Targeting jetzt konfigurieren

Richten Sie Geo-Targeting in wenigen Minuten ein – direkt im Dashboard, ohne Code-Änderungen.

Zum Dashboard