Data & cookies
This page is the technical companion to the privacy policy: exactly what data moves where, written for merchants filling in their own privacy documentation.
On your storefront
Section titled “On your storefront”Cookies
Section titled “Cookies”The gate sets exactly one cookie, and only after a visitor passes:
| Cookie | Value | Purpose | Duration | Type |
|---|---|---|---|---|
optan_ag_pass |
1 (literal — no identifier) |
Remembers that the visitor passed the age check, so they aren’t asked on every page | Your Remember setting: 0–365 days (default 30; 0 = browser session) | First-party, functional. SameSite=Lax; Secure |
The cookie contains no identifier and cannot be used to recognize or track a person. Under GDPR/ePrivacy it is generally classed as strictly necessary / functional (it exists to honor an age-restriction obligation and requires no consent banner entry), but classification is ultimately your call as the merchant — your cookie policy can list it with the table above.
No other cookie, localStorage, sessionStorage or fingerprinting of any kind is used.
Network requests
Section titled “Network requests”The gate makes zero third-party requests. Its script and stylesheet are served by Shopify’s CDN like any theme asset, and its configuration is read from your store’s own page — no call to Optan’s servers is needed to display or operate the gate.
The only request the storefront ever sends to the app is the optional
consent-log beacon (Pro, off by default): a sendBeacon to
/apps/optan/consent on your own store’s domain, forwarded to the app by
Shopify’s app proxy. Its entire payload is the outcome (pass or decline)
and the two-letter country code from your store’s localization context.
Date of birth
Section titled “Date of birth”In date-of-birth mode, the entered date is compared to the minimum age in the visitor’s browser. It is never transmitted — not to Optan, not to Shopify — and never stored. There is no field for it anywhere in the app’s database.
In the app’s database
Section titled “In the app’s database”The app stores, per shop:
| Data | Contents | Why | Deleted |
|---|---|---|---|
| Shop session | Your .myshopify.com domain, the API access token Shopify issues, and the Shopify-provided admin user profile (name, email, locale) for the merchant using the app |
Required by Shopify’s authentication library for any embedded app | On uninstall |
| Admin preference | Your chosen admin interface language | To show the app in your language | With shop data erasure after uninstall |
| Consent events (Pro, opt-in) | Outcome, country code, timestamp, shop domain — and nothing else | The consent log feature | With shop data erasure after uninstall |
| Gate settings | Your configuration (ages, scope, toggles) | Stored as an app-owned metafield on your store, not in the app’s database | Removed by Shopify with the app’s data on uninstall |
There is no table for storefront visitors — no IPs, no user agents, no identifiers, no birth dates.
Privacy webhooks (GDPR)
Section titled “Privacy webhooks (GDPR)”The app implements all three of Shopify’s mandatory privacy webhooks:
- Customer data request — answered with nothing to return: the app holds no data about individual customers.
- Customer redact — likewise a no-op by design: there is no customer-linked data to erase.
- Shop redact — received about 48 hours after uninstall; permanently erases everything the app still holds about the shop, including all consent events.
Hosting
Section titled “Hosting”The app’s server and database are hosted in the European Union (France). No data is transferred to third countries, no analytics or advertising service receives anything, and nothing is ever sold. Full details, including your rights, are in the privacy policy.