Tracking exposure scan
gradeF
www.sample-boutique.example
Scanned 2026-07-16 · fresh browser profile · no prior consent state
Prepared by Harbor Lane Digital for sample-boutique.example
9 trackers transmitted visitor data to third parties before any consent interaction — the exact evidence pattern §631 / §638.51 demand letters are built on. 9 ignored the GPC signal.
9trackers transmitting before consent
9still firing with GPC signalled
—no reject control to test
OneTrustconsent banner
Banner detected (OneTrust), no reject control found on the first layer.
Theory-by-theory summary
What this scan observed, mapped to the theories demand letters plead. Observed behavior only — not a legal conclusion.
| Category | Result | Risk | Evidence & authority |
| CIPA §631(a)Prior-consent interception |
4 trackers transmitting |
High |
TikTok Pixel, Google Analytics 4 (gtag), FullStory and 1 more transmitted visitor data before the OneTrust banner was answered — the fact pattern §631 letters plead, since consent must come before interception (Javier v. Assurance IQ). Content-capture theories survived dismissal in Heerde v. Learfield and Shah v. Capital One. |
| CIPA §631(a)Content capture — session replay & chat |
1 tool active |
High |
FullStory — session recording and chat account for the majority of filed complaints. Courts are split: the Ninth Circuit revived a session-replay claim in Mikulsky v. Bloomingdale's (2025); Torres v. Prudential granted the defense summary judgment. |
| CIPA §638.51Pen register / trap-and-trace |
9 trackers transmitting |
High |
TikTok Pixel, Google Analytics 4 (gtag), Google Ads / DoubleClick and 6 more captured IP/device signals pre-consent — the dominant theory in current filings (Heiting v. IHOP; Camplisson v. Adidas). Courts are split: Rodriguez v. Plivo and Licea v. Hickory Farms rejected IP-alone theories. |
| CCPA §1798.135Global Privacy Control |
9 ignored the signal |
Medium |
Re-scanned with the browser legally signalling “do not share” (Sec-GPC); 9 trackers kept transmitting — the pattern behind CPPA enforcement actions (Honda, Todd Snyder). |
| Consent flowTracking after “Reject” |
No reject control |
Medium |
The banner offers no first-layer reject control — itself a common allegation in filed complaints. |
“Risk” grades how often the observed pattern appears in filed complaints and demand letters — several of these theories remain contested, and courts have rejected them in the cases noted.
Privacy-signal tests
Most scanners skip both of these.
Pass 2 · GPC signalled
9 trackers ignored it
We re-scanned with the browser legally signalling “do not share” (Sec-GPC header + JS API). 9 of the trackers above kept transmitting anyway; 2 stopped.
Pass 3 · reject clicked
No reject control
The banner offers no first-layer reject control — itself a common allegation.
The demand-letter math
Their framing — not a damages estimate
This reproduces the arithmetic plaintiff demand letters use: per tracker, per statute, at CIPA's $5,000 statutory figure. Real settlements run far lower, and several courts have rejected these theories outright — see the defense section below.
Meta Pixel: §631 + §638.51$10,000
TikTok Pixel: §638.51 + §631$10,000
Google Analytics 4 (gtag): §638.51 + §631$10,000
Google Ads / DoubleClick: §638.51$5,000
Microsoft UET / Bing Ads: §638.51$5,000
Snap Pixel: §638.51$5,000
Pinterest Tag: §638.51$5,000
Reddit Pixel: §638.51$5,000
Microsoft Clarity: §631 + §638.51$10,000
FullStory: §631 + §638.51$10,000
Klaviyo: §631 + §638.51$10,000
34 additional third-party vendors × §638.51 × $5,000$170,000
PER-CLAIMANT DEMAND FIGURE$255,000
Class-action framing: one real TikTok-pixel letter claimed “$50M class exposure at 10,000 visitors” — a single violation × $5,000 × 10,000 California visitors = $50,000,000. This site has 45 third parties a letter could price this way.
What a defense would argue
Accuracy over fear: a tracker firing pre-consent is what these letters allege — it is not, by itself, a finding of liability.
- Courts are split on §638.51 (pen register). Plaintiff wins: Heiting v. IHOP, Price v. Entravision, Camplisson v. Adidas (Nov 2025). Defense wins: Sanchez v. Cars.com, Rodriguez v. Plivo (IP address alone insufficient), Licea v. Hickory Farms.
- Session-replay §631 is split too. Torres v. Prudential granted summary judgment for the defense (replay readable only after transmission ≠ real-time interception); the Ninth Circuit in Mikulsky v. Bloomingdale's (2025) revived a session-replay claim.
- A tracker firing pre-consent is what these letters allege — it is not, by itself, a finding of liability.
Defense file — the raw evidence
Timestamped outbound requests to third-party domains in a fresh browser session, before any consent interaction — the same package a demand letter attaches as Exhibit A.
- Full network log (HAR):
/Users/serenearyal/Documents/projects/cipa-scanner/server/var/scans/sample-boutique.example-2026-07-16T21-53-21/baseline.har - GPC-pass network log (HAR):
/Users/serenearyal/Documents/projects/cipa-scanner/server/var/scans/sample-boutique.example-2026-07-16T21-53-21/gpc.har - Screenshot:
/Users/serenearyal/Documents/projects/cipa-scanner/server/var/scans/sample-boutique.example-2026-07-16T21-53-21/baseline-preconsent.png - Structured findings:
findings.json
Pre-consent findings — the per-tracker detail · 11
Meta Pixel
Class A — Ad/identity pixel (top demand-letter target)
Library loaded pre-consent — no data beacon observed during this scan · fires with GPC signalled: no
Captures: pageviews, IP address, fbp/fbc cookies, clicks, form/search inputs; Advanced Matching can include hashed email/phone in tr params · Theories in filed cases: §631, §638.51, VPPA, WA MHMD · HIGH — repeatedly named in filed complaints and settlements
European Wax Center settlement ($5M); Heerde v. Learfield
#1 most-named tracker in demand letters
Evidencetimestamped · pre-consent
21:53:23.499 +2.4sGEThttps://connect.facebook.net/en_US/fbevents.js
21:53:25.476 +4.3sGEThttps://connect.facebook.net/signals/config/391121354387940?v=2.9.356&r=stable&domain=www.sample…
TikTok Pixel
Class A — Ad/identity pixel (top demand-letter target)
Data transmitted pre-consent — beacon endpoint hit at +4.5s · fires with GPC signalled: yes
Captures: device, browser, geolocation, IP, ttclid, browser fingerprint ("de-anonymization") · Theories in filed cases: §638.51, §631 · HIGH — repeatedly named in filed complaints and settlements
Heiting v. IHOP; Price v. Entravision; Camplisson v. Adidas
§638.51 wave leader — 100+ class actions in one year
Evidencetimestamped · pre-consent
21:53:25.580 +4.5sGEThttps://analytics.tiktok.com/i18n/pixel/events.js?sdkid=CCQ52JRC77UEQ07IGPRG&lib=ttq
21:53:27.215 +6.1sGEThttps://analytics.tiktok.com/i18n/pixel/static/main.MTA2MWE1OWMwMw.js
21:53:27.437 +6.3sGEThttps://analytics.tiktok.com/i18n/pixel/static/identify_b8133453.js
21:53:27.438 +6.3sPOSThttps://analytics.tiktok.com/api/v2/pixel
21:53:27.461 +6.3sPOSThttps://analytics.tiktok.com/api/v2/pixel/perf
21:53:27.667 +6.5sPOSThttps://analytics.tiktok.com/api/v2/pixel/act
Google Analytics 4 (gtag)
Class A — Ad/identity pixel (top demand-letter target)
Data transmitted pre-consent — beacon endpoint hit at +2.4s · fires with GPC signalled: yes
Captures: IP, client ID, page paths, search terms embedded in URLs · Theories in filed cases: §638.51, §631 · HIGH — repeatedly named in filed complaints and settlements
Heerde v. Learfield (search terms = contents)
Evidencetimestamped · pre-consent
21:53:23.497 +2.4sGEThttps://www.googletagmanager.com/gtag/js?id=GT-TBW8XFPT
21:53:25.947 +4.8sPOSThttps://analytics.google.com/g/collect?v=2&tid=G-J11MBLGD5V>m=45je67f0v893703265z8867723131za2…
Google Ads / DoubleClick
Class A — Ad/identity pixel (top demand-letter target)
Data transmitted pre-consent — beacon endpoint hit at +4.7s · fires with GPC signalled: yes
Captures: conversion events, IP, remarketing IDs · Theories in filed cases: §638.51 · HIGH — repeatedly named in filed complaints and settlements
Evidencetimestamped · pre-consent
21:53:25.846 +4.7sGEThttps://www.googleadservices.com/pagead/conversion/960173363/?random=1784238805836&cv=11&fst=178…
21:53:25.781 +4.7sGEThttps://googleads.g.doubleclick.net/pagead/viewthroughconversion/960173363/?random=1784238805763…
21:53:25.947 +4.8sPOSThttps://stats.g.doubleclick.net/g/collect?v=2&ngs=1&ibt=1&tid=G-J11MBLGD5V&cid=1882361899.178423…
21:53:26.068 +4.9sPOSThttps://googleads.g.doubleclick.net/pagead/viewthroughconversion/960173363/?random=612829112&cv=…
Microsoft UET / Bing Ads
Class A — Ad/identity pixel (top demand-letter target)
Data transmitted pre-consent — beacon endpoint hit at +6.4s · fires with GPC signalled: yes
Captures: IP, browser fingerprint, identifiers · Theories in filed cases: §638.51 · MEDIUM-HIGH — appears in complaints and firm alerts
Evidencetimestamped · pre-consent
21:53:27.516 +6.4sGEThttps://bat.bing.com/bat.js
21:53:27.751 +6.6sGEThttps://bat.bing.com/p/action/5525025.js
21:53:27.858 +6.7sGEThttps://bat.bing.com/action/0?ti=5525025&tm=gtm002&Ver=2&mid=29d1684f-670d-4ee7-9622-3d2d7414fba…
Snap Pixel
Class A — Ad/identity pixel (top demand-letter target)
Data transmitted pre-consent — beacon endpoint hit at +4.7s · fires with GPC signalled: yes
Captures: events, IP, identity · Theories in filed cases: §638.51 · MEDIUM — appears in complaints and firm alerts
European Wax Center settlement
Evidencetimestamped · pre-consent
21:53:25.845 +4.7sGEThttps://sc-static.net/scevent.min.js
21:53:26.257 +5.1sGEThttps://tr.snapchat.com/config/com/0799b531-14db-475b-9828-0feaf5ed109e.js?v=3.59.0-2606221835
21:53:26.257 +5.1sGEThttps://tr.snapchat.com/cm/i?pid=0799b531-14db-475b-9828-0feaf5ed109e&u_scsid=1d173891-46dd-400b…
21:53:26.463 +5.3sPOSThttps://tr.snapchat.com/p
21:53:26.565 +5.4sGEThttps://tr.snapchat.com/cm/s?bt=1d53c387&pnid=140&cb=1784238806563&u_scsid=c5984b11-4488-46fa-8f…
21:53:26.662 +5.5sGEThttps://pixel.tapad.com/idsync/ex/push?partner_id=2884&partner_url=https%3A%2F%2Ftr.snapchat.com…
+2 more requests in the downloadable defense file
Pinterest Tag
Class A — Ad/identity pixel (top demand-letter target)
Data transmitted pre-consent — beacon endpoint hit at +4.0s · fires with GPC signalled: no
Captures: events, IP · Theories in filed cases: §638.51 · LOW-MEDIUM — demand-letter padding / emerging
Evidencetimestamped · pre-consent
21:53:25.151 +4.0sGEThttps://ct.pinterest.com/user/?cb=1784238805107&ed=%7B%22np%22%3A%22shopify-web-pixel%22%2C%22ev…
21:53:25.492 +4.4sGEThttps://ct.pinterest.com/v3/?cb=1784238805107&ad=%7B%22mh%22%3A%2258027b7f%22%2C%22ua%22%3A%22Mo…
Reddit Pixel
Class A — Ad/identity pixel (top demand-letter target)
Data transmitted pre-consent — beacon endpoint hit at +4.7s · fires with GPC signalled: yes
Captures: events, IP · Theories in filed cases: §638.51 · LOW-MEDIUM — demand-letter padding / emerging
Evidencetimestamped · pre-consent
21:53:25.845 +4.7sGEThttps://www.redditstatic.com/ads/pixel.js
21:53:26.164 +5.0sGEThttps://alb.reddit.com/rp.gif?ts=1784238806163&id=t2_3j2avnpr&event=PageVisit&m.value=&m.transac…
Microsoft Clarity
Class B — Session replay (65% of filed complaints)
Library loaded pre-consent — no data beacon observed during this scan · fires with GPC signalled: yes
Captures: session recording: clicks, scrolls, keystrokes/masked inputs · Theories in filed cases: §631, §638.51 · HIGH — repeatedly named in filed complaints and settlements
Evidencetimestamped · pre-consent
21:53:24.977 +3.8sGEThttps://www.clarity.ms/tag/shopify/w4j1994wue
FullStory
Class B — Session replay (65% of filed complaints)
Data transmitted pre-consent — beacon endpoint hit at +4.0s · fires with GPC signalled: yes
Captures: full session replay including keystrokes · Theories in filed cases: §631, §638.51 · HIGH — repeatedly named in filed complaints and settlements
landmark session-replay cases
Evidencetimestamped · pre-consent
21:53:25.105 +4.0sGEThttps://edge.fullstory.com/s/fs.js
21:53:25.716 +4.6sPOSThttps://rs.fullstory.com/rec/page
21:53:25.963 +4.8sGEThttps://rs.fullstory.com/rec/integrations?OrgId=o-1WSDXJ-na1&isInFrame=false&isNative=false
21:53:28.542 +7.4sPOSThttps://rs.fullstory.com/rec/bundle/v2?OrgId=o-1WSDXJ-na1&UserId=3d5319c6-13ef-4fb8-8bfd-3559024…
Klaviyo
Class D — Identity resolution (IP-to-email matching)
Data transmitted pre-consent — beacon endpoint hit at +1.5s · fires with GPC signalled: yes
Captures: email identity, browse/cart activity · Theories in filed cases: §631, §638.51 · MEDIUM — appears in complaints and firm alerts
Evidencetimestamped · pre-consent
21:53:22.673 +1.5sGEThttps://static.klaviyo.com/onsite/js/Sn6eFZ/klaviyo.js?company_id=Sn6eFZ
21:53:22.673 +1.5sGEThttps://static.klaviyo.com/onsite/js/klaviyo.js?company_id=Sn6eFZ
21:53:23.170 +2.0sGEThttps://static.klaviyo.com/onsite/js/build-preview/commit-4ab341531e941a9ba5cc5e08edb4c91b8124d6…
21:53:23.170 +2.0sGEThttps://static.klaviyo.com/onsite/js/build-preview/commit-4ab341531e941a9ba5cc5e08edb4c91b8124d6…
21:53:23.170 +2.0sGEThttps://static.klaviyo.com/onsite/js/build-preview/commit-4ab341531e941a9ba5cc5e08edb4c91b8124d6…
21:53:23.170 +2.0sGEThttps://static.klaviyo.com/onsite/js/build-preview/commit-4ab341531e941a9ba5cc5e08edb4c91b8124d6…
+4 more requests in the downloadable defense file
The long tail · 34 additional pre-consent third parties
Demand letters pad their math with every third-party domain contacted pre-consent (one letter in our research counted “43 additional vendors” at $5,000 each). These are not in our classified tracker list but were contacted before any consent interaction:
| Domain | Requests | First seen |
|---|
| forter.com | 33 | 2026-07-16T21:53:22.903Z |
| imgix.net | 23 | 2026-07-16T21:53:22.673Z |
| gorgias.chat | 20 | 2026-07-16T21:53:22.674Z |
| shopifysvc.com | 10 | 2026-07-16T21:53:23.336Z |
| shopify.com | 8 | 2026-07-16T21:53:22.672Z |
| optimizely.com | 6 | 2026-07-16T21:53:22.671Z |
| googleapis.com | 5 | 2026-07-16T21:53:25.093Z |
| posthog.com | 5 | 2026-07-16T21:53:25.103Z |
| global-e.com | 5 | 2026-07-16T21:53:25.302Z |
| clairedefermat.com | 5 | 2026-07-16T21:53:25.580Z |
| getelevar.com | 4 | 2026-07-16T21:53:25.107Z |
| shop.app | 3 | 2026-07-16T21:53:22.672Z |
| merchant-center-analytics.goog | 3 | 2026-07-16T21:53:25.410Z |
| rechargecdn.com | 3 | 2026-07-16T21:53:27.509Z |
| joinground.com | 2 | 2026-07-16T21:53:22.673Z |
| agkn.com | 2 | 2026-07-16T21:53:25.359Z |
| postpilot.com | 2 | 2026-07-16T21:53:26.048Z |
| trkn.us | 2 | 2026-07-16T21:53:26.048Z |
| findation.com | 1 | 2026-07-16T21:53:22.671Z |
| onetrust.com | 1 | 2026-07-16T21:53:22.980Z |
| cloudflare.com | 1 | 2026-07-16T21:53:23.409Z |
| postie.com | 1 | 2026-07-16T21:53:25.107Z |
| pointmediatracker.com | 1 | 2026-07-16T21:53:25.153Z |
| getletterpress.com | 1 | 2026-07-16T21:53:25.358Z |
| amazonaws.com | 1 | 2026-07-16T21:53:25.580Z |
| myshlf.us | 1 | 2026-07-16T21:53:25.580Z |
| tvspix.com | 1 | 2026-07-16T21:53:25.580Z |
| facebook.com | 1 | 2026-07-16T21:53:25.658Z |
| blisspointmedia.com | 1 | 2026-07-16T21:53:25.713Z |
| impactradius-event.com | 1 | 2026-07-16T21:53:25.845Z |
| 79ic8e.net | 1 | 2026-07-16T21:53:26.286Z |
| ojrq.net | 1 | 2026-07-16T21:53:26.544Z |
| tiktokw.us | 1 | 2026-07-16T21:53:27.438Z |
| cloudfront.net | 1 | 2026-07-16T21:53:31.618Z |