Ciphera Docs
PulseSwitching from Google Analytics

Switching from Google Analytics

Run both for a fortnight, learn which numbers mean what, then turn GA off — including why the two will never agree.

Moving to Pulse is one script tag and a domain. The work is not the install; it is knowing which numbers to trust while both are running, because GA4 and Pulse will disagree from the first day and most of the difference is explainable.

Warning

Your GA history stays in GA. Pulse has no import — not from GA4, not from a CSV, not from anywhere — so it starts counting the day you install it. If the old numbers matter to you, export what you need from GA before you close the account. Nothing here can bring it across later.

Run them side by side

  1. Add the Pulse tag without removing GA. See Framework guides, or Script installation for the tag itself. Two analytics scripts on one page is fine; neither knows about the other.
  2. Leave it a fortnight. A day is not enough to tell a real gap from a Tuesday.
  3. Compare like for like using the table below, not metric names — the names overlap more than the definitions do.
  4. Then remove GA, along with its consent banner if that banner was only there for GA.

Fourteen days is the useful minimum because both tools need a full weekly cycle, and because your first week will contain your own testing.

What maps to what

In GA4In PulseNot the same thing
Users / Active usersUnique visitorsGA4 remembers a browser with a cookie for up to two years. Pulse derives a key server-side that resets on your identity window, a calendar month by default
SessionsVisitsBoth end after 30 minutes of inactivity, so these line up better than anything else on this list
ViewsTotal pageviewsPulse counts a change of path. A link that only changes the query string or the # fragment is state on the same page, not a new view
Engagement rateBounce rate, invertedPulse's bounce is simply "one pageview in the visit". A reload ends the bounce
Average engagement timeVisit durationPulse's clock stops when the tab is hidden and after two minutes without input, so a tab left open all afternoon adds nothing
EventsCustom eventsPulse has no automatic enhanced measurement. Outbound clicks, downloads, scroll depth and 404s are automatic; everything else you send yourself
Traffic acquisitionSources — Referrers, Channels, CampaignsUTM tags work the same way
ConversionsGoals and FunnelsA Pulse goal is an event you have named as one. No value model, no attribution windows
Demographics, interestsNot collected, and not collectable without the profiling Pulse exists to avoid
Google Ads integrationIf your analytics feed Ads audiences, this is the one thing Pulse genuinely cannot replace

Why the totals differ, and which to believe

Expect Pulse to report more traffic than GA4, often substantially. That is not Pulse flattering you — it is GA4 undercounting for reasons you can check:

Consent. GA4 sets cookies, so in the EU it may only run after someone accepts a banner. Everyone who declines, or ignores it, is invisible to GA4 and visible to Pulse. On a European audience this is usually the single biggest gap, and it can be most of your traffic.

Blocking. Both scripts get blocked, but not equally: google-analytics.com is on every filter list ever written, and has been for fifteen years.

Identity. Over a long range GA4 will show fewer users than Pulse shows visitors, because a GA4 cookie recognises somebody for up to two years while a Pulse identity resets monthly by default. Over a single day they converge.

Two things push the other way:

Bots. Pulse filters automated traffic server-side before it reaches your charts, and reports what it excluded. GA4's filtering is lighter, so some of what it counted as people were not.

Single-page apps. If your app rewrites the query string as the user interacts, GA4 may count each rewrite as a view. Pulse does not. Pageviews can step down noticeably on a filter-heavy dashboard, and the lower number is the truer one.

Note

The number to compare first is visits against sessions. Both are defined the same way and both end after 30 minutes of inactivity, so a large gap there is about who is being counted rather than how. Start with visits, and only then look at visitors.

Turning GA off

Remove the GA tag, or its Tag Manager container, and delete the property when you are sure you have exported anything you want to keep.

If your consent banner existed only to make GA lawful, it can go with it. Pulse sets no cookies, stores no personal data and needs no consent for analytics — see Privacy and data collection for what that rests on. Check the rest of your site first: a banner covering an embedded map or a payment provider still has a job to do.

Warning

Leaving Google Tag Manager in place to load Pulse through it puts Google back in the critical path of every pageview, which is most of the reason to leave in the first place. Framework guides covers the trade-off.

On this page

On this page