Consent Deep Dive

Junction's consent state machine queues events while consent is pending, then flushes or drops them based on user choice. No data escapes without explicit permission.

Site-wide cookie banner active. The floating consent banner at the bottom of the page manages consent across the entire site. This page is a deep-dive into how the consent state machine works under the hood.

Banner is visible

Consent Banner

Live state

Queue Visualization

Events stack up while consent is pending

Click Reset to Pending then fire some events to see the queue.

Per-Destination Gating

Each destination declares which consent categories it requires. Events only reach destinations with matching consent grants.

GA4

Pending

Requires analytics consent

⏳ Queuing events

Amplitude

Pending

Requires analytics consent

⏳ Queuing events

Meta Pixel

Pending

Requires marketing consent

⏳ Queuing events

// junction-config.ts { destination: ga4, consent: ["analytics"] } // only fires when analytics=true { destination: meta, consent: ["marketing"] } // only fires when marketing=true

Queue Mode vs Strict GDPR Mode

Normal Mode (Queue)

Events are queued while consent is pending. When the user grants consent, queued events flush through. When denied, they're dropped.

consent: { queueTimeout: 10_000 }

Strict GDPR Mode (Drop)

Pending = denied. No events are queued at all. Only explicitly granted categories receive events. Use for GDPR-strict deployments.

consent: { strictMode: true }

Browser Privacy Signals

Do Not Track (DNT)

Your browser: ...

When respectDNT: true, Junction treats DNT=1 as marketing + analytics denied.

Global Privacy Control (GPC)

Your browser: ...

When respectGPC: true, Junction respects the legally binding GPC signal under CCPA/GDPR.

Houston, we have cookies!

These cookies fuel our rockets, not your waistline. We use them to understand how you navigate the cosmos and improve your mission experience.