
Google Analytics consultant for GA4 implementation and fixes
Hire a Google Analytics consultant and every GA4 number traces back to a written measurement plan. Waftr builds GA4 and Tag Manager from it, including migrations off Universal Analytics, Adobe, Matomo or gtag.js.
A Core Build runs 3 to 4 weeks, scoped from a Tracking Audit and quoted in writing. Compare the three Build tiers
5migration paths Waftr has delivered
Which GA4 migration path are you on?
Pick the setup you are leaving.
You are moving from
Not on this list: GA4 standard to GA4 360. That is a licence upgrade on the same property, and the limits that justify it are further down.
Universal Analytics to GA4
Universal Analytics stopped processing in July 2023, July 2024 on 360. What still has to move is the logic: goals, views and filters.
The path
- 1
List each UA goal, view filter and custom dimension that still appears in a report or a board deck.
- 2
Map each one to a GA4 event, key event or parameter in the plan, or drop it with a written reason.
- 3
Rebuild collection in Tag Manager from the data layer spec your developers push.
- 4
Verify in DebugView, publish, then mark key events and import them into Google Ads.
What usually breaks
- Goal types. GA4 has no destination or duration goals. A thank-you page goal becomes an event such as generate_lead, marked as a key event.
- Views. GA4 has no views. View filters become data filters, which act only on data collected after they are switched on.
- Category, action, label. These become event names and parameters, and a parameter appears in reports only once it is registered as a custom dimension.
Checked before the old tag comes off
- Each UA goal has a GA4 key event or a written reason it was dropped.
- Event data retention raised from the 2-month default to 14 months.
ScopeCore Build3 to 4 weeksSee what each tier covers
The other four GA4 migration paths, step by step
Hardcoded gtag.jsGoogle tag pasted into the site code
Hardcoded gtag.js to Google Tag Manager
With a Google tag pasted into page templates, each new event, consent rule or ad platform waits for a developer release.
The path
- 1
Inventory each gtag() call, tag ID and inline event in the templates.
- 2
Set up the consent platform and Consent Mode v2 defaults first, so they load before any tag.
- 3
Rebuild the same events in a GTM workspace, reading values from the data layer spec.
- 4
Remove the hardcoded snippet in the same release that publishes the container.
What usually breaks
- Double counting. If the old snippet stays live while GTM also loads GA4, page_view and key events count twice.
- Consent order. A hardcoded tag placed above the banner script fires before the visitor chooses.
- Ads conversions. Hardcoded Google Ads conversion snippets need their conversion ID and label rebuilt in GTM, or conversions stop recording.
Checked before the old tag comes off
- One page_view per page load in DebugView, sent by GTM only.
- No Google request before a consent choice in Tag Assistant.
ScopeCore Build3 to 4 weeksSee what each tier covers
Several GA4 propertiesOne business split across properties
Several GA4 properties consolidated into one
GA4 cannot merge properties or move history between them, so consolidation means one target property, re-tagged sites and the old properties kept as the archive.
The path
- 1
Choose the target property and agree one event naming scheme across sites.
- 2
Point each site's tags at the target property, with cross-domain measurement where journeys cross domains.
- 3
Recreate key events, custom dimensions, audiences and the Google Ads link in the target property.
- 4
Leave the old properties untouched as the archive for year-on-year history.
What usually breaks
- History. Year-on-year comparisons span two properties until the new one holds a full year of data.
- Naming. The same action named differently on two sites lands as two separate events.
- Limits. A standard property allows 50 event-scoped custom dimensions, and several sites' dimensions fill that quickly.
Checked before the old tag comes off
- A test visitor crossing domains keeps one session.
- Key event counts per site compared before the old tags come off.
ScopeEnterpriseScoped per projectSee what each tier covers
Adobe AnalyticseVars, props and report suites
Adobe Analytics to GA4
An eVar can persist across hits under rules Adobe applies after collection; a GA4 parameter belongs to one event unless you set it as a user property.
The path
- 1
Export the solution design: each eVar, prop, success event and report suite in use.
- 2
Map each to a GA4 event, parameter or user property, inside GA4's custom dimension limits.
- 3
Rebuild collection in GTM from the data layer spec, replacing the rules in Adobe's tag manager.
- 4
Compare both tools over the same days, then remove the Adobe tags.
What usually breaks
- Persistence. eVar expiry and allocation rules have no GA4 setting, so a value set once stops reaching later events.
- Visits and sessions. The two tools start and end sessions by different rules, so counts never match one to one.
- Processing rules. Classifications, processing rules and marketing channel rules do not carry over and need rebuilding in GTM or GA4 channel groups.
Checked before the old tag comes off
- Each eVar and prop in the solution design has a GA4 home or a drop reason.
- Daily totals compared across both tools before Adobe tags come off.
ScopeCore or Advanced3 to 4 weeks, or 5 to 8 with BigQuery or CRM importsSee what each tier covers
MatomoOften picked for privacy
Matomo to GA4
Teams often chose Matomo for privacy, so GA4 has to meet the same bar with a consent platform and Consent Mode v2.
The path
- 1
Record why Matomo was chosen, because the consent setup has to meet the same bar.
- 2
Set up the consent platform and Consent Mode v2 before any GA4 tag goes live.
- 3
Map Matomo goals, custom dimensions and events to the measurement plan.
- 4
Rebuild in GTM, compare goal and key event counts, then switch Matomo off.
What usually breaks
- Totals. Matomo can count visits without cookies. GA4 keeps far less when consent is denied, so totals drop at cut-over.
- History. GA4 cannot import Matomo's raw history, which stays in Matomo or an export.
- Events. Matomo's category, action and name triplets become GA4 event names and parameters.
Checked before the old tag comes off
- No GA4 request before a choice where consent is opt-in.
- Matomo data exported or archived before the server is shut down.
ScopeCore Build3 to 4 weeks; Advanced if raw data needs BigQuery exportSee what each tier covers
Wk 1signed off before any tag changes
What a Google Analytics consultant puts in a measurement plan
Google Analytics consulting at Waftr starts with one sheet. Each row ties a question your team asks to the GA4 event that answers it, its parameters, key event status and owner. Events that answer no row are not built.
| Row | Business question | GA4 event | Parameters | Key event | Owner | Proof or pitfall |
|---|---|---|---|---|---|---|
| 1 | Which channels bring qualified leads? | generate_lead | lead_source form_id | Yes | Demand generation | 53% → 38%direct leads · Enterprise SaaS |
| 2 | Where do visitors abandon the form, and do submits reach GA4? | form_start form_submit | form_id form_name | No | Web team | |
| 3 | Which CRM leads became customers? | close_convert_leadsent from the CRM | value currencymatched on client_id | Yes | Sales operations | 28-41%of CRM form leads with no GA4 client ID |
| 4 | What revenue did each campaign drive? | purchase | transaction_id value currency items | Yes | Ecommerce | PitfallA value sent without currency is not counted as revenue in GA4 |
| 5 | Which tags may fire before a visitor chooses? | No event: Consent Mode v2 defaults | analytics_storage ad_storage ad_user_data ad_personalization | n/a | Privacy lead | 100%NexTranslate: tags waiting for consent, verified by test |
Event names follow GA4's recommended events; form_start and form_submit come from enhanced measurement. Your plan keeps the names your reports already use where they are sound.
Consent goes in before Tag Manager is rebuilt. See how each consent state is tested in our Consent Mode v2 setup.
Who builds each row
Waftr writes the data layer spec; your developers push it, because the code is theirs. We check each value in GTM Preview and each event in DebugView before publishing.
What teams ask a Google Analytics consultant on the first call
Cost, migrations, timing, CRM data and ownership. For a first look at your public tags, run the free GA4 audit tool.
How much does a Google Analytics consultant cost?
Do you offer GA4 migration services?
How long does a GA4 implementation take?
Can you integrate GA4 with our CRM?
Do you implement GA4 through Google Tag Manager?
Should you hire a Google Analytics freelancer or a consultancy?
Who owns the GA4 property after the build?
GA4 standard or GA4 360: which do you need?
Most properties never reach a standard limit, and the measurement plan reads the same on either licence. Three limits push teams to GA4 360.
- 1M+events a day in the BigQuery daily export
- 14+months of event-level data needed in explorations
- Roll-upreporting across brands or regions in one property
Roll-up and sub-properties are Enterprise Build scope once the licence is in place. Limits as Google documents them; check Google's current documentation before you buy.
| Limit | GA4 standard | GA4 360 |
|---|---|---|
| Licence | Free | Paid, through Google or a reseller |
| Event data retention | 2 or 14 months | Up to 50 months |
| BigQuery daily export | Up to 1 million events a day | Billions of events a day, plus a fresh daily export |
| Custom dimensions, event scope | 50 | 125 |
| Audiences | 100 | 400 |
| Key events | 30 | 50 |
| Roll-up and sub-properties | Not available | Included |
| Service level agreements | None | Included |
3Build tiers, sized by what gets built
GA4 implementation services, scoped in three Build tiers
GA4 implementation services run as a Tracking Build. The tier follows from what has to be built and how many sites and properties it spans; the quote comes from the Audit findings.
- 1Core3 to 4 weeks
The web layer: property, container and consent.
- GA4 and GTM rebuild from the measurement plan
- Key events and Google Ads conversions
- Consent Mode v2 with your consent platform
- Enhanced conversions
FitsUniversal Analytics rebuilds, gtag.js to GTM, Matomo moves
- 2Advanced5 to 8 weeks
Core, plus the data that has to leave the browser.
- Everything in Core
- BigQuery export to your Google Cloud project
- CRM and offline conversion import
- Server-side tracking or Google Tag Gateway
FitsAdobe Analytics moves that add BigQuery or CRM imports
- 3EnterpriseScoped per project
Several properties held to one plan.
- Several properties, regions or brands
- GA4 360 roll-ups and sub-properties
- Governance across teams
FitsConsolidating properties across brands or regions
What sets the size of your quote
No hourly rate. After go-live, Google Analytics services continue inside Tracking Care. What moves a quote
GA4 expert team: certified in Google Analytics, Google Tag Manager and OneTrust · 13 years in digital analytics
