Brandon Abelson

Service 05

Tracking & Attribution Numbers that survive a hard question.

Three platforms, one sale, three claims. The measurement that counts it once is built from the plumbing up: server-side tagging, GA4, conversion APIs and consent as one architecture, then incrementality tests that tell you what actually moved. We’ll build it together, so the number holds up whoever is asking.

Book a call What’s included

Chrome kept third-party cookies, and it didn’t matter. Safari and Firefox block them, consent is the law in most of the world, and browsers now eat a growing slice of your conversions before any dashboard sees them. Shopify retired the old thank-you-page scripts and half the tags that used to fire there quietly stopped carrying order data. Every platform fills the gap by modeling, and every model flatters the platform that built it. The reporting drifts further from the bank account every quarter, and nobody in the building can say by how much.

There are two halves to fixing it. The plumbing: tags that fire from a server you control, consent that’s actually honored downstream, conversion signals the ad platforms can bid on. And the discipline: a baseline checked for events, a control carried, two windows read, the caveat shipped with the number. Plenty of shops sell the first half. The second is what stops a wrong answer from reaching the person who signs off on the budget.

What’s included

Collect it, govern it, then prove something with it.

01

Tag architecture

Client-side and server-side containers built as one intentional architecture rather than a decade of tags nobody dares delete. Server-side is the standard for anyone spending real money on media now; the alternative is reporting with a hole in the bucket.

  • GTM web
  • GTM server-side
  • container audits
  • data layer design
  • tag governance
  • debugging & QA
02

Analytics that answers the next question

An event taxonomy designed before it’s implemented, so the question you’ll have in six months is already answerable. GA4 for the interface, BigQuery for the truth, and one definition of a conversion that nobody changes without writing down the date.

  • GA4
  • event taxonomy
  • ecommerce tracking
  • key events
  • BigQuery export
  • Looker dashboards
03

Ecommerce tracking on Shopify

Shopify rebuilt its checkout and retired the scripts everyone relied on: the GTM web container doesn’t run in checkout, the thank-you page no longer hands tags the order or the customer, and the Meta pixel stopped seeing purchases the way it did. Tracking there now runs through the Web Pixels API: a custom pixel for the browser events, a server-side relay for the Conversions API and GA4, the two deduplicated, consent honored through Shopify’s own privacy API. The same discipline on WooCommerce, where the plumbing is yours to build.

  • Shopify custom pixels
  • Web Pixels API
  • checkout extensibility
  • Shopify privacy / consent API
  • purchase deduplication
  • GA4 ecommerce events
  • WooCommerce tracking
04

Conversion APIs

Server-side signal to the ad platforms, deduplicated against the browser events, so the bidding sees what actually happened instead of the fraction a blocked pixel reported. This is where a lot of “Meta stopped working” turns out to be “Meta stopped seeing.”

  • Meta CAPI
  • Google Enhanced Conversions
  • TikTok Events API
  • deduplication
  • offline conversions
  • match-rate tuning
05

Consent, honored downstream

Consent Mode v2, a CMP configured per region, and the part that quietly fails after the banner goes live: making sure the consent state actually reaches the server before a tag fires. Server-side tagging changes where data is processed, not whether you needed permission.

  • Consent Mode v2
  • CMP implementation
  • EU / UK / US regimes
  • regional routing
  • consent mapping
  • audit & verification
06

Incrementality and mix

Geo holdouts and lift tests on the channels that carry the budget, a mix model for the allocation, and the two calibrated against each other, which is the only version of “attribution” a finance person should accept. Platform attribution stays as a diagnostic. Nobody grades their own homework.

  • geo holdouts
  • conversion lift
  • marketing mix modeling
  • cross-channel attribution
  • marketplace halo
  • control-group design
07

Measurement audits

What’s collected, what’s lost, what consent is doing, and which of your current reads would survive pushback. Run with a local-first audit tool built for exactly this, so your data never leaves the machine it was scanned on.

  • tracking audits
  • consent verification
  • data-quality checks
  • local-first scanning
  • annotated findings
How it works

Plumbing, then discipline, then proof.

  1. 01

    Build the plumbing right once

    Server-side container, consent wired through it, conversion APIs deduplicated, one event taxonomy. Documented so your team can read it, because measurement that only one person understands is a liability with a dashboard.

  2. 02

    Install the four rules

    Check the baseline window for events before any pre/post read. Always carry a control. Judge on two windows, and hold when they disagree. Ship the caveat with the number. These get written into how your team reports, not kept in my head.

  3. 03

    Prove what moved

    Holdouts on the channels that matter, a mix model for the big allocation, and the blended number opening every review with the platform dashboards underneath it as diagnostics. The read is designed before the test runs. A read designed afterward is a story.

Does your reporting survive a hard question?

An audit tells you what’s collected, what’s lost, what consent is actually doing, and which of your current reads would hold up if someone pushed back. Most companies find the consent banner broke half the tracking the week it went live.

Reference

Measurement, without the dashboard theater.

What Google Analytics and GA4 are and how to actually use them, why your organic keywords say "not provided" and what to do about it, what Google Tag Manager and UTM parameters do, how to read your own traffic, and what marketing analytics is once you stop letting each channel count the same sale. Written by the person who builds the tracking and then has to defend the number.

What Google Analytics and GA4 are

Google Analytics is Google's free analytics service: a tag on every page records what visitors do, and Google turns it into reports on where they came from, what they looked at, what they did, and whether they bought. GA4, Google Analytics 4, is the current version and the only one that still works. Universal Analytics, the version everyone learned on, stopped processing data on 1 July 2023, and Google deleted the historical data in 2024. If someone on your team is still quoting UA numbers, they're quoting a corpse.

GA4 runs on an event model: everything a visitor does, a page view, a scroll, a click, a purchase, is an event with parameters. That replaced the session-and-pageview model of Universal Analytics, which is why GA4 reports look wrong to anyone who learned the old version and why "GA4-based" describes tools, dashboards and integrations built on GA4's data model and its reporting and data APIs rather than on the dead one.

It's free. A standard GA4 property has no cost and generous limits for nearly any business. Google Analytics 360 is the paid enterprise tier, priced from roughly $50,000 a year, with higher data limits, unsampled exports and a service agreement; it's relevant to very large sites and to almost nobody reading this. The BigQuery export of raw events is free on standard properties too, inside BigQuery's own pricing, and it's where serious measurement work goes because the GA4 interface is built to be looked at, not to be trusted with a hard question.

What GA4 is for, precisely: understanding behavior on your own site and attributing it to sources. What it cannot do is see other people's sites, tell you a competitor's traffic, or prove that any channel caused a sale rather than merely showing up before it. People ask it to do all three. It does none of them.

GA4 tells you what happened on your site and where the visitor came from. It does not tell you what caused the sale. Nothing in the interface does.

How to use Google Analytics

Using Google Analytics is three decisions: install the tag, decide which actions count as conversions, and then read a small number of reports regularly instead of all of them occasionally. Most installations fail on the second decision, because nobody defined what a conversion was, so the tool counted everything and meant nothing.

Setup: create a GA4 property at analytics.google.com and add a web data stream. Install the Google tag it gives you, by pasting the gtag.js snippet into every page or, better, through Google Tag Manager so later changes don't need a developer and a sprint. Then mark the events that matter as key events, GA4's word for conversions: a purchase, a lead form, a sign-up, a call click. Shopify and WooCommerce send purchase events with revenue through native integrations; on a custom site the developer sends them, and you verify they fire before you believe a single report.

The reports that answer most questions:

  • Reports snapshot and Realtime: is data arriving at all. Check this first, every time, before an argument about the numbers.
  • Acquisition → Traffic acquisition: where sessions came from, grouped by channel (Organic Search, Paid Search, Direct, Referral, Organic Social, Email), with engagement and key events per channel. This is the report.
  • Engagement → Pages and screens: what's viewed and for how long. Add a landing-page view for where people enter.
  • Monetization: revenue, purchases and products on an ecommerce site.
  • Advertising: attribution across channels with a choice of models, each of which gives a different answer, which should tell you something about attribution.
  • Explore: funnels, paths, segments, cohorts; anything the standard reports don't do.

The quiz question still floating around from the old Google Analytics certification, "what is not a filter setting for data in views," is about Universal Analytics. UA properties had views, and each view could carry filters of the types Include, Exclude, Lowercase, Uppercase, Search and Replace, and Advanced. Anything outside that list, "Restore" or "Modify" in the usual phrasing, wasn't one. GA4 has no views and no view filters; the equivalent is data filters at the property level, limited to excluding internal and developer traffic. If a candidate answers that question confidently, they studied for a product that no longer exists.

Two habits make GA4 worth looking at. Define key events before launch and never change the definition without writing down the date, or every trend on every chart silently breaks. And link Search Console and Google Ads to the property, so queries and spend sit next to behavior instead of in three tabs that three people interpret three ways.

Decide what a conversion is before you install anything. A GA4 property with no key events is a visitor counter with a Google logo.

The "not provided" keywords problem in Google Analytics

"(not provided)" is what Google Analytics shows instead of the search keyword for organic visits from Google, and there is no way to unlock it inside Google Analytics. None. Google started encrypting searches for signed-in users in October 2011 and extended it to everyone in 2013, which stripped the query from the referral data Analytics depended on. Since then organic keyword reports in GA have said "(not provided)" for effectively all Google traffic, and GA4 doesn't have an organic keyword report at all. Whatever plugin promises to restore it is estimating.

The keywords exist. They're just somewhere else. Google Search Console reports every query that produced impressions and clicks for your site, with position, by page, country and device, for sixteen months back. Link Search Console to the GA4 property and a Search Console report collection appears inside GA4 with queries beside landing pages. That's the supported way to "see not provided keywords in Google Analytics," and understand what it is: aggregate query counts from Search Console, not which visitor searched what. The per-session keyword is gone and it's not coming back.

The tools that promise to unlock "not provided" match your landing pages to the queries those pages rank for and infer which keyword a visit probably came from. That's a reasonable guess, and it's a guess. Use it for direction. Don't put it in a board deck as data.

Paid search is different, because the data flows from the ad platform instead of the search referrer: link Google Ads to GA4 and the keywords that triggered ad clicks show up in the Advertising and Acquisition reports with full detail. That contrast tells you everything about why the organic data disappeared.

The organic keyword is gone from Analytics for good. It's in Search Console, aggregated. Anyone selling you the per-visit version is selling a guess.

What Google Tag Manager and Google tags are

Google Tag Manager, GTM, is a free tag management system: one container snippet goes on the site once, and every other tracking tag (Google Analytics, Google Ads conversions, the Meta pixel, TikTok, LinkedIn, dozens more) gets added, changed and removed from GTM's web interface without another code change. That's what GTM means when someone's talking about tracking. When they're talking about a product launch, GTM means go-to-market, which is on the marketing reference. The acronym collision causes real meetings.

GTM works with three objects. Tags are the snippets to fire. Triggers decide when: page load, a button click, a form submission, a scroll depth. Variables carry values into tags: the page URL, a product price, a transaction ID read from a data layer the site exposes. Changes publish as versions, so a mistake rolls back in a click, which is the whole argument for using it over hardcoding tags that only one developer understands.

A Google tag, lowercase, is a different thing: gtag.js, the single tag that sends data to GA4 and Google Ads. Since 2022 Google has unified the two under the name "Google tag" with a shared tag ID. You can install it directly or deploy it through GTM, and the usual arrangement is the second: GTM is the container, the Google tag is one of the things inside it. "Google tags," plural, generally means that family: the Google tag, GA4 event tags, Google Ads conversion tags inside GTM.

Server-side Tag Manager runs the container on a server you control instead of in the visitor's browser. Tags fire from your server, which means fewer scripts on the page, no third-party endpoints in the browser, and data that survives ad blockers and the browser tracking restrictions that now eat a meaningful share of client-side conversions. It's more work to set up and it's the standard architecture for any brand spending seriously on paid media, because the alternative is reporting that quietly loses a growing slice of your conversions every year while everyone wonders why the platforms' numbers and GA4's numbers drift further apart.

GTM is the container; the Google tag is one thing inside it. If you're spending real money on paid media and your tags still fire from the browser, you're measuring with a hole in the bucket.

What UTM parameters are

A UTM parameter is a tag stuck on the end of a URL that tells your analytics where the visitor came from. There are five: utm_source (the site or platform: google, newsletter, instagram), utm_medium (the channel type: cpc, email, social), utm_campaign (the campaign name), utm_term (the paid keyword), utm_content (which ad or link, for telling two apart). UTM stands for Urchin Tracking Module, after Urchin, the analytics company Google bought in 2005 that became Google Analytics. Nobody needs to know that; everybody asks.

A tagged link looks like https://example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale. When someone clicks it, GA4 reads the parameters and records the session's source, medium and campaign, which is how a visit from your email shows up as email instead of as Direct, the bucket where untagged traffic goes to be forgotten. Google Ads tags its own links automatically when auto-tagging is on, so UTMs are mainly for the channels Google doesn't control: email, social, affiliates, print and packaging with QR codes.

Three rules keep UTMs from becoming garbage, and I've cleaned up the garbage enough times to be firm about them. One naming convention, lowercase, no spaces, kept in a shared sheet, because Email, email and e-mail become three channels and someone will present them as three channels. Never put UTMs on internal links, which overwrites the real source with a fake one mid-visit. And build the links with Google's Campaign URL Builder or a shortener, not by hand at eleven at night before the send.

Five parameters, one naming convention, never on internal links. Most "Direct" traffic is somebody's untagged email.

How to check your own website traffic and visitors

To check your own website's traffic, open Google Analytics: the Reports snapshot gives users and sessions over a date range, and Acquisition → Traffic acquisition tells you where those sessions came from. That's the answer for any site with GA4 installed. If it isn't installed, there is no history to recover; install it now and the record starts today. I have had this conversation with companies that had been in business for a decade.

Website traffic is the count of visits, and GA4 reports it three ways that answer three different questions. Users: distinct people, as nearly as a cookie or a sign-in can tell. Sessions: visits, where a visit ends after thirty minutes of inactivity. Views: pages viewed. A site with 10,000 users might have 14,000 sessions and 40,000 views in a month, and all three will be quoted as "traffic" in the same meeting by different people. Say which one you mean. "Visitors" usually means users.

Other places the number lives, each seeing something different: Search Console shows search traffic only, impressions and clicks from Google results by query and page, and nothing from anywhere else. Server logs or the hosting dashboard count every request including bots, so they run higher than GA4 and the gap is bots. Cloudflare or another CDN reports requests and unique visitors at the network level, bots included. Platform dashboards (Shopify, Wix, Squarespace) have their own simplified analytics that won't match GA4 and don't need to.

"Google stats for websites" nearly always means those two free products: Analytics for behavior, Search Console for search. Checking a website's traffic when it isn't yours is estimation by third-party tools, and the estimate is off by a factor of two more often than not; that's on the SEO reference.

Users, sessions, views: three numbers, three meanings, one word everyone uses for all of them. Pick one and say it.

What marketing analytics is

Marketing analytics is measuring marketing across every channel at once to decide where the money should go. It's broader than web analytics, which describes behavior on one site, and broader than any platform's reporting, which describes that platform's view of its own results. Marketing analytics joins ad spend, channel reports, site behavior, sales and customer data into one account of what the marketing actually did, which is a thing most companies have never seen.

There are three layers, and most organizations stop at the first. Descriptive: what happened, by channel, campaign and period. Attribution: which touchpoints get credit for a conversion. Attribution is a modeling choice, last click, data-driven, multi-touch, and each model gives a different answer, which means none of them is a fact. Incrementality: what would have happened without the spend, measured with holdouts, geo tests or lift studies. It is the only layer that answers whether a channel caused anything, and it's the layer the platforms would prefer you never reach, because it's the one where their numbers come down.

The structural problem every marketing analytics program has to face is this: each platform reports its own conversions and they don't add up. Google Ads, Meta and Amazon will each claim the same sale, because each saw a touch before it, and last-click attribution hands the credit to whoever was standing nearest the register, which is usually Amazon. Add the platforms' reported conversions together and you've counted the purchase three times. A marketing analytics program you can trust fixes this with one warehouse of truth, one conversion definition, one documented attribution choice you can defend to whoever signs off on the budget, and incrementality tests on the channels that carry the budget. Nobody grades their own homework. That is the entire design principle, and it's what the tracking and attribution service builds.

Three platforms, one sale, three claims. Marketing analytics is the discipline of counting it once.