Made by Rune Andersen @ Copenhagen, Denmark
Heap Analytics logo

Debug Heap Analytics in Chrome DevTools

To debug Heap Analytics in Chrome DevTools, install the free Event Watcher extension and open its panel: every Heap Analytics request is captured the moment it fires, decoded by a dedicated parser into named events, readable parameters, and consent signals, and cross-referenced against the visitor's consent state. Event Watcher has listed Heap under Analytics since v1.0.0, and flags any Heap event that fires without analytics consent.

Auto-capture analytics that retroactively tracks all user interactions without manual instrumentation.

Last updated:

Category
Analytics
Detected via
Network requests: Event Watcher matches the request URLs this platform sends
Consent category
Analytics / statistics consent: Event Watcher flags Heap activity that fires without it
Dedicated parser
Yes: requests are decoded into named events, parameters, and consent signals, not just raw URLs
Supported since
Event Watcher v1.0.0 (2026-02-20)
Vendor
heap.io
Show the URL patterns Event Watcher matches
  • heapanalytics.com
  • cdn.heapanalytics.com
  • track.heap.io
  • api.heap.io
  • c.us.heap-api.com
  • c.eu.heap-api.com
  • events.rm-api.com
  • assets.rm-api.com

What Heap traffic looks like

Heap's autocapture model means most of its traffic is machine-generated interaction events, batched and flushed, rather than hand-instrumented calls.

Endpoint pattern
SDK from cdn.heapanalytics.com; data to heapanalytics.com, c.us.heap-api.com, or c.eu.heap-api.com for EU-pinned accounts. Newer rm-api.com endpoints appear following Heap's merge into Contentsquare. The path describes the call: /track events, /identify user identity, /add_user_properties profile updates
Transport
POST with a JSON body; autocapture flushes clicks, form submissions, and page views in groups via a batched events array
Key parameters
app_id environment ID: Heap setups usually have separate dev and prod IDs, so it is the first sanity check · per event: the event name (custom from heap.track(), autocaptured interactions otherwise) · properties object · identity when the user is identified · timestamp · session_id and library/SDK version fields alongside

A typical autocapture batch, as Event Watcher captures it:

{
  "app_id": "1234567890",
  "events": [
    {
      "event": "click",
      "properties": { "target_text": "Add to cart", "path": "/produkter/sko" },
      "session_id": "17546400…",
      "identity": "user@example.dk"
    }
  ]
}

Debugging Heap with Event Watcher

  • Matches all the Heap endpoints, including the regional heap-api.com collectors and the rm-api.com hosts.
  • The parser classifies each request by endpoint type (Track, Identify, User Properties, Bulk Track) and unpacks batched events arrays into individual entries.
  • Payloads split into event properties, user properties, and an identity group (app_id, user and session IDs, SDK version).
  • Autocapture generates volume you didn't instrument, so the Grouped view pivoted by Event Name is the fastest way to see what Heap actually records on a page, and the Script Tree view confirms which script loaded the SDK.

Heap and consent

Analytics consent

The extension checks Heap against the analytics consent category. Autocapture makes Heap's consent posture unusually binary: the moment the SDK initializes, it starts capturing clicks and page views. There is no degraded or cookieless ping mode.

An ungated snippet means the first /track batch typically leaves while the banner is still open, marked pre-consent and counted as violations.

Gating Heap correctly means deferring heap.load() itself, not just custom heap.track() calls, and the stream shows directly whether that is the case.

Common debugging scenarios

  • Dev events polluting production. Read app_id on the parsed hits. A staging environment ID shipping on the live site is the most common Heap misconfiguration.
  • Users never identified. Trigger login and check for an /identify request with the expected identity value, then confirm later /track events carry it.
  • "Are these clicks even captured?" Click the element and watch the stream. The parsed batch shows the autocaptured event and its properties without waiting on Heap's UI.
  • Consent audit. Load the page fresh, leave the banner unanswered, and check whether Heap batches appear with the pre-consent badge.
  • Double SDK load after a tag migration. The Script Tree view shows whether both GTM and a hardcoded snippet load heap- scripts.

See Heap traffic on your own site

Free, no account, runs entirely inside Chrome DevTools.

Add to ChromeFree on the Chrome Web Store

Related guides

More analytics platforms