About Ninepine
Ninepine is a fast-growing Shopify Plus merchant operating localized storefronts across Europe and the Middle East, running dedicated country domains such as ninepine.nl, ninepine.se, ninepine.no, ninepine.eu, ninepine.uk, ninepine.ch, ninepine.dk, ninepine.de, ninepine.fi, and ninepine.ae.
At peak, the brand sees ~20β30K sessions per day, so even small changes to consent UX can materially impact conversion.
Goals
- Ensure GDPR-compliant consent across all European markets while minimizing friction for first-time visitors.
- Maintain reliable signal integrity for media and lifecycle tools (Meta, Klaviyo) without tracking before consent.
Challenges
- Multi-domain reality: Consent cannot be shared across different domains (only subdomains), which is common for brands using country-specific ccTLDs. This created UX expectations that needed to be aligned to platform constraints.
- Perceived pre-consent tracking: The team flagged potential tracking before acceptance (e.g., via helpers), requiring joint validation and policy alignment.
- Klaviyo data dips: After rollout, Klaviyoβs abandoned-cart tracking appeared impacted when Shopifyβs default policy and the appβs banner policy were mismatched (strict vs. loose).
Solution
- Policy alignment (Shopify Privacy API + App banner): We advised keeping Shopifyβs Customer Privacy regions and the appβs banner policy in sync (either both strict or both loose) to avoid conflicting behavior for integrated tools like Klaviyo.
- Banner UX optimization: We tested banner variations and confirmed that removing the close (βXβ) button and using a Preferences + Accept layout can materially improve acceptance.
- Operational fix for repeat popups: We investigated reports of banners reappearing despite prior consent and deployed a fix; the merchant confirmed resolution.
- Expectation setting for Markets: We clarified that cross-domain consent persistence is not possible by design; each ccTLD stores its own consent. (Subdomain sharing is supported; different domains are not.)
Results
- Acceptance rate improvements:
- Strict policy baseline: 58.8% accept
- After removing βXβ: 80.8% accept
- With looser policy & multi-domain context the next morning: ~97% accept
These figures came directly from the merchantβs own observations during the optimization cycle. Chat transcript (#190)
- Stability restored: Merchant confirmed the repeat-popup issue was solved following our investigation. Chat transcript (#190)
- Clearer governance: The team aligned Shopify and app settings to protect Klaviyo tracking while respecting consent.
Why it matters
At Ninepineβs scale (20β30K sessions/day), consent UX must balance compliance and conversion. With Markets and 10+ ccTLDs, clarity on whatβs possible across domains, plus aligned policies between Shopify and the banner, directly translates into healthier acceptance rates and fewer data blind spots for acquisition and retention teams.