Skip to main content
ParityEdge
Troubleshooting & FAQs
Support & Troubleshooting

Frequently Asked Questions & Troubleshooting

Common architectural questions, edge reliability guarantees, and troubleshooting tips for your ParityEdge deployment.

What happens if a visitor uses an ad-blocker or the edge network is unreachable?

ParityEdge is architected with a strict Fail-Open Guarantee. If network connectivity fails, a third-party ad-blocker interferes, or the edge API times out, the script silently terminates without throwing uncaught JavaScript errors or breaking the host layout. Your website continues rendering standard full pricing normally without layout shifts.

How does the Anti-VPN & Datacenter Proxy Shield work?

ParityEdge edge nodes automatically inspect the incoming Autonomous System Number (ASN). If the connection originates from a known cloud hosting provider (AWS, Google Cloud, DigitalOcean, Hetzner, Linode, Oracle Cloud), ParityEdge identifies the session as a proxy/VPN and denies the discount without displaying an alert.

How do I test different countries without buying a commercial VPN?

Use the built-in Country Simulator tab inside your project workspace. You can select benchmark countries (e.g. 🇮🇳 India, 🇧🇷 Brazil, 🇵🇱 Poland, 🇺🇸 United States) to simulate geolocation, test discount calculations, and verify the Anti-VPN shield in seconds directly in your dashboard.

How do I whitelist multiple domains or staging environments?

In your project settings under "Whitelisted Domains", enter comma-separated domains (e.g. `yourdomain.com, staging.yourdomain.com, localhost:3000`). ParityEdge will accept embed requests from all authorized domains.

Does ParityEdge automatically generate discount coupons in Stripe or Lemon Squeezy?

No. You create the promo codes (e.g., `PARITY50` or `LATAM40`) inside your Stripe / Lemon Squeezy dashboard and configure the matching code in ParityEdge. When an eligible visitor clicks the banner, ParityEdge appends `?prefilled_promo_code=PARITY50` to your checkout links automatically.

How does ParityEdge prevent coupon codes from being leaked, scraped, or shared publicly?

ParityEdge never requires customers to manually copy or type discount codes on your public website. The edge engine inspects the visitor’s country and datacenter ASN, then dynamically injects the prefilled discount parameter directly into your checkout link at runtime. Visitors from non-discounted countries or datacenter VPNs never receive the parameter, significantly reducing exposure to coupon aggregators (like Honey or RetailMeNot) and social forums harvesting generic codes.

Can someone bypass geolocation with a residential proxy to exploit regional discounts at checkout?

While ParityEdge blocks 99%+ of proxy traffic at the edge via datacenter ASN filtering, you can enforce 100% airtight protection at the checkout level: (1) In Stripe, configure your Promotion Codes with Currency Restrictions (e.g. restrict your 50% discount strictly to INR or BRL). If a US customer attempts to checkout with USD, Stripe automatically rejects the code. (2) In your webhook handlers (checkout.session.completed in Stripe or order_created in Lemon Squeezy), verify that the buyer’s card issuing country or billing country matches the issued discount tier.

Is ParityEdge compliant with GDPR and CCPA privacy regulations?

Yes. ParityEdge does not store visitor IP addresses, set tracking cookies, or build behavioral user profiles. Geolocation is resolved ephemerally in RAM at the edge node, ensuring strict zero-PII compliance out of the box.

What is the performance overhead of the embed script?

The standalone embed script (`parity.global.js`) is under 3 kB gzipped. Edge lookup responses resolve in under 10ms via distributed edge cache. The banner is injected into an isolated Shadow Root to prevent CSS recalibration across the main document.

What is the official npm package for ParityEdge and how do I install it?

The official package is `parityedge` on the npm registry (`npm install parityedge` or `pnpm add parityedge`). It provides zero-dependency subpath exports for Vanilla JavaScript (`parityedge`), React 16.8–19 (`parityedge/react`), and Next.js 14/15 middleware + Server Components (`parityedge/next`) with an ultra-lean footprint under 3 kB gzipped.

How do I reset the banner dismiss state for local testing?

The banner dismiss is stored in localStorage with a 7-day expiry. To force the banner to reappear during local testing, run this in your browser DevTools console: localStorage.removeItem('parity_dismissed_YOUR_PROJECT_ID'). Replace YOUR_PROJECT_ID with your actual project key (e.g., parity_dismissed_prj_live_abc123). Refreshing the page will then show the banner again.

How do I listen for when ParityEdge has finished resolving (parityedge:loaded event)?

ParityEdge dispatches a parityedge:loaded CustomEvent on the document once the edge lookup completes and the embed has initialized. Use it to trigger custom analytics, hide loading skeletons, or run post-load logic without polling: document.addEventListener('parityedge:loaded', function(e) { console.log('Parity resolved:', e.detail); }); This event fires for both the script-tag embed and the npm package embed component.

Ready to localize your website?

Create your project in under 60 seconds and start boosting global revenue.

Open Dashboard