{"run_id":"8736a833","url":"https://sfchronicle.com","started_at":"2026-03-31T16:47:49.479859+00:00","overall":"FAIL","fail_count":3,"pass_count":0,"cmp":"Unknown / Not detected","analysis_mode":"ccpa","error_count":0,"warn_count":4,"entries":[{"ts":"2026-03-31T16:47:49.479859+00:00","elapsed":0.0,"level":"STEP","session":"MAIN","msg":"Run 8736a833 started","detail":{"url":"https://sfchronicle.com"}},{"ts":"2026-03-31T16:47:49.479980+00:00","elapsed":0.0,"level":"INFO","session":"MAIN","msg":"Detecting probe server location","detail":null},{"ts":"2026-03-31T16:47:49.648615+00:00","elapsed":0.17,"level":"INFO","session":"MAIN","msg":"Probe location","detail":{"ip":"52.52.202.228","city":"Santa Clara","region":"California","country":"United States","country_code":"US","org":"Amazon.com, Inc.","latitude":37.3924,"longitude":-121.9623}},{"ts":"2026-03-31T16:47:49.648778+00:00","elapsed":0.17,"level":"STEP","session":"MAIN","msg":"Starting analysis of https://sfchronicle.com","detail":{"mode":"CCPA"}},{"ts":"2026-03-31T16:47:51.270312+00:00","elapsed":1.79,"level":"INFO","session":"MAIN","msg":"Chromium launched","detail":{"headless":true}},{"ts":"2026-03-31T16:47:51.596212+00:00","elapsed":2.12,"level":"INFO","session":"PREFLIGHT","msg":"Navigating to https://sfchronicle.com","detail":null},{"ts":"2026-03-31T16:48:00.133001+00:00","elapsed":10.65,"level":"WARN","session":"PREFLIGHT","msg":"Network did not reach idle state — proceeding after load event. Normal for sites with persistent connections (websockets, polling).","detail":null},{"ts":"2026-03-31T16:48:00.153776+00:00","elapsed":10.67,"level":"STEP","session":"A","msg":"Session A start (CCPA baseline — no banner interaction)","detail":null},{"ts":"2026-03-31T16:48:00.193113+00:00","elapsed":10.71,"level":"INFO","session":"A","msg":"Navigating to https://sfchronicle.com","detail":null},{"ts":"2026-03-31T16:48:08.460326+00:00","elapsed":18.98,"level":"WARN","session":"A","msg":"Network did not reach idle state — proceeding after load event. Normal for sites with persistent connections (websockets, polling).","detail":null},{"ts":"2026-03-31T16:48:11.460215+00:00","elapsed":21.98,"level":"INFO","session":"A","msg":"Capturing CCPA baseline state","detail":null},{"ts":"2026-03-31T16:48:11.636138+00:00","elapsed":22.16,"level":"INFO","session":"A","msg":"CCPA baseline captured","detail":{"baseline_cookies":7,"baseline_ad_cookies":0,"baseline_tracking_storage":0,"baseline_tracker_globals":[],"baseline_unblocked_scripts":0,"baseline_capture_error":null}},{"ts":"2026-03-31T16:48:11.754144+00:00","elapsed":22.27,"level":"STEP","session":"A","msg":"Session A complete — CCPA baseline captured","detail":{"pre_consent_cookies":7,"pre_consent_ad_cookies":0,"pre_consent_tracking_storage":0,"pre_consent_tracker_globals":[],"pre_consent_unblocked_scripts":0,"pre_consent_capture_error":null,"baseline_cookies":7,"baseline_ad_cookies":0,"baseline_tracking_storage":0,"baseline_tracker_globals":[],"baseline_unblocked_scripts":0,"baseline_capture_error":null}},{"ts":"2026-03-31T16:48:11.754246+00:00","elapsed":22.27,"level":"STEP","session":"DNSSPI","msg":"Scanning for DNSSPI / LSPI opt-out links","detail":null},{"ts":"2026-03-31T16:48:11.813300+00:00","elapsed":22.33,"level":"INFO","session":"DNSSPI","msg":"Navigating to https://sfchronicle.com","detail":null},{"ts":"2026-03-31T16:48:20.077943+00:00","elapsed":30.6,"level":"WARN","session":"DNSSPI","msg":"Network did not reach idle state — proceeding after load event. Normal for sites with persistent connections (websockets, polling).","detail":null},{"ts":"2026-03-31T16:48:20.078015+00:00","elapsed":30.6,"level":"INFO","session":"DNSSPI","msg":"Waiting for CMP banner (up to 12s before scroll)","detail":null},{"ts":"2026-03-31T16:48:35.182635+00:00","elapsed":45.7,"level":"INFO","session":"DNSSPI","msg":"Link not found on homepage — trying privacy sub-pages","detail":null},{"ts":"2026-03-31T16:48:45.795201+00:00","elapsed":56.32,"level":"INFO","session":"DNSSPI","msg":"DNSSPI/LSPI scan complete","detail":{"dnsspi_found":false,"dnsspi_text":"","dnsspi_via_cmp":false,"lspi_found":false,"lspi_text":""}},{"ts":"2026-03-31T16:48:45.800084+00:00","elapsed":56.32,"level":"STEP","session":"D","msg":"Session D start (GPC signal injection)","detail":null},{"ts":"2026-03-31T16:48:45.822987+00:00","elapsed":56.34,"level":"INFO","session":"D","msg":"Navigating to https://sfchronicle.com","detail":null},{"ts":"2026-03-31T16:48:54.081810+00:00","elapsed":64.6,"level":"WARN","session":"D","msg":"Network did not reach idle state — proceeding after load event. Normal for sites with persistent connections (websockets, polling).","detail":null},{"ts":"2026-03-31T16:48:56.136958+00:00","elapsed":66.66,"level":"INFO","session":"D","msg":"GPC state captured","detail":{"gpc_cookies":7,"gpc_ad_cookies":0,"gpc_tracking_storage":0,"gpc_tracker_globals":[],"gpc_unblocked_scripts":0,"gpc_capture_error":null}},{"ts":"2026-03-31T16:48:56.138504+00:00","elapsed":66.66,"level":"INFO","session":"D","msg":"Privacy strings probed","detail":{"us_privacy":null,"gpp":null}},{"ts":"2026-03-31T16:48:56.283889+00:00","elapsed":66.8,"level":"STEP","session":"D","msg":"Session D complete","detail":{"gpc_cookies":7,"gpc_ad_cookies":0,"gpc_tracking_storage":0,"gpc_tracker_globals":[],"gpc_unblocked_scripts":0,"gpc_capture_error":null}},{"ts":"2026-03-31T16:48:56.283970+00:00","elapsed":66.8,"level":"STEP","session":"E","msg":"Session E start (opt-out flow)","detail":null},{"ts":"2026-03-31T16:48:56.284000+00:00","elapsed":66.8,"level":"INFO","session":"E","msg":"Session E skipped — no DNSSPI link found by DNSSPI scan","detail":null},{"ts":"2026-03-31T16:48:56.284016+00:00","elapsed":66.8,"level":"STEP","session":"E","msg":"Session E complete","detail":{"opt_out_completed":false,"us_privacy_after":null}},{"ts":"2026-03-31T16:48:56.368491+00:00","elapsed":66.89,"level":"INFO","session":"MAIN","msg":"Browser closed","detail":null},{"ts":"2026-03-31T16:48:56.394525+00:00","elapsed":66.92,"level":"STEP","session":"MAIN","msg":"Analysis complete","detail":{"error_count":0}},{"ts":"2026-03-31T16:48:56.394624+00:00","elapsed":66.92,"level":"STEP","session":"C1","msg":"Running Component 1 HAR analysis","detail":null},{"ts":"2026-03-31T16:48:56.416393+00:00","elapsed":66.94,"level":"INFO","session":"C1","msg":"HAR analysis complete — 0 FAIL item(s)","detail":{"total_requests":121,"phases":["pre_consent"],"phase_strategy":{"accept":"not_detected","reject":"not_detected"},"fail_items":[]}},{"ts":"2026-03-31T16:48:56.443068+00:00","elapsed":66.96,"level":"STEP","session":"CHECKS","msg":"Running CCPA/CPRA browser-state checks","detail":null},{"ts":"2026-03-31T16:48:56.443423+00:00","elapsed":66.96,"level":"INFO","session":"CHECKS","msg":"Browser checks complete — 3 FAIL item(s)","detail":{"fail_items":["DNS.1","GPC.1","OPT.1"],"mode":"ccpa"}}],"docx_filename":"consent_report_https___sfchronicle.com.docx"}