Skip to content

Monitor a website

Global monitoring watches every outbound request from the page to the vendors you configure — regardless of whether the tag was loaded by a tag manager, the CMS, or hard-coded HTML. One script, one token, any number of hostnames.

It can monitor:

  • Marketing and conversion pixels (Meta, Google Ads, TikTok, …)
  • Analytics and CDP events (GA4, Adobe Analytics, Segment, Tealium Collect)
  • Data layer events and any other outgoing HTTP request whose URL you know
  1. Create a property in the app with source type Website, and choose the system you deploy through. The script is the same everywhere — each flavour just auto-detects extra TMS context:

    System Auto-detected context
    Google Tag Manager container ID and version (from google_tag_manager)
    Adobe Launch property and build (from _satellite)
    Tealium iQ profile and version (from utag)
    Commanders Act account, container, environment (from tC)
    Global (any TMS / no TMS) none — works anywhere
  2. Add the hostnames you want to ingest events from. Hostnames seen in real traffic are also registered to the property automatically.

  3. Add vendors — search the catalog or create a custom vendor. Each vendor form has four fields that matter:

    • Domains — the vendor’s request URL to match, e.g. facebook.com/tr for Meta Pixel.
    • Excluded parameters — keys you don’t need monitored. Accepts regex between slashes: /^(data\.loader|data\.timing)\./ excludes everything starting with those prefixes.
    • Event mapping field — which payload key holds the event name. Combine fields with {{fieldA}}-{{fieldB}}, or extract with regex using regex::<expression>::<field> (e.g. regex::(?<=https:\/\/)[\w|-]*::url pulls the subdomain out of url).
    • Filters — only monitor matching requests, e.g. ev = orderSuccess. Also reduces event consumption.
  4. Open Manage → Installation guide and copy the snippet for your system.

Add a Custom HTML tag with the snippet from your installation guide, triggered on All Pages, then submit and publish the workspace. Prefer the GTM integration if you’d like Monita to install its template into your workspace for you (you still review and publish).

Section titled “Page hooks (consent, session, customer ID)”

Before the script loads, you can define hooks on window.__monita_settings to enrich every event. The get_consent hook depends on your consent management platform; pick yours.

<script>
window.__monita_settings = window.__monita_settings || {};
Object.assign(window.__monita_settings, {
get_consent: function () {
try { return window.OnetrustActiveGroups || null; } catch (e) { return null; }
},
get_session_id: function () {
return sessionStorage.getItem('sid');
},
get_customer_id: function () {
return getCookie('cust_id');
},
});
</script>

The property’s install dialog in the app generates this snippet with your CMP already selected. It works with the script you already have and can be added before or after the loader.

  • get_consent populates cn, feeding consent posture. Monita understands OneTrust group strings, Didomi vendor lists and state blobs, IAB TCF strings and simple yes/no values. Monita reads consent only from this hook. Without it every event arrives with no consent value, and the consent views say the signal is missing rather than reporting numbers.
  • get_session_id / get_customer_id join events into sessions and users across web, mobile and server-side sources.
  • get_event(vendorName, data) overrides event-name extraction in code when field mapping isn’t enough.
  • is_monita_allowed(payload) returns false to suppress monitoring for a given event.
  1. Visit your site (ad blockers off) and type __monita_settings in the browser console — if it’s defined, the script is loaded, and it reports the deployed script version.

  2. Open the Network tab, fire a monitored vendor, and filter for collect.monita.ai — you should see POST requests returning 204. Details: Verifying network requests.

  3. In the app, open Monitor → Realtime, select the property and press Live to watch payloads arrive within seconds (see the Realtime view), or open the property’s Visualisation view, where events arrive grouped by vendor and event within a minute or two.

  4. Need to force-refresh the script after a config change? Add ?monitarefresh=1 to your page URL and reload.

If any step fails, walk through Deployment troubleshooting.

Load one Monita script per page. Only the first Monita script on a page records vendor requests, so a second install (a different property’s script, or an older copy left in a tag manager container or plugin) can leave one property with missing or inconsistent vendor data.

Current scripts detect this. When more than one Monita install loads on the same pages, Monita opens a critical issue titled Monita is installed more than once on <property>, and emails your organization’s owners and admins. The issue lists the installs seen together, says which one is recording vendor requests, and links an example page. Remove the extra script or tag, then republish. The issue resolves itself once a full day passes without the conflict.