March 12, 2026

What is AH Debugger?

Why we built AH Debugger

Most analytics debuggers show you what requests fired. Some of the better ones also show you the dataLayer. That covers a lot, but it stops well short of what a real debugging session actually requires.

You want to test how your GTM tags respond to a specific event structure before deploying the new Data Layer push events. You want to audit Consent Mode without opening four different tabs and cross-referencing GTM’s preview mode. You want to inspect your analytics cookies without navigating to the DevTools Application panel. You want to take notes on findings and share them with a colleague without copy-pasting into a separate doc. You want the debugger to tell you automatically when a purchase event is missing transaction_id, without writing a single test yourself.

AH Debugger was built to cover all of it, and more. And it’s free, with no account required use it.

Activating the debugger

Once the extension is installed, click the AH Debugger icon in your Chrome toolbar or in the overlay floating at the bottom of your screen to open the popup. From there, toggle the debugger on for the current tab. That single toggle is what activates everything:

  • Console logs start appearing immediately in your browser console (F12 → Console): styled dataLayer push logs and analytics request logs in real time. You can deactivate the console logs in the extension settings reachable clicking on the extension icon and the setting icon top-right
  • The Overlay can be enabled directly from the popup, or from within the overlay itself once it’s open. It is a floating panel that sits on top of the page so you can monitor hits without keeping DevTools open
  • The DevTools panel becomes available. Open DevTools (F12), click the double arrow icon in the top-right, and select AH Debugger from the dropdown
  • The extension popup tabs (DataLayer, Consent Mode, Browser Storage, Vault, Mappings) are all active and updating as you browse

You don’t need to configure anything before you start. The console logs, overlay, and DevTools panel all work from the moment the debugger is toggled on.

How Activate AH Debugger

Console Logs

Before even opening the Overlay or DevTools, AH Debugger outputs two distinct types of styled console logs directly into your browser’s developer console. Open the console (F12 → Console tab or right-click → Inspect → Console tab ) on any page where the debugger is active and you’ll see them appear in real time as you browse.

These are two separate log types, each with its own purpose.

DataLayer Push Logs

Every time something calls dataLayer.push(), AH Debugger intercepts it at the source, before GTM processes it, and logs a collapsible group to the console. Each group shows:

  • A GTM logo badge in blue with the dataLayer name and container ID, so you immediately know which container the push belongs to when multiple GTM containers are present on the page
  • The event name (or “Custom Object” if the push has no event key)
  • Live Data: the raw JavaScript object as it exists in memory, fully interactive and expandable in the console
  • Stringified Data: a clean JSON snapshot of the same push

These logs also work on single-page applications. Navigating between pages without a full reload will not cause any pushes to be missed.

AH Debugger DataLayer Push console logs

Analytics Request Logs

When an analytics network request fires from GA4, Facebook, Adobe, Bing, TikTok, or any other supported platform, AH Debugger logs a second type of styled console log. Each entry shows:

  • A vendor logo badge color-coded by platform, so you can visually distinguish a GA4 hit from a Facebook Pixel event at a glance
  • The event name and account ID extracted from the request
  • URL base and initiator: where the request is going and what triggered it
  • URL Parameters: the formatted query string payload
  • PostData: the POST body if present, with GA4 batched events broken into individual hits so you can inspect each one separately

Errors stand out clearly: requests returning HTTP 4xx or 5xx get a red badge with the status code.

Both log types can be toggled independently in the extension settings, so you can enable only what you need without cluttering your console.

AH Debugger analytics request console logs

Console Overlay

The Overlay is a floating panel that sits on top of any web page and gives you a live feed of what’s being tracked, without opening DevTools. Toggle it on from the extension popup and it stays visible as you navigate.

  • Live requests feed:Every analytics hit appears instantly, labeled by vendor with color-coded icons. Errors appear highlighted in red so nothing slips by. The feed shows the last 50 events with time-ago timestamps and auto-scrolls as new events come in.
  • DataLayer feed:Switch tabs inside the overlay to see every dataLayer push in real time, with the GTM container ID, the dataLayer name, and an expandable JSON preview with syntax highlighting. You can copy any push to clipboard in one click.
  • DL Push Event filtering:Hide specific event names you don’t care about (like gtm.scroll or gtm.dom) so the feed only shows what matters. Manage excluded events from the overlay’s built-in exclusion panel.

You can drag the overlay anywhere on the page, minimize it to a compact pill, or hide it entirely and reopen it from the popup without losing your session.

AH Debugger overlay live requests feed
AH Debugger overlay DataLayer feed

DevTools Panel

Open the DevTools panel by right-clicking any page, selecting Inspect, clicking the double arrow icon (top right of DevTools), and choosing AH Debugger from the dropdown. This is where deep debugging happens.

  • Full request table:Every intercepted analytics request is listed with vendor, event name, timestamp, status, and error indicators. Paginated at 100 requests per page to keep things fast.
  • Grouped and flattened views:Toggle between a grouped view (requests organized by event name) and a flat chronological list, depending on what you’re investigating.
  • Global search:Filter every request, across all vendors and all collected data, by any parameter name or value. Looking for where transaction_id is missing? Search for it. Need to find every request where items are present? One search.
  • Per-vendor filtering:Show only GA4, only Facebook, only Adobe, or any combination. Useful when a page fires dozens of requests across multiple platforms and you need to focus.
  • Full request inspection:Expand any request to see its complete URL, all query parameters, POST body, and any error details. Batch requests are broken apart so you can inspect each hit individually.
  • Built-in Checks:The panel runs automated validation on your collected session data and surfaces issues directly in the interface. See the Built-in Checks section below for details.
AH Debugger DevTools panel

DataLayer Viewer and Simulator

Access the DataLayer tab from the extension popup. This panel connects directly to your GTM containers on the page.

  • Automatic container detection:AH Debugger finds all GTM containers on the page and maps them to their associated dataLayers. If you use multiple containers or a non-standard dataLayer name, it handles that too.
  • Real-time push capture:Every dataLayer.push() is intercepted and logged with a timestamp and push count, so you can see the exact sequence of events as they happen.
  • Three view modes:Switch between Raw (original structure), Flattened (key-value pairs, easier to scan), and Formatted (enhanced display) to match how you prefer to read the data.
  • DataLayer Simulator:Push synthetic events directly to the dataLayer without touching your codebase. This lets you test how your tags respond to specific event structures before deploying any code. Essential for QA workflows.
  • Search across pushes:Filter pushes by any key or value.
AH Debugger DataLayer Viewer
AH Debugger DataLayer Simulator

For any implementation using Consent Mode, the Consent Mode tab in the popup gives you a dedicated audit view.

  • Google Consent Mode:See the current state of all detected consent types: analytics_storage, ad_storage, ad_user_data, ad_personalization, functionality_storage, personalization_storage, security_storage. View the full consent command history, all the DataLayer push that influenced the Consent Mode, and GTM container configuration.
  • Cross-domain tracking:Verify cross-domain measurement is set up correctly.
  • Bing UET consent:Monitor Bing’s consent state independently.
  • Shopify consent:Purpose-built detection for Shopify’s consent framework used in e-commerce storefronts.

All consent data refreshes on demand, so you can re-check after user interactions like accepting a consent banner.

AH Debugger Consent Mode Checker

Browser Storage Manager

The Browser Storage tab gives you a full read-write interface for everything stored in the browser, without needing to navigate the DevTools Application panel.

  • Storage types:Inspect and manage Cookies, LocalStorage, and SessionStorage all in one place.
  • Add, edit, and delete:Create new items, edit values inline, delete individual entries, or wipe an entire storage type in one click.
  • Search and filter:Search across all stored items by key or value, and filter by storage type. Item counts are shown per type so you know what you’re dealing with before digging in.
  • Base64 decoding:Toggle automatic Base64 decoding for cookie values. Many analytics platforms and consent tools encode cookie data in Base64, and this makes reading those values instant.
  • Clear All: Permanently deletes all cookies, localStorage, and sessionStorage for every origin on the page, including iframes. Cannot be undone.
  • Clear All + Refresh: Clears all storage and immediately reloads the page. Without this, testing a clean state (like resurfacing a cookie consent banner) requires manually deleting everything from the browser and then reloading. This does both in one click.
AH Debugger Browser Storage Manager

Vault

The Vault is a persistent notes system built into the extension for storing findings as you debug.

  • Site-organized notes:Notes are grouped by website hostname. Add a website once and all your notes for that domain stay together.
  • Per-page notes:Within each site, notes can be tied to a specific page URL so you always know where a finding came from.
  • Tags and full notes:Add quick one-line notes or structured notes with a title, body, URL reference, and tags for easy retrieval later.
  • Two browsing views:Browse by Page (hierarchical view per site) or All Notes (flat list with page references).
  • Import and export:Export your entire vault as a JSON backup and import it on another machine or share it with a colleague. Useful for handing off a debugging session or onboarding a team member to an existing implementation audit.
  • Full control:Create, edit, and delete notes and sites at any time.

No data ever leaves your browser. The Vault lives entirely in your extension/browser storage. This means, that if you use a shared browser, you can collaboratively contribute to the Vault.

AH Debugger Vault

Custom Mappings

Analytics platforms use parameter names that don’t always match what your team calls things internally. The Mappings tab lets you define custom aliases.

  • Multi-vendor support:Create mapping sets for Adobe Web SDK, Adobe Launch, GA4, Google Ads, Facebook, Bing Ads and more.
  • Site-specific configurations:Different mappings for different websites, so your production setup and your staging setup can have different display rules.
  • Import and export:Share mapping configurations across your team as JSON files.
AH Debugger Custom Mappings

Built-in Checks

AH Debugger automatically validates the requests collected during your browsing session and reports any issues in the DevTools panel. No setup required. They run on every session.

Current built-in checks include:

  • Consent Mode signal presence:Verifies the gcs parameter exists on GA4 hits
  • Measurement ID format:Validates the tid parameter follows the G- prefix format
  • Ecommerce items array:Flags ecommerce events (add_to_cart, purchase, view_item, etc.) that are missing a populated items array
  • Purchase event completeness:Checks that purchase events include transaction_id, value, and currency

Results are shown with pass/fail status and severity levels (error vs warning). We are actively expanding the built-in check library based on user feedback.

AH Debugger built-in checks results

Platform coverage

AH Debugger intercepts and parses requests from all major analytics and advertising platforms:

PlatformWhat’s captured
Google Analytics 4All hits, event parameters, ecommerce data, consent signals
Google Tag ManagerDataLayer pushes, container configuration, consent commands
Google AdsConversion and remarketing tags
Facebook / MetaPixel events and custom data
Bing / Microsoft UETUET events and consent state
Adobe Web SDKXDM events
Pinterest TagEvents and custom data

Ready to get started? Read How to install and use AH Debugger →

Frequently Asked Questions

Is AH Debugger free?
Yes. AH Debugger is a free Chrome extension. Install it from the Chrome Web Store at no cost.
Does AH Debugger collect or store my data?
No. AH Debugger never collects, stores, or transmits your analytics data. All data stays entirely within your local browser. The Vault, validation results, and all other stored information live in your browser/extension's storage. If you share your browser with more people, all can contribute to the same Vault.
Which analytics and advertising platforms does AH Debugger support?
AH Debugger intercepts and parses requests from Google Analytics 4, Google Tag Manager, Google Ads, Facebook / Meta Pixel, Bing / Microsoft UET, Adobe Web SDK, Pinterest Tag, TikTok, and more
Does AH Debugger work on Single Page Applications (SPAs)?
Yes. AH Debugger re-initializes its dataLayer observer on pushState, hashchange, and load events, so no dataLayer pushes are missed during client-side navigation in SPAs.
What is the DataLayer Simulator and when should I use it?
The DataLayer Simulator lets you push synthetic events directly to the dataLayer from the extension popup, without modifying your codebase. Use it to test how your GTM tags respond to a specific dataLayer event structure before any code is deployed. Useful for QA and development workflows.
Powered by beluacode Logo