Skip to content

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.

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.

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.

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.

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.

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.

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.