Over 253x 5-star
reviews

GA4 you can actually make decisions with.

make decisions with

Most GA4 properties were migrated in a hurry and never revisited. We rebuild the measurement underneath: clean events, conversions that match your sales system, consent handled properly, history kept in BigQuery, and a small set of reports your team reads on a Monday morning. It is the layer every decision about paid search, paid social and organic search quietly depends on.

Book your free
strategic call

Tell us a little about your brand and we'll be in touch within 24 hours to lock in a time.

Reply in less than 24h
We read every single request
We are specialists, not generalists
1:1 w/ Senior Executive
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
750+ brands
Analyst desk at dusk with a line chart on screen and an annotated tracking plan

THE FOUR LAYERS

Four layers, built bottom-up.

bottom-up

Almost every GA4 question we are asked turns out to live one layer below where it was noticed: the report is not wrong, the events feeding it are. So we work from collection upward and never model on data we have not validated against a system that takes payments.

Measurement plan

Measurement plan

Implementation & QA

Implementation & QA

BigQuery & retention

BigQuery & retention

Reporting & activation

Reporting & activation

Decide what matters before touching a tag.

A property full of automatically collected events tells you what people clicked, not whether the business is working. We start with a written measurement plan: the questions the marketing team, the sales team and the owner each need answered, the decisions those answers change, and the smallest set of events and parameters that supports them.

That plan names every event, its parameters, its data type, where it fires, which platform it is forwarded to, and who owns it. It also names what we are deliberately not tracking, because an event nobody uses still costs you cardinality, review time and confusion. Naming is boring and decisive: consistent, lower-case, verb-based event names keep the property readable two years and three agencies from now.

The plan is signed off by marketing, sales and finance before implementation, so the definitions arrive with the data rather than being argued about after it.

  • Business questions written down before events are designed
  • Event and parameter dictionary with owners and data types
  • Deliberate exclusions, so the property stays readable
  • Naming convention applied across web, app and server

1

written plan, signed off before implementation

Events that survive the next deployment.

Implementation is where most properties quietly break. We build the tags in a governed container, use a data layer rather than fragile CSS selectors, deduplicate the events that count the same thing twice, and separate revenue events from micro-conversions so nothing important shares a name with a scroll.

Critical conversions move server-side where the browser is unreliable. Google's own documentation is plain about the trade: in a server-side setup the client only has to generate one request per event, which improves website performance while the vendor calls happen in your own container. Consent is implemented properly rather than bolted on, and the difference is measurable: Google reports that consented users are typically 2-5x more likely to convert than unconsented users, so a broken consent signal distorts far more than the raw count.

Then we test. Every event is verified in debug view, in the real interface, on mobile, and against the CRM or billing record, before anyone builds a report on it.

  • Data-layer implementation in a governed container
  • Duplicates removed, revenue separated from micro-events
  • Server-side collection where the browser cannot be trusted
  • Consent mode implemented and verified, not assumed
  • Every event QA'd against a system that takes payments

2-5x

more likely to convert: consented vs unconsented users

1

client request per event with server-side collection

Keep the history the interface throws away.

The single most expensive GA4 default is retention. On standard properties, user and event data is kept for at most 14 months — and the default option is shorter still. Any seasonal comparison beyond that window simply is not there, and no amount of reporting skill recovers it.

The fix is the BigQuery export, switched on early and monitored. Google documents the limits honestly: the daily export is capped at one million events and is paused if a property consistently exceeds it, while the streaming export has no event limit. We size the export accordingly, alert on failures, and model the raw tables into a few clean views so analysts are not rewriting the same joins every month.

Raw data also removes the interface's sampling and cardinality ceilings, which is what makes cohort, lifetime-value and multi-touch work possible at all. It costs little at mid-market volumes, and it is unrecoverable if you start it late.

  • BigQuery export enabled, sized and alerted on
  • Retention set to the maximum your property allows
  • Raw tables modelled into a few documented views
  • Cohort, lifetime-value and channel analysis on unsampled data

14 months

maximum standard GA4 data retention

1M

event cap on the daily BigQuery export

A few views, each aimed at a decision.

A property nobody opens is a cost. We build a small number of reports on purpose: an executive view of demand, cost and outcomes against plan; a channel view the marketing team works from weekly; and a diagnostic layer for whoever is chasing a cause. Alerting covers the failures that stay silent otherwise — a tag removed on deploy, spend running with no conversions, a feed that stopped.

Activation is the half most GA4 projects skip. Audiences and conversions go back into the ad platforms so bidding optimises toward the outcomes you care about instead of raw form fills, and modelled data is used with its limits stated — Google's own behavioural modelling for consent mode estimates the behaviour of users who decline cookies, which is useful for trends and wrong to reconcile to the cent.

Each month you get a written review: what moved, what we changed, what we learned, what we recommend next, and how confident we are.

  • Executive, channel and diagnostic views, kept few
  • Alerting on broken tags and spend without conversions
  • Audiences and conversions pushed back to the ad platforms
  • Monthly written review that ends in recommendations

3

core reporting views instead of fifteen nobody trusts

Validated

Every conversion reconciled against your CRM or billing system

100%

You own the property, container, cloud project and documentation

Weekly

Working session with the people doing the work

0

Long-term lock-ins

We made the difference for those brands

Healthcare & regulated services

Beauty, personal care & wellness

Home essentials, appliances, kitchen & pet

Consumer tech and platforms

Healthcare & regulated services

B2B software, fintech, insurance

Retail & commerce

Retail & commerce

Home essentials, appliances, kitchen & pet

Healthcare & regulated services

Creative, content, arts & culture

Travel & mobility

B2B software, fintech, insurance

Food & beverage

Retail & commerce

Healthcare & regulated services

Food & beverage

Healthcare & regulated services

B2B software, fintech, insurance

Food & beverage

Retail & commerce

B2B software, fintech, insurance

Consumer tech and platforms

Creative, content, arts & culture

Healthcare & regulated services

Creative, content, arts & culture

Apparel and lifestyle

Home essentials, appliances, kitchen & pet

B2B software, fintech, insurance

Home essentials, appliances, kitchen & pet

01 — The challenge

The property is collecting. Nobody trusts it.

The migration was done under deadline. Events fire twice, a form view counts as a lead, the ad platforms and the sales system disagree by a wide margin, and last year's data has quietly aged out of the interface. So the team makes budget decisions on instinct and calls it experience.

“We have the data. We just do not believe any of it.”

Two defaults do most of the damage. Standard properties keep event and user data for 14 months at most, so seasonal comparison disappears unless the BigQuery export was switched on in time. And a half-implemented consent signal skews everything downstream, because consented users convert 2-5x more often than unconsented ones. Neither is a reporting problem. Both are fixable in weeks.

02 — Our approach

Plan it, rebuild it, keep the history, then report.

We start with a written measurement plan: the questions the business needs answered and the smallest set of events that answers them, with owners, parameters and naming agreed by marketing, sales and finance. Then we rebuild collection in a governed container on a proper data layer, remove duplicates, separate revenue events from micro-events, move critical conversions server-side where the browser is unreliable, and implement consent so measurement survives privacy tooling. Every event is verified in debug view, on mobile and against your CRM or billing record before a single report is built. We enable and monitor the BigQuery export so history outlives the interface's retention window, model the raw tables into a few documented views, and then build three reports aimed at real decisions plus alerting on silent failures. Audiences and conversions are pushed back to the ad platforms so bidding learns from outcomes. You own the property, the container, the warehouse and the documentation throughout.

03 — What we did

Four phases, one number the room believes.

Audit, rebuild, warehouse and activation run in sequence with a weekly working session and a written monthly review.

Weeks 1-2 / Audit

Find what is actually being collected

Every tag, event, conversion and integration inventoried, duplicates and misfires identified, consent and retention settings checked, gaps priced.

Tag and event audit against a source of truth

Weeks 2-5 / Rebuild

Rebuild collection on a data layer

Measurement plan signed off, events rebuilt in a governed container, critical conversions moved server-side, consent implemented and verified.

Event schema written before implementation

Weeks 4-7 / Warehouse and reports

Keep the history, build few views

BigQuery export enabled and monitored, raw tables modelled, three reporting views built with alerting on broken tags and dead spend.

Reporting built around decisions

Ongoing / Activation

Feed the outcomes back into bidding

Audiences and conversions pushed to the ad platforms, modelled data used with its limits stated, and a monthly review that ends in recommendations.

Monthly review turning data into decisions

WHAT YOU GET

Deliverables you keep.

you keep

Everything below is built in your own Google accounts and cloud project, documented as we go, and yours whether we keep working together or not.

GA4 audit and remediation plan icon

GA4 audit and remediation plan

Every event, conversion, integration and setting reviewed, with the problems ranked by what they cost you in decisions.

Measurement plan and event dictionary icon

Measurement plan and event dictionary

One written definition per event and parameter, with owners, naming and the questions each one exists to answer.

Conversion and consent implementation icon

Conversion and consent implementation

Revenue events rebuilt on a data layer, moved server-side where needed, with consent mode implemented and verified end to end.

BigQuery export and data model icon

BigQuery export and data model

Raw event history preserved beyond the retention window and modelled into a few documented views your analysts can use.

Reports, audiences and alerting icon

Reports, audiences and alerting

Executive, channel and diagnostic views, audiences pushed back to the ad platforms, and alerts on tags and spend that break quietly.

Documentation and team training icon

Documentation and team training

Written documentation plus working sessions, so the people who inherit the property can extend it without us.

HOW WE WORK

Operating standards, not promises.

Operating standards

Whiteboard showing a hand-drawn funnel of website events with a marker on the ledge
Data layer
Implementation built to survive your next site deployment
Server-side
Critical conversions collected where the browser is unreliable
Monthly
Written review of what moved, what changed and what is next
Named
Senior analysts and engineers on your account
Shape

B2B

Pipeline stages imported so bidding learns from qualified leads, not form fills.

Explore

Local

Calls, forms and bookings reconciled per location and per service line.

Explore

eCommerce

Full purchase tracking after returns and discounts, by product and cohort.

Explore

Built on trust. Proven by results.

We partner with SMBs and Fortune 500 companies to deliver more than reach — we bring clarity, execution, and measurable outcomes. Every successful partnership starts with a strong culture fit and a shared drive to grow.

Over 253x 5-star
reviews
TikTokGoogle AdsShopifyWebflowSEMrushMeta

CASE STUDIES

Industry leaders we measure today

we measure today

Discover our work
Discover our work

Case studies

Video Ads

Static Ads

Santoy Calgary Painters — SEO and local search case study background image

Calgary, Alberta, Canada

Home services & trades

Santoy Calgary Painters

Across twelve matched months, a Calgary painting contractor grew all-channel sessions from 841 to 1,229 and profile direction requests from 473 to 571.

Peintres Montréal — SEO and audience growth case study background image

Montreal and Laval, Quebec, Canada

Home services & trades

Peintres Montréal

Across twelve matched months, a Montreal and Laval painting contractor grew all-channel sessions from 529 to 2,862 and new users from 472 to 1,823, with a two-month spike accounting for part of the gain.

Peinture Marcil — SEO and local search case study background image

Rive-Nord, Montreal, Quebec, Canada

Home services & trades

Peinture Marcil

A Rive-Nord commercial and industrial painting contractor went from no measurable search presence to 2,176 all-channel sessions and 55 organic clicks in its first eight months, with profile website clicks up 72%.

https://s3.amazonaws.com/webflow-prod-assets/69dce281d3b49704d8c8cdd0/6a78b886157ed9bc2f507c28_out2.mp4

Wearables - Health Tech

InBeat OURA SOW001 D2 UGC Matthew 9x16 — video ad creative

https://s3.amazonaws.com/webflow-prod-assets/69dce281d3b49704d8c8cdd0/6a7889cfe1dedd519c829fc4_out.mp4

Wearables - Health Tech

Track your health more accurately with a sleek smart ring

https://s3.amazonaws.com/webflow-prod-assets/69dce281d3b49704d8c8cdd0/6a78b86e14801b4217b47458_out2.mp4

Wearables - Health Tech

Monitor your health effortlessly without changing your lifestyle

Unclassified

Access expert allergy treatment from anywhere in the country

Unclassified

Overcome food allergies with a proven tolerance program

Unclassified

Help your child build lasting tolerance to food allergies

FAQ

What teams ask us first.

What does a GA4 agency actually deliver?

Four things: a measurement plan that names what matters, collection you can trust, history that outlives the interface's retention window, and a handful of reports that end in decisions. In practice the first two carry the value, because clever analysis on duplicated events produces confident nonsense. A good engagement leaves you with a documented property, conversions that reconcile to your sales system, raw data in your own cloud project, and a team that can extend all of it without calling us.

Our GA4 numbers do not match the ad platforms. Which is right?

Neither on its own, and the gap is normal rather than a fault. Ad platforms count conversions they believe they influenced, each using its own attribution window and modelling, so the totals across platforms will always exceed reality — every platform claims the same sale. GA4 counts by its own rules and session logic. The sales system knows what closed but little about the touches before it. We use each for what it is good at, reconcile them on a schedule, and document the expected gap so it becomes a known quantity instead of a monthly surprise.

How long does GA4 keep our data, and what can we do about it?

On a standard property, Google keeps user and event data for a maximum of 14 months, and the shorter option is the default many properties are still running. That is the single most common irreversible loss we find. The answer is the BigQuery export, where the daily job is capped at a million events per day and the streaming export has no cap. Switch it on and your history accumulates in your own project, unsampled and permanent. It is inexpensive at mid-market volumes and the one decision that cannot be backdated, so we treat it as week-one work.

Do we need BigQuery, or is the GA4 interface enough?

The interface is fine for behavioural analysis and day-to-day reporting when it is configured well, and plenty of clients stay there for a while. You need the warehouse when revenue truth lives in a sales or billing system, when refunds and cancellations change the picture materially, when sales cycles run for months, when reports start hitting sampling or cardinality limits, or when you need history beyond the retention window. Because the export only collects from the day you enable it, we usually enable it immediately and build on it later — the cost of waiting is data you can never get back.

Is server-side tagging worth the extra setup?

It is, for critical conversions and for any site where measurement materially affects bidding. Google's documentation explains the mechanism: in a server-side setup the browser sends one request per event and your own container fans out the vendor calls, which moves work off the page and keeps collection under your control. The practical gains are more durable conversion data, less exposure to browser tracking prevention, and fewer third-party scripts competing with your page. It adds a cloud cost and a maintenance responsibility, so we scope it where the decisions justify it rather than by default.

How does consent mode affect what we see?

Substantially, which is why we implement it carefully rather than treating it as a banner setting. Google's own guidance notes that consented users are typically 2-5x more likely to convert than unconsented users, so a broken signal does not just remove a slice of data, it distorts the shape of what remains. Behavioural modelling fills part of the gap by estimating declined users' behaviour, and it is genuinely useful for trends — but it is an estimate, so we never reconcile modelled figures to the cent and we always report what was observed alongside what was modelled.

Can you fix a rushed migration without starting over?

Usually, yes, and that is the outcome we aim for. Most rushed migrations are structurally sound and simply carry a handful of expensive faults: duplicated events, conversions defined on page views, a consent banner that blocks the tag entirely, ad platform links pointing at the wrong property. We repair those in place, keep the historical data intact, and only recommend a fresh property when the event naming has become genuinely unrecoverable — which is rare. When a new property is the right call, we run both in parallel so you never lose continuity while the replacement builds up history.

Will this create more work for our team?

Less, in our experience. Most of the effort teams currently spend goes on reconciling exports and re-explaining why two reports disagree, and that work largely disappears once the definitions are agreed and the joins happen automatically. We also build fewer dashboards than clients expect, because three views people trust beat fifteen nobody opens, and every extra chart is a maintenance liability. What we do ask for is about an hour a week from someone who owns the numbers internally — measurement with no internal owner decays within a couple of quarters.

How do you charge for GA4 work?

The first engagement is a fixed-scope audit and rebuild — audit, remediation, measurement plan, BigQuery export and a baseline set of reports — priced up front so you approve a number rather than an open-ended retainer. Ongoing support is a monthly fee scoped to the reviews, testing and new tracking you want, and it can be paused when there is nothing to do. We do not price analytics as a percentage of media spend: the two are unrelated, and tying them creates exactly the wrong incentive.

Do you also run the marketing you measure?

We can, and many clients prefer it because the loop closes faster when the team reading the data is the team changing the campaigns. Our paid search, paid social and SEO teams work from the same property and definitions. It is equally fine to buy the measurement work alone while other agencies buy your media — we report on their performance honestly and share the methodology with them, because analytics only one agency can interpret is not much of an analytics setup.

Want a GA4 setup your team actually trusts?