ConverlayConverlay

How the Pixel Works

Converlay uses Shopify's Web Pixels API to capture storefront events. The pixel runs inside a sandboxed iframe managed entirely by Shopify, ensuring zero impact on your store's performance.

Sandboxed execution

Shopify loads custom pixels in an isolated sandbox. This means the pixel cannot access the main page DOM, cookies, or interfere with your storefront. It receives events through Shopify's event bus.

Available browser APIs

APIAvailable
browser.localStorageYes
browser.cookieNo
document.cookieNo
window.localStorageNo (use browser.localStorage)
fetch / sendBeaconYes

Data captured

Every event payload includes:

  • Client ID — persistent identifier stored in browser.localStorage
  • Session ID — 30-minute rolling window, also persisted in localStorage
  • Click IDsgclid, fbclid, ttclid extracted from the page URL
  • UTM parametersutm_source, utm_medium, utm_campaign, utm_term, utm_content
  • Facebook Browser ID_fbp generated from client ID, _fbc from fbclid
  • PII from checkout — email, phone, name, address (hashed server-side with SHA-256 before forwarding)
  • Consent state — mapped from Shopify's Customer Privacy API to Google Consent Mode v2 signals

Transport

Events are sent to the Converlay collection endpoint using navigator.sendBeacon for reliability during page unloads. If sendBeacon is unavailable, the pixel falls back to a standard fetch POST request.

Persistence

Client ID and session ID are stored in browser.localStorage. If localStorage is unavailable (e.g., in some privacy-focused browsers), the pixel falls back to in-memory storage. IDs will be regenerated on each page load in that case.

Pixel versioning

Each pixel deployment includes a version number and a commit hash. You can check the running version in your Converlay dashboard or in the browser console by searching for [Converlay] log entries.

Caching

Shopify aggressively caches web pixel code. After deploying a new pixel version, stores must disconnect and reconnect the pixel in Settings → Customer events for code changes to take effect. Settings changes can be pushed remotely via the bulk updater.