STORAGE / YNL-POL-02
Effective:
Cookie and storage notice.
“Cookie” is shorthand here. YNL uses HTTP cookies, browser storage, in-memory state, and server-side records. This notice separates those mechanisms and names the modules that activate them.
No advertising cookie stack: the site does not install Meta Pixel or a third-party behavioral-advertising tag. Site analytics, masked experience diagnostics, and merchandising history are core storefront processing. The selector separately controls extended device compatibility details.
1. Storage definitions
- HTTP cookie
- A small name and value attached to requests for the YNL domain.
- HTTP-only cookie
- A signed cookie available to the server but not readable by site JavaScript.
- Local storage
- Browser key-value storage that normally persists after the browser closes.
- Session storage
- Browser key-value storage scoped to a browser tab or browsing session.
- In-memory state
- Temporary data held only while the page process is alive.
- Server-side record
- A record held in YNL’s Netlify Blobs stores or a named service provider.
Local storage and session storage are not technically cookies, but they can serve related state-management purposes. The privacy selector covers all of them.
2. First-visit state machine
- The browser generates an ephemeral UUID in memory and buffers a maximum of 100 registered interaction events with their original timestamps.
- Analytics, masked diagnostics, merchandising events, and device compatibility details are not transmitted while the first choice is unresolved.
- Either choice enables the core storefront modules. The server generates the anonymous UUID and issues signed consent and visitor cookies; buffered core events may then be sent with their recorded timestamps.
- Allow all also enables isolated device compatibility collection. Allow necessary keeps that collection off. Both choices are stored for up to 400 days and can be changed from Privacy choices.
3. Necessary storage and processing
Necessary mechanisms support the cart, checkout handoff, request security, privacy selection, accessibility, and basic session continuity. Blocking them may prevent the cart or preference controls from working.
| Technical class | Function | Typical boundary |
|---|---|---|
shopifyCartId and Hydrogen cart state | Find the current Shopify cart and apply immediate local cart projections while a mutation completes. | Browser storage and Shopify. |
ynl_privacy_prompt_v3 | Hide the first-visit panel after the active choice has been handled. | First-party UI cookie. |
ynl_consent and ynl_vid | Carry the signed purpose selection and server-generated anonymous visitor UUID. | Signed, HTTP-only first-party cookies. |
| Security and rate-limit state | Validate same-origin requests, bound traffic, deduplicate provider callbacks, and reduce abuse. | Server memory, request metadata, and server-side records. |
| Interface preferences | Remember dismissed promotions, popup suppression, and unlocked Vault display state. | First-party browser storage. |
Shopify, Netlify, or another infrastructure provider may set or read its own necessary security and commerce state while performing the requested service. Provider-controlled identifiers are governed by the provider’s notice as well.
4. Core processing and device details
posthog.capture(event, properties)
Loads the PostHog JavaScript library from the bundled application, enables registered product analytics and experiment exposure, and uses first-party PostHog cookie plus local-storage persistence. Broad autocapture, automatic pageviews, heatmaps, and full URL collection are disabled. The PostHog cookie copy is configured for 400 days. Its local-storage copy remains until consent reset, browser-data removal, or browser eviction. Registered analytics are a core storefront module under either chooser outcome.
ynl-behavior-v2
Stores permitted browsing and commerce interaction signals in YNL’s server-side Netlify Blobs store for product merchandising. This module reads the signed visitor identity from the request. It does not accept a profile identifier supplied by the browser. Merchandising remains on under either chooser outcome.
posthog.startSessionRecording()
Starts the masked experience-diagnostics replay module. All inputs, text, and attributes are masked; marked sensitive regions are blocked; and canvas, font, request-body, request-header, and cross-origin-frame capture are disabled. This masked diagnostic module remains on under either chooser outcome.
/api/privacy/telemetry → ynl-device-telemetry-v2
Stores normalized browser, capability, and network fields plus an encrypted isolated IP, font, and rendering payload described in the Privacy Policy. The versioned fingerprint HMAC is collection-only. Matching and personalization flags are disabled. This is the only module changed by Allow all versus Allow necessary.
5. Live technical inventory
This register is rendered from the same implementation-owned inventory used by the privacy selector. It lists actual identifiers and explicitly marks runtime patterns; it does not invent cookie names to inflate the count.
CURRENT IMPLEMENTATION
Technical inventory
281 entries
These are implemented identifiers, not invented cookie names. Runtime substitutions are explicitly marked as patterns.
Browser storage & pre-choice memory18
Exact first-party keys plus PostHog runtime patterns. Angle brackets and braces mark substitutions, not extra cookies.
ynl_consentHTTP-only cookie
Signed purpose selection, including the device-compatibility choice; expires 400 days after the latest explicit choice.
ynl_vidHTTP-only cookie
Signed random browser UUID; expires up to 400 days after the latest explicit choice or authorized identity rotation.
ynl_pidHTTP-only cookie
Signed opaque profile ID after a permitted profile link; expires 400 days after that authorized link or reconnect.
ynl_privacy_prompt_v3Cookie
Non-sensitive prompt-hidden hint; expires 400 days after the latest explicit chooser outcome.
shopifyCartIdlocalStorage
Shopify Hydrogen cart identifier; retained until the cart is cleared or browser storage is removed.
ynl-vault-unlockedlocalStorage
Remembers that the free Vault form succeeded; no programmed expiry.
ynl-vault-droplocalStorage
Stores the current three-day Vault countdown target timestamp.
ynl-popup-suppresslocalStorage
Popup suppression timestamp: 14 days after dismissal or 365 days after acceptance.
ynl-promo-dismissedlocalStorage
Remembers a promotion-banner dismissal; no programmed expiry.
ynl_telemetry_sent_v1sessionStorage
Prevents duplicate device snapshots in the same browser session.
ynl_pending_reconnect_v2sessionStorage
Short-lived signed reconnect token removed after the reconnect request is processed.
ynl_rec_attribution_v1:{handle}PatternsessionStorage pattern
Per-product recommendation attribution created by the core analytics and merchandising modules; each record expires after 30 minutes.
ph_<project-token>_posthogPatternPostHog cookie/localStorage pattern
PostHog identity, session, and feature-flag payload. The cookie copy expires after 400 days; localStorage is cleared on reset, withdrawal, or browser-data removal.
__ph_opt_in_out_<project-token>PatternPostHog localStorage pattern
PostHog SDK opt-in state, created only after an enabled PostHog category is applied.
ph_<project-token>_window_idPatternPostHog sessionStorage pattern
PostHog SDK per-window identifier.
ph_<project-token>_primary_window_existsPatternPostHog sessionStorage pattern
PostHog SDK tab/window coordination flag.
ephemeralIdIn-memory value
Random UUID used only while the first choice is undecided; never persisted before permission.
bufferedEventsIn-memory queue
At most 100 pre-choice analytics events; flushed after analytics permission or destroyed otherwise.
posthog.capture event names39
The complete custom-event allow-list currently accepted by the analytics client and server.
session_startedPostHog event
Registered YNL event; sent only when analytics is enabled.
page_viewedPostHog event
Registered YNL event; sent only when analytics is enabled.
navigation_viewedPostHog event
Registered YNL event; sent only when analytics is enabled.
acquisition_capturedPostHog event
Registered YNL event; sent only when analytics is enabled.
scroll_depth_reachedPostHog event
Registered YNL event; sent only when analytics is enabled.
section_dwell_recordedPostHog event
Registered YNL event; sent only when analytics is enabled.
product_card_impressionPostHog event
Registered YNL event; sent only when analytics is enabled.
product_card_clickedPostHog event
Registered YNL event; sent only when analytics is enabled.
product_viewedPostHog event
Registered YNL event; sent only when analytics is enabled.
audio_preview_startedPostHog event
Registered YNL event; sent only when analytics is enabled.
audio_preview_completedPostHog event
Registered YNL event; sent only when analytics is enabled.
video_startedPostHog event
Registered YNL event; sent only when analytics is enabled.
video_completedPostHog event
Registered YNL event; sent only when analytics is enabled.
vault_downloadedPostHog event
Registered YNL event; sent only when analytics is enabled.
email_link_clickedPostHog event
Registered YNL event; sent only when analytics is enabled.
email_link_openedPostHog event
Registered YNL event; sent only when analytics is enabled.
form_submittedPostHog event
Registered YNL event; sent only when analytics is enabled.
discount_deliveredPostHog event
Registered YNL event; sent only when analytics is enabled.
cart_item_addedPostHog event
Registered YNL event; sent only when analytics is enabled.
cart_item_removedPostHog event
Registered YNL event; sent only when analytics is enabled.
cart_viewedPostHog event
Registered YNL event; sent only when analytics is enabled.
upsell_clickedPostHog event
Registered YNL event; sent only when analytics is enabled.
checkout_startedPostHog event
Registered YNL event; sent only when analytics is enabled.
purchase_completedPostHog event
Registered YNL event; sent only when analytics is enabled.
payment_failedPostHog event
Registered YNL event; sent only when analytics is enabled.
refund_recordedPostHog event
Registered YNL event; sent only when analytics is enabled.
membership_status_changedPostHog event
Registered YNL event; sent only when analytics is enabled.
cart_recovery_openedPostHog event
Registered YNL event; sent only when analytics is enabled.
recommendation_requestedPostHog event
Registered YNL event; sent only when analytics is enabled.
recommendation_impressionPostHog event
Registered YNL event; sent only when analytics is enabled.
recommendation_clickedPostHog event
Registered YNL event; sent only when analytics is enabled.
recommendation_addedPostHog event
Registered YNL event; sent only when analytics is enabled.
recommendation_purchasedPostHog event
Registered YNL event; sent only when analytics is enabled.
web_vital_recordedPostHog event
Registered YNL event; sent only when analytics is enabled.
client_error_recordedPostHog event
Registered YNL event; sent only when analytics is enabled.
request_latency_recordedPostHog event
Registered YNL event; sent only when analytics is enabled.
broken_media_detectedPostHog event
Registered YNL event; sent only when analytics is enabled.
experiment_exposurePostHog event
Registered YNL event; sent only when analytics is enabled.
device_telemetry_storedPostHog event
Registered YNL event; sent only when analytics is enabled.
Registered custom analytics properties57
The complete custom-property allow-list. Raw email, IP, font arrays, and fingerprint material are rejected.
availabilityPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
browserPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
browser_versionPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
campaignPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
cart_quantityPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
categoryPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
code_lengthPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
connection_typePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
countryPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
cpu_bucketPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
currencyPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
discount_threshold_centsPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
device_typePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
duration_msPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
enginePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
error_codePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
event_timestampPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
experiment_keyPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
fingerprint_versionPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
handlePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
item_countPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
latency_msPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
mediumPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
memory_bucketPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
media_typePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
metricPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
navigation_typePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
order_idPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
osPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
ownedPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
pathPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
personalization_activePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
positionPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
price_centsPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
progress_percentPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
ranker_versionPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
reasonPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
recommendation_idPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
referrer_hostPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
regionPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
request_idPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
sectionPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
screen_bucketPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
snapshot_idPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
sourcePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
statusPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
surfacePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
title_lengthPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
timezonePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
utm_campaignPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
utm_contentPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
utm_mediumPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
utm_sourcePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
utm_termPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
valuePostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
variantPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
variant_idPostHog property
Allow-listed custom property; rejected when its value contains PII or a secret.
Scheduled provider aggregate event names1
Server-only non-person reporting that is not accepted by the browser analytics client.
kit_email_stats_snapshotScheduled aggregate PostHog event
Daily non-person Kit account or broadcast snapshot; not accepted by browser analytics.
Scheduled provider aggregate properties22
Exact account and broadcast totals accepted by the isolated Kit-to-PostHog boundary.
sourceScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
scopeScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
sync_dateScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
stats_windowScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
broadcast_idScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
messages_sentScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
recipient_countScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
open_countScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
click_countScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
unsubscribe_countScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
open_rate_percentScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
click_rate_percentScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
unsubscribe_rate_percentScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
bounce_rate_percentScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
open_tracking_enabledScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
click_tracking_enabledScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
provider_statusScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
progress_percentScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
shows_total_clicksScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
window_startScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
window_endScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
send_atScheduled aggregate PostHog property
Allow-listed Kit delivery or engagement aggregate; rejects message, subscriber, URL, and arbitrary fields.
Device snapshot fields & probes69
Collected only after the device-diagnostics selection; PostHog receives normalized fields rather than the isolated raw material.
snapshot.browser.nameDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.browser.versionDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.browser.engineDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.browser.osDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.browser.userAgentDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.browser.platformDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.browser.languageDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.browser.languages[]Device snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.browser.timezoneDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.clientHints.brands[].brandDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.clientHints.brands[].versionDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.clientHints.mobileDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.clientHints.platformDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.screen.widthDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.screen.heightDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.screen.availableWidthDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.screen.availableHeightDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.screen.viewportWidthDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.screen.viewportHeightDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.screen.pixelRatioDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.screen.colorDepthDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.touchPointsDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.pointerDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.hardwareConcurrencyDevice snapshot field
Collected once, converted to a coarse bucket before storage, and used only with device diagnostics enabled.
snapshot.capabilities.deviceMemoryDevice snapshot field
Collected once, converted to a coarse bucket before storage, and used only with device diagnostics enabled.
snapshot.capabilities.connection.effectiveTypeDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.connection.downlinkDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.connection.rttDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.connection.saveDataDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.cookiesDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.doNotTrackDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.webAssemblyDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.serviceWorkerDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.webGLDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.capabilities.audioContextDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.fonts[]Device snapshot field
Stored inside the encrypted isolated-device payload only when device diagnostics is enabled.
snapshot.fontMetricsDevice snapshot field
Stored inside the encrypted isolated-device payload only when device diagnostics is enabled.
snapshot.canvasDevice snapshot field
Stored inside the encrypted isolated-device payload only when device diagnostics is enabled.
snapshot.webglDevice snapshot field
Stored inside the encrypted isolated-device payload only when device diagnostics is enabled.
snapshot.audioDevice snapshot field
Stored inside the encrypted isolated-device payload only when device diagnostics is enabled.
snapshot.codecs.mp3Device snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.codecs.aacDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.codecs.opusDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.codecs.h264Device snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.codecs.webmDevice snapshot field
Collected and stored only when device diagnostics is enabled.
snapshot.webApis[]Device snapshot field
Collected and stored only when device diagnostics is enabled.
document.fonts.check("Arial")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
document.fonts.check("Avenir Next")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
document.fonts.check("Courier New")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
document.fonts.check("Georgia")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
document.fonts.check("Helvetica Neue")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
document.fonts.check("Menlo")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
document.fonts.check("Monaco")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
document.fonts.check("Roboto")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
document.fonts.check("SF Pro Display")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
document.fonts.check("Times New Roman")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
document.fonts.check("Verdana")Font availability probe
Checks availability; the resulting font-name array is encrypted before storage.
WEBGL_debug_renderer_info.UNMASKED_VENDOR_WEBGLRendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
WEBGL_debug_renderer_info.UNMASKED_RENDERER_WEBGLRendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
WebGLRenderingContext.MAX_TEXTURE_SIZERendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
WebGLRenderingContext.MAX_RENDERBUFFER_SIZERendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
WebGLRenderingContext.MAX_VIEWPORT_DIMSRendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
window.BroadcastChannelRendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
window.FileSystemHandleRendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
window.GPURendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
window.MediaCapabilitiesRendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
window.PaymentRequestRendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
window.SharedWorkerRendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
window.WebTransportRendering/API probe
Contributes a supported value or a SHA-256 signature to the isolated device snapshot.
IP, network, encryption & fingerprint fields43
Raw IP and detailed device material stay in isolated encrypted Netlify storage and never enter product ranking.
header.x-nf-client-connection-ipRequest header
Primary raw-IP source on Netlify.
header.x-forwarded-forRequest header
Fallback raw-IP source; only the first address is read.
header.x-countryRequest header
Fallback coarse country source.
header.x-nf-countryRequest header
Fallback coarse country source.
header.x-subdivisionRequest header
Fallback coarse region source.
header.x-country-regionRequest header
Fallback coarse region source.
header.x-cityRequest header
Fallback coarse city source.
ipinfo.geo.country_codeIPinfo response field
Coarse country enrichment.
ipinfo.geo.region_codeIPinfo response field
Coarse region enrichment.
ipinfo.geo.regionIPinfo response field
Fallback coarse region enrichment.
ipinfo.geo.cityIPinfo response field
Coarse city enrichment.
ipinfo.geo.timezoneIPinfo response field
Timezone enrichment.
ipinfo.as.asnIPinfo response field
Autonomous-system number enrichment.
ipinfo.as.domainIPinfo response field
Network-domain enrichment.
ipinfo.as.nameIPinfo response field
Network-provider enrichment.
ipinfo.as.typeIPinfo response field
Network-type enrichment.
ipinfo.anonymous.is_vpnIPinfo response field
Contributes the vpn proxy-classification label.
ipinfo.anonymous.is_proxyIPinfo response field
Contributes the proxy classification label.
ipinfo.anonymous.is_res_proxyIPinfo response field
Contributes the residential_proxy classification label.
ipinfo.anonymous.is_torIPinfo response field
Contributes the tor classification label.
ipinfo.anonymous.is_relayIPinfo response field
Contributes the relay classification label.
ipinfo.is_hostingIPinfo response field
Contributes the hosting classification label.
ipinfo.is_anonymousIPinfo response field
Signals whether a no-proxy result can be recorded.
location.countryStored coarse-location field
Stored in the device snapshot record.
location.regionStored coarse-location field
Stored in the device snapshot record.
location.cityStored coarse-location field
Stored in the device snapshot record.
location.timezoneStored coarse-location field
Stored in the device snapshot record.
network.asnStored network field
Stored in the device snapshot record.
network.networkStored network field
Stored in the device snapshot record.
network.providerStored network field
Stored in the device snapshot record.
network.networkTypeStored network field
Stored in the device snapshot record.
network.proxyClassificationStored network field
Stored in the device snapshot record.
encryptedIpEncrypted raw-IP field
AES-256-GCM encrypted and isolated from PostHog, Kit, Shopify, URLs, and logs.
encryptedIpPrefixEncrypted IP-prefix field
AES-256-GCM encrypted /24 IPv4 or /48 IPv6 prefix.
isolatedRawDevice.fontsEncrypted isolated-device field
Available font-name array.
isolatedRawDevice.fontMetricsEncrypted isolated-device field
SHA-256 font-metric signature.
isolatedRawDevice.canvasEncrypted isolated-device field
SHA-256 canvas signature.
isolatedRawDevice.webglEncrypted isolated-device field
WebGL signature plus vendor/renderer data.
isolatedRawDevice.audioEncrypted isolated-device field
SHA-256 OfflineAudioContext signature.
fingerprint.versionStored fingerprint field
Current value is ynl-fp-v1.
fingerprint.hmacStored fingerprint field
Versioned HMAC of the sanitized snapshot.
fingerprint.matchingEnabledStored control field
Hard-coded false in the current implementation.
fingerprint.personalizationEnabledStored control field
Hard-coded false in the current implementation.
Vendors, destinations, stores & retention32
Exact configured endpoints, server-store names, and retention controls used by the current implementation.
/api/privacy/telemetryYNL endpoint
Same-origin device-snapshot endpoint; requires signed visitor and telemetry permission.
https://api.ipinfo.io/batchIPinfo destination
Receives one raw IP in an HTTPS POST body for location/network enrichment when configured.
https://us.i.posthog.comPostHog US destination
Visitor analytics, session replay, and fixed-ID aggregate Kit-stat ingestion host; receives ordinary HTTPS connection metadata while YNL event payloads set $ip to null.
https://us.posthog.comPostHog US destination
PostHog project UI host configured by the client SDK.
@netlify/blobsNetlify destination
Strong-consistency server storage used for YNL privacy, profile, behavior, and commerce records.
ynl-consent-state-v2Netlify Blobs store
Authoritative purpose and device-compatibility selection; retained for 400 days from the latest explicit write.
ynl-behavior-v2Netlify Blobs store
Permitted merchandising events; 365-day retention.
ynl-behavior-quota-v2Netlify Blobs store
Short fixed-window rate-limit counters for browser-originated behavior events.
ynl-profiles-v2Netlify Blobs store
Opaque profile IDs, email HMACs, and visitor links; no programmed expiry.
ynl-device-telemetry-v2Netlify Blobs store
Normalized snapshot, encrypted isolated-device payload, and fingerprint HMAC; 365-day retention.
ynl-device-ip-v2Netlify Blobs store
Encrypted raw IP and IP prefix; 90-day retention.
ynl-digital-ownership-v2Netlify Blobs store
Permanent digital-product ownership record; no programmed expiry.
ynl-recommendation-shadow-v2Netlify Blobs store
Shadow-ranking comparisons; 90-day retention.
ynl-shopify-webhooks-v2Netlify Blobs store
Shopify webhook idempotency records.
ynl-shopify-orders-v2Netlify Blobs store
Shopify order reconciliation records.
ynl-upsell-discount-v2Netlify Blobs store
Signed cart-offer claims and rate-limit counters with explicit expiries.
ynl-funnel-v2Netlify Blobs store
First-order discount and V2 journey state records; journey state has no programmed expiry.
https://api.kit.com/v4/subscribersKit destination
Receives submitted email/name data only after a form submission.
https://api.kit.com/v4/account/email_statsRead-only Kit destination
Daily GET for last-90-day account delivery and aggregate engagement totals.
https://api.kit.com/v4/broadcasts/statsRead-only Kit destination
Daily cursor-paginated GET for aggregate delivery and engagement by broadcast.
netlify/functions/kit-email-stats-sync.mtsNetlify scheduled function
Runs once daily in UTC; reads only Kit aggregate-stat endpoints and sends allow-listed non-person snapshots to PostHog US.
CONVERTKIT_API_KEYServer-only environment control
Read at function runtime and sent only in the X-Kit-Api-Key header; its value is never logged or placed in analytics.
ynl-kit-email-aggregate-v1Fixed non-person PostHog distinct ID
Shared by all daily Kit aggregate snapshots and never represents a subscriber, visitor, profile, or browser.
https://api.kit.com/v4/tags/{tag_id}/subscribersPatternKit destination pattern
Applies configured source/funnel tags after a form submission.
https://api.kit.com/v4/forms/{form_id}/subscribersPatternKit destination pattern
Adds a subscriber to the configured source form after submission.
https://<store>.myshopify.com/api/2026-04/graphql.jsonPatternShopify Storefront destination pattern
Catalog, cart, and checkout GraphQL endpoint.
https://<store>.myshopify.com/admin/api/2026-04/graphql.jsonPatternShopify Admin destination pattern
First-order eligibility and discount GraphQL endpoint.
https://<store>.myshopify.com/admin/api/2026-07/graphql.jsonPatternShopify Admin destination pattern
Cart-upsell discount GraphQL endpoint.
RAW_IP_RETENTION_DAYS = 90Retention control
Encrypted raw IP and encrypted prefix rolling retention.
SNAPSHOT_RETENTION_DAYS = 365Retention control
Device snapshot and composite fingerprint-HMAC rolling retention.
cookie_expiration = 400Retention control
PostHog SDK cookie retention in days after a core storefront choice is applied.
ATTRIBUTION_TTL_MS = 1800000Retention control
Per-product session recommendation-attribution lifetime.
6. Storage lifetimes
- Signed purpose selection: up to 400 days from the latest explicit privacy choice; read-only return visits do not extend it.
- PostHog cookie copy: configured for 400 days.
- PostHog local-storage copy: until withdrawal, reset, browser-data removal, or eviction.
- Encrypted raw IP and IP prefix: 90 rolling days.
- Device snapshot and fingerprint HMAC: 12 rolling months.
- Permitted behavior history: 12 rolling months.
- Recommendation shadow comparisons: 90 rolling days.
- Short-lived signed cart-offer token: approximately five minutes.
- Temporary Shopify upsell discount records: through their short offer lifetime and cleanup window.
Browser privacy settings, private mode, storage eviction, manual deletion, and provider limits can shorten client-side storage. Server-side transaction, ownership, tax, security, and legal records may follow longer schedules.
7. How to control storage
Use Privacy choices on the site to change device compatibility collection. You can also delete YNL site data through your browser settings, block cookies, or use a private browsing window. Deleting the signed choice causes the panel to return. Blocking all browser storage may break the cart and preference state.
The browser’s Do Not Track signal may be present only in an enabled device compatibility snapshot; it is not a substitute for the explicit chooser selection. YNL does not use this site for sale or cross-context behavioral advertising.
Questions or deletion requests can be sent to youngernextlife@gmail.com.
Read the Privacy Policy and Terms and Conditions for the wider data and contract terms.