← All resources Tutorial

Setting up Measurebase: the complete guide

Everything from creating your account to reading your first real report — account, domain, script, power-ups, verification, your data, and alerting, in the order you'll actually do them.

📋 Before you start

Have these ready and this whole guide takes about fifteen minutes of actual clicking: access to your DNS provider, a GTM web container ID, a GTM server container with a manually-provisioned config string (GTM → Admin → Container Settings → Manually provision tagging server), and whoever installs snippets on your site if that isn't you.

01 · Creating your account

Account creation is deliberately light — you're not asked to pick a plan or configure anything up front. Everything below it is optional and can happen later.

Sign up

Two paths, both on the signup page: Continue with Google (a redirect to Google and back — since Google has already verified your email, you land signed in with nothing further to confirm), or an email account: first name, last name, work email, password (8 characters minimum), plus agreeing to the Terms of Service and Privacy Policy.

Verify your email (email signups only)

A verification link is sent immediately. Click it, or come back to the tab you signed up in and use "I've verified — continue" (with a Resend link option if it hasn't arrived). You can't reach the dashboard until this is done — Google sign-ups skip this step entirely.

Turn on two-factor authentication (optional, any time)

From Profile → Two-factor authentication: scan the QR code or enter the manual key in your authenticator app, confirm a 6-digit code, then save the one-time recovery codes somewhere safe. This only applies to email/password sign-in — a Google sign-in already carries Google's own 2FA.

Create your first account (workspace)

Once verified, you land on the Accounts screen. Click "Add account" and give it a name. Every new account starts on the Free plan automatically — there's nothing to choose at this point.

Choose a plan, whenever you're ready

PlanPriceRequests / moDomainsLog retentionSupport
FreeFree15,00013 daysCommunity
Solo€20/mo (€16/mo yearly)500,00017 daysEmail
Growth€35/mo (€28/mo yearly)1,000,000Up to 314 daysEmail
Scale€50/mo (€40/mo yearly)2,000,000Up to 521 daysPriority
Business€75/mo (€60/mo yearly)5,000,000Up to 1030 daysPriority + team members
EnterpriseCustomUnlimitedUnlimitedUnlimited99.9% SLA

All EU-hosted in Amsterdam, prices exclude VAT. Change plans any time from Billing → Change plan: upgrades apply immediately (prorated), while a downgrade or a monthly/yearly switch takes effect at the end of your current cycle.

Invite your team

From Settings → "+ Invite member", enter just an email address — no role picker. If they already have a Measurebase account they get access right away; otherwise they receive an invite email. There are only two roles: Owner (you, can't be removed) and Member. A pending invite shows a Pending badge with Resend and Cancel actions; active members get a Remove action.

🤝 Running an agency?

Agency accounts are a distinct account type that manage multiple Client accounts from one dashboard (Partner → Clients). You can invite a client by email or by their existing GTM Container ID, but they must approve the link before you get any access — and an agency never gets billing access to a client's own subscription.

02 · Setting up your first domain

Add the domain

From Domains → "+ New domain", fill in:

Domain caps follow your plan: 1 on Free and Solo, 3 on Growth, 5 on Scale, 10 on Business, custom on Enterprise.

Point your DNS

Open the new domain's Settings page. It shows a single A record to add — an A record keeps your tagging subdomain genuinely first-party, so Safari treats its cookies like any other first-party cookie instead of capping them the way it does for CNAME-cloaked subdomains.

Copy the Host and Value shown, add the record at your DNS provider, then click Verify DNS. SSL is issued automatically once DNS propagates — usually within minutes. The domain's status flips from Pending to Active the moment this succeeds.

🔎 Double-check it yourself

For a check that's independent of the dashboard, open https://mbase.yoursite.com (your actual tagging subdomain) directly in a browser tab — nothing needs to be installed on your site yet. If DNS has propagated and SSL has issued, it loads without a "can't find this site" or certificate warning. Either one shows up and it isn't ready yet — wait a few minutes and try again.

Running more than one setup

Need a second GTM property, or a separate setup for a subsidiary brand, on the same root domain? Add the domain again with a different subdomain — each one gets its own fully independent tagging server, up to your plan's domain cap.

03 · Installing the tracking script — and removing your old one

Generate your script

Open the domain and click Generate script. Enter your GTM web container ID (GTM-XXXXXXX) and choose a version:

Install it

Two snippets are generated. Paste the head snippet as high as possible inside <head>, and the body snippet immediately after the opening <body> tag — exactly where Google's own GTM instructions tell you to put it.

⚠️ Remove your old snippet

If you were previously running standard Google Tag Manager, you have an existing pair loading gtm.js directly from googletagmanager.com — a <script> block in <head> and a matching <noscript><iframe> in <body>. Delete both entirely. Running the old and new snippets side by side double-fires every tag and quietly doubles your numbers everywhere — the single most common self-inflicted data problem (see Troubleshooting).

Handing it to a developer

If someone else is doing the install, use Send instruction email right there in the Generate script panel — enter their address and they get both snippets plus setup and testing steps, no copy-pasting on your end.

Set up your server container

In GTM, open your server container and add a Google Tag Manager: Web Container client, with your web container ID listed under Allowed Container IDs. Skip this and your script loads fine in the browser, but every event is silently rejected server-side — the most common reason a fresh install shows zero data.

04 · Configuring power-ups — and deciding which to use

All seven live on a domain's Advanced tracking tab. All are optional, all reversible, and none are required to get basic tracking working.

Power-upWhat it doesConfiguration
Data EnrichmentAdds visitor geo (country/region/city/postal) and device (OS/browser/engine/bot/mobile) signals as request headers, readable via GTM's Request Header variableMaster toggle + 11 individual header toggles, all on by default
Cookie KeeperRe-issues recognized first-party marketing cookies on every request, keeping them alive past Safari ITP's 7-day cap on JS-set cookiesMaster toggle + per-cookie toggles across 11 vendor groups (~30 cookies), all on by default
Click ID RestorerRecovers ad-platform click IDs stripped by Safari/Brave from landing URLs, plus cookie-based recovery for othersGoogle/Microsoft backup parameter names (free text) + 3 independent toggles for Meta/TikTok/Pinterest
IP AnonymizationMasks every visitor's IP before it reaches your server container (IPv4 last octet zeroed, IPv6 keeps only its /48)Single toggle
IP FilterBlocks specific IPs or ranges — your own office, agency, or QA traffic — from being tracked at allSingle toggle + a free-text list of IPs/CIDR ranges
Enhanced Ad Blocker ProtectionRewrites ongoing requests into the same masked format as the Enhanced loader, so blocklists can't fingerprint fixed paths like GA4's /g/collectSingle toggle — needs the Enhanced loader already installed; regenerate & reinstall the script after switching this on or off
Auto Grant ConsentForces every hit's consent signal to read as fully granted, so you can verify tag firing without clicking through your own consent bannerSingle toggle — testing only, see below

⚠️ Enhanced Ad Blocker Protection needs an install step, both ways

Flipping this toggle doesn't update your site by itself — it only changes what the next "Generate script" produces. After changing the toggle, go back to Generate script, choose Enhanced again, and paste the new output over what's currently installed. Turning it on adds one extra <script> tag directly above your existing Enhanced snippet; turning it off means regenerating again without that tag. Skip this step in either direction and the toggle in your dashboard won't match what your site is actually doing.

Deciding which ones you need

🚫 Auto Grant Consent — testing only

Leaving this on shows an escalating warning right on its own page, and past 24 hours Measurebase's own monitoring opens a real alert on your account. Turn it off the moment you're done verifying tag firing — never leave it on in production.

05 · Verifying everything works

Don't consider setup finished until all five of these check out:

06 · Understanding your data

Measurebase shows the same underlying traffic through several different lenses. Here's what each one is actually telling you.

Domain statistics — the deep dive for one domain

Everything below lives on a single domain's own statistics page, behind one shared date-range picker:

Domain analytics — comparing across every domain

A separate, simpler page: one small volume chart per domain on the account, side by side, so you can spot which one needs attention at a glance. Click View on any card to jump into that domain's full statistics page for the deep dive above.

Request logs — the raw feed

Each row shows Time, Event/tag, Status, Response time, Region, and Client IP. The nine request types you'll see: Enhanced tracking script, Ad-block protected request, Google Ads (ad-block protected), GTM tracking script, Google tag, GA4, GTM preview mode, Service worker, and Other (bot/scanner noise — never billed, never counted as real traffic).

StatusMeaning
ActiveHealthy — any response code under 300.
PendingA rate-limited retry, or a confirmed-harmless GA4/gtag 400 — flagged "NO DATA LOST." Not a real problem.
ErrorA genuine failure — essentially everything else, including all 5xx responses.

Filter by 2xx / 4xx / 5xx, or export to CSV — the exportable date range is capped by your plan's log retention (3 / 7 / 14 / 21 / 30 days on Free / Solo / Growth / Scale / Business, custom on Enterprise).

Your account overview

Two request numbers sit side by side here on purpose, and they're not meant to match: a date-range Requests card (whatever range you pick, with a delta vs. the previous period) and a Requests (cycle) card — your usage so far this billing cycle against your plan's quota, which is the number that actually determines whether you get auto-upgraded or paused.

Billing usage

Billing shows that same cycle number again, this time bundled with your plan, price, billing dates, and invoices — the same fact, examined from a "what am I paying for" angle rather than a second, different number.

One thing that isn't a chart: foreign traffic

Unlike bot traffic, this never shows up as a number to read anywhere — it's a monitoring check that opens an Alert the moment another Measurebase customer's domain shows up as a Referer on your account. Almost always a copy-pasted snippet somewhere, and worth investigating the moment it fires rather than tracking visually over time.

07 · Managing notifications & alerts

Five checks run automatically, continuously, across every domain and account:

CheckCatches
DNS driftYour tagging subdomain's DNS record no longer resolves to Measurebase — a registrar change, or a CDN put in front of it after go-live.
No dataA domain that's gone quiet longer than its configured threshold.
Elevated errorsA domain's error rate spiking well above its own normal baseline.
Foreign trafficAnother Measurebase customer's domain showing up as a Referer on your account.
QuotaAccount-wide, at 80% and again at 100% of your plan's request quota.

Set your no-data threshold

Per domain, on its Settings page under Monitoring: "Alert me if no data for" — anywhere from 1 to 168 hours (a full week), 24 hours by default. Raise it for a quiet B2B site where a slow weekend is normal; lower it if you want to know within the hour on a high-traffic property. New domains get a grace period before this check switches on.

Where you'll see an alert

Connecting Slack

Up to 3 channels or workspaces per account, connected from Settings → "Add to Slack" — an OAuth flow, no manual webhook pasting needed. Every connected channel receives every alert; there's no per-channel filtering by type or domain. A domain-specific alert names that domain in the message; an account-wide one like quota names the account instead.

Alerts resolve themselves

Once the underlying condition clears — DNS correct again, traffic resumed, usage back under the threshold — the alert closes on its own. There's no manual "resolve" button, only "acknowledge," which just quiets the bell.

08 · Infrastructure checklist: CDN, caching & CSP

Most setups need nothing beyond sections 2 and 3. A few infrastructure layers can interfere if you're already running them, though — worth a five-minute check the first time, especially if your own site sits behind a CDN or a strict CSP.

A CDN in front of your own site

If you proxy your whole domain through Cloudflare, Fastly, or similar, make sure your tagging subdomain's record isn't being intercepted, cached, or rewritten unless you've deliberately configured that. The safest default is to exclude the tagging subdomain from proxying entirely (a plain "DNS only" record) so traffic reaches Measurebase directly; if you do need it proxied, disable caching rules for that hostname specifically.

Caching

The loader script itself can be cached briefly without harm, but the actual collection requests — every real tracking hit — must always reach Measurebase live. Make sure no blanket "cache every request under this path" rule from your CDN or reverse proxy also catches your tagging traffic.

Content-Security-Policy

If your site sends a CSP header, its script-src and connect-src (and img-src, if a browser ever falls back to a pixel) need to allow your tagging subdomain. Because it's first-party — the same root domain as your site — a wildcard like *.yoursite.com already covers it in most policies, but a CSP scoped to an exact hostname will silently block the loader until you add the new one explicitly.

🛟 The safety net

If any of the above slips through unnoticed after go-live, that's exactly what the DNS drift and no-data checks in section 7 exist to catch. Don't rely on them instead of getting this right upfront, though — by the time either fires, you've already lost some data.

09 · Troubleshooting common problems

SymptomLikely cause & fix
Numbers look doubledYour old GTM snippet is still running alongside the new one. Go back to section 3 and remove it completely.
Attribution keeps resetting on Safari / iOSCheck Cookie Keeper is actually on for the specific vendor's cookie you care about — toggles are per-cookie, not one global switch.
A chunk of traffic seems to vanish, especially in Firefox/Safari/BraveAn ad blocker or privacy filter is likely catching your requests. Move to the Enhanced loader if you're still on Standard, then turn on Enhanced Ad Blocker Protection — remember to regenerate and reinstall the script afterward.
The request log is full of alarming-looking 400sCheck the Status badge, not just the response code — a Pending badge on a GA4/gtag request is marked "NO DATA LOST" and is a normal benign retry. Only Error rows mean something actually failed.
A domain won't leave PendingDNS hasn't propagated yet, or doesn't exactly match what's shown on the domain's Settings page. Re-check the Host/Value, wait a few minutes, then click Verify DNS again.
An unfamiliar domain shows up as a Referer in your logsThe foreign traffic check doing its job — someone reused your tracking snippet elsewhere. Worth tracking down and fixing at the source.
Tracking stops and a banner says it's pausedYou've hit your plan's request quota for this cycle. Check Billing — upgrade, wait for the next cycle, or turn on auto-upgrade so this doesn't happen unnoticed again.
Auto Grant Consent was left on longer than intendedTurn it off from Advanced tracking right away. Past 24 hours, expect (and don't worry about) the alert Measurebase already opened about it.

Quick-start checklist

The whole guide above, condensed to one pass.

Continue reading

Ready to move your tagging to Europe?

Start free, no credit card required. Live in about 15 minutes.

Start free