Docs/Using the #RMDebug Option

Advanced Tracking

Using the #RMDebug Option

Enable #RMDebug to show RetentionMaster runtime diagnostics, event flow, trigger activity, warnings, and send acknowledgements on a tracked page.

How to enable it

Add #RMDebug or #rmdebug to the end of a tracked page URL and reload or navigate to that URL. The runtime checks the hash case-insensitively, so either casing works.

Example: https://example.com/pricing#RMDebug. When enabled, RetentionMaster creates the rm-debug-box overlay and begins writing runtime messages into it.

What it shows

The debug box mirrors useful runtime events: database sends and acknowledgements, tracked events, activity batches, metadata, triggers, retention asset displays, warnings, and errors.

Typical lines include event action codes, trigger action codes, send method, acknowledgement status, blocked-device warnings, cooldown warnings, missing action configuration, and retention asset display activity.

Persistence across navigation

When #rmdebug is present, the runtime stores __rmdebug_persist__ in sessionStorage and can re-add the debug hash on later pages in the same tab. This helps debug multi-page journeys without manually appending the hash every time.

To turn persistence off, run sessionStorage.removeItem("__rmdebug_persist__"); in the console, remove the hash from the URL, and reload.

When to use #RMDebug

Use #RMDebug before Data Explorer when you need immediate browser-side feedback. Use Data Explorer afterward to confirm the event was actually persisted and inspect the stored payload.

For visual inspection, combine #RMDebug with the event visualizer console helper. The visualizer turns on rmdebug automatically and opens the RetentionMaster overlay when available.

Frequently Asked Questions

Is #RMDebug visible to all visitors?

Only visitors whose URL includes the debug hash see the debug overlay in that browser session. Do not share debug URLs with normal users.

Does #RMDebug change tracking behavior?

It is intended for diagnostics. It surfaces runtime messages and persistence but does not replace proper Data Explorer or Reporting validation.