{"run_id":"f837861a","url":"https://sfchronicle.com","started_at":"2026-03-31T14:50:47.620845+00:00","overall":"FAIL","fail_count":3,"pass_count":0,"cmp":"Unknown / Not detected","analysis_mode":"ccpa","error_count":1,"warn_count":2,"entries":[{"ts":"2026-03-31T14:50:47.620845+00:00","elapsed":0.0,"level":"STEP","session":"MAIN","msg":"Run f837861a started","detail":{"url":"https://sfchronicle.com"}},{"ts":"2026-03-31T14:50:47.620929+00:00","elapsed":0.0,"level":"INFO","session":"MAIN","msg":"Detecting probe server location","detail":null},{"ts":"2026-03-31T14:50:47.818262+00:00","elapsed":0.2,"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-31T14:50:47.818408+00:00","elapsed":0.2,"level":"STEP","session":"MAIN","msg":"Starting analysis of https://sfchronicle.com","detail":{"mode":"CCPA"}},{"ts":"2026-03-31T14:50:48.727970+00:00","elapsed":1.11,"level":"INFO","session":"MAIN","msg":"Chromium launched","detail":{"headless":true}},{"ts":"2026-03-31T14:50:48.728067+00:00","elapsed":1.11,"level":"STEP","session":"A","msg":"Session A start (CCPA baseline — no banner interaction)","detail":null},{"ts":"2026-03-31T14:50:48.934254+00:00","elapsed":1.31,"level":"INFO","session":"A","msg":"Navigating to https://sfchronicle.com","detail":null},{"ts":"2026-03-31T14:51:04.502137+00:00","elapsed":16.88,"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-31T14:51:07.502745+00:00","elapsed":19.88,"level":"INFO","session":"A","msg":"Capturing CCPA baseline state","detail":null},{"ts":"2026-03-31T14:51:07.577313+00:00","elapsed":19.96,"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-31T14:51:07.663224+00:00","elapsed":20.04,"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-31T14:51:07.663328+00:00","elapsed":20.04,"level":"STEP","session":"DNSSPI","msg":"Scanning for DNSSPI / LSPI opt-out links","detail":null},{"ts":"2026-03-31T14:51:07.718932+00:00","elapsed":20.1,"level":"INFO","session":"DNSSPI","msg":"Navigating to https://sfchronicle.com","detail":null},{"ts":"2026-03-31T14:51:25.423561+00:00","elapsed":37.8,"level":"ERROR","session":"DNSSPI","msg":"DNSSPI scan failed: Page.goto: net::ERR_CONNECTION_REFUSED at https://sfchronicle.com/\nCall log:\n  - navigating to \"https://sfchronicle.com/\", waiting until \"load\"\n","detail":{"exception":"Page.goto: net::ERR_CONNECTION_REFUSED at https://sfchronicle.com/\nCall log:\n  - navigating to \"https://sfchronicle.com/\", waiting until \"load\"\n","type":"Error"}},{"ts":"2026-03-31T14:51:25.423650+00:00","elapsed":37.8,"level":"STEP","session":"D","msg":"Session D start (GPC signal injection)","detail":null},{"ts":"2026-03-31T14:51:25.453440+00:00","elapsed":37.83,"level":"INFO","session":"D","msg":"Navigating to https://sfchronicle.com","detail":null},{"ts":"2026-03-31T14:51:39.805608+00:00","elapsed":52.19,"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-31T14:51:41.825930+00:00","elapsed":54.21,"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-31T14:51:41.827593+00:00","elapsed":54.21,"level":"INFO","session":"D","msg":"Privacy strings probed","detail":{"us_privacy":null,"gpp":null}},{"ts":"2026-03-31T14:51:42.099757+00:00","elapsed":54.48,"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-31T14:51:42.099928+00:00","elapsed":54.48,"level":"STEP","session":"E","msg":"Session E start (opt-out flow)","detail":null},{"ts":"2026-03-31T14:51:42.099973+00:00","elapsed":54.48,"level":"INFO","session":"E","msg":"Session E skipped — no DNSSPI link found by DNSSPI scan","detail":null},{"ts":"2026-03-31T14:51:42.099994+00:00","elapsed":54.48,"level":"STEP","session":"E","msg":"Session E complete","detail":{"opt_out_completed":false,"us_privacy_after":null}},{"ts":"2026-03-31T14:51:42.152292+00:00","elapsed":54.53,"level":"INFO","session":"MAIN","msg":"Browser closed","detail":null},{"ts":"2026-03-31T14:51:42.171784+00:00","elapsed":54.55,"level":"STEP","session":"MAIN","msg":"Analysis complete","detail":{"error_count":1}},{"ts":"2026-03-31T14:51:42.171962+00:00","elapsed":54.55,"level":"STEP","session":"C1","msg":"Running Component 1 HAR analysis","detail":null},{"ts":"2026-03-31T14:51:42.198431+00:00","elapsed":54.58,"level":"INFO","session":"C1","msg":"HAR analysis complete — 0 FAIL item(s)","detail":{"total_requests":100,"phases":["pre_consent"],"phase_strategy":{"accept":"not_detected","reject":"not_detected"},"fail_items":[]}},{"ts":"2026-03-31T14:51:42.203738+00:00","elapsed":54.58,"level":"STEP","session":"CHECKS","msg":"Running CCPA/CPRA browser-state checks","detail":null},{"ts":"2026-03-31T14:51:42.204126+00:00","elapsed":54.58,"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"}