A real measurement foundation is four layers, built in order: collection, which is what actually fires in the browser or on the server; definition, which is the small set of GA4 key events that map to money rather than to activity; corroboration, which is Search Console and Bing Webmaster Tools giving you the query and index side that analytics cannot see; and reconciliation, which is comparing all of it against your CRM or order system on a schedule. Until those four exist and have been verified with real test conversions, every decision about budget, keywords, creative, or channel mix is an informed guess wearing a dashboard.
GA4: fewer events, better named
GA4 collects everything as events with parameters, which is flexible and therefore easy to make a mess of. Most broken properties we open are not under-instrumented, they are over-instrumented with no taxonomy: forty custom events with inconsistent naming, half of them firing from a tag manager and half hardcoded, and a dozen of them marked as key events because someone wanted to see them in a column.
Start from the money. Write down the two to five actions that genuinely represent revenue or a step that reliably precedes it: a purchase, a qualified form submission, a phone call over a duration threshold, a booking, a quote request. Those become key events. Everything else stays an ordinary event you can still segment on. GA4 caps how many key events a property can carry, so treat the slots as scarce, and remember that marking an event as a key event in GA4 does not by itself make Google Ads bid toward it. Bidding follows Google Ads conversion actions, whether imported from GA4 or defined natively, and confusing the two is a common reason a campaign optimises toward nothing.
The settings that quietly ruin a property
- Data retention. Standard properties default to the shorter retention window. Raise it to the longer option on day one, because the setting is not retroactive and you cannot recover what expired.
- Internal traffic. Define the internal traffic filter and then actually set it to active. Creating the rule and leaving it in testing mode is the single most common half-finished GA4 task.
- Unwanted referrals. Payment processors and booking widgets will otherwise restart sessions and steal credit from the real source. List them in the data stream settings.
- Cross domain. If checkout, booking, or the application form lives on another domain, configure cross domain measurement or you are looking at two unrelated users.
- Custom dimensions. Event parameters are not reportable until they are registered as custom dimensions, and the registration is not retroactive either.
- Consent mode. If you have traffic from the European Economic Area and you use Google advertising features, Google requires consent mode signals to be passed. Implement it properly rather than letting a banner silently block tags.
- BigQuery export. Available on standard properties at no cost from the GA4 side, though BigQuery storage and query usage is billed separately. It is the only way to escape sampling, thresholding, and interface row limits later, and it does not backfill, so turn it on before you need it.
Search Console: the only place queries live
GA4 has no query data. Search Console is the only free source of the words people actually typed before they arrived, plus the only authoritative view of whether Google has indexed a page at all. Verify it as a domain property using a DNS TXT record rather than a URL prefix, so every subdomain and protocol variant reports into one place.
Then use the parts people skip. The Pages report tells you the specific reason a URL is not indexed, which is usually more actionable than any ranking report. The performance report holds sixteen months of history, and the interface caps exported rows, so if queries matter to you, pull them through the API or turn on the bulk data export into BigQuery. Submit an XML sitemap and check that the submitted and indexed counts are in the same neighbourhood. Link the property to GA4 so the Search Console reports appear inside analytics, and remember that those reports have to be published from the GA4 library before anyone can see them.
Bing Webmaster Tools takes about five minutes because it can import your site straight from Search Console, and it earns its place twice over. It gives you an independent crawl and index view, it supports IndexNow for pushing new and changed URLs, and the Microsoft index is a retrieval source for Copilot, which makes it part of the AI search picture rather than a legacy checkbox.
Server side tagging, without the sales pitch
Server side tagging means the browser sends one request to a collection endpoint on your own domain, and a container you control decides what to forward to Google, Meta, and anything else. The genuine benefits are specific: cookies set in a first-party server context are not subject to the short client-side lifetimes that browsers now impose on scripts, fewer requests are lost to blockers and network filtering, you control and can redact the payload before it leaves your infrastructure, and one collection point can feed many destinations without adding page weight for each.
The honest caveats matter just as much. It costs money to run, usually as a container on cloud infrastructure or a managed vendor. It does not recover data from people who declined consent, and any vendor implying otherwise is selling you a compliance problem. It adds an operations surface that can break silently. And a careless migration double-counts everything, because the old client-side tags are still firing alongside the new server-side ones. Where server side pays off fastest is in pairing it with enhanced conversions on the Google side and the Conversions API on the Meta side, with proper event deduplication so a browser event and a server event describing the same purchase are matched rather than counted twice.
Nobody has ever been fired for a beautiful dashboard. They get fired for the decisions the dashboard justified.
Call tracking, for the half of the funnel that rings
For service businesses, a large share of revenue arrives as a phone call, and a phone call is invisible to a pixel. Dynamic number insertion swaps the number displayed on the page based on the traffic source, so a call can be attributed back to the campaign, keyword, or listing that produced it. Two rules keep it clean. First, preserve name, address, and phone consistency: use the tracking number where the platform expects one and keep your real published line intact everywhere it corroborates your listings. Second, push the result back. A call is only useful as a conversion if the outcome returns to Google Ads and GA4 as an offline conversion, ideally qualified by what happened on the call rather than by the fact that the phone rang.
That last point is where most accounts leak value. Optimising toward raw call volume teaches the bidding system to find people who dial, not people who buy. Feeding back only the calls your team marked as qualified teaches it something worth learning.
The setup sequence
- 01 Write the measurement plan on one page: the actions that represent money, their value, and where each is recorded.
- 02 Create or clean the GA4 property, set data retention, internal traffic filtering, unwanted referrals, and cross domain.
- 03 Implement events through one tag manager container with a documented naming convention, and remove hardcoded duplicates.
- 04 Register the parameters you will report on as custom dimensions, then mark only the money actions as key events.
- 05 Define the matching conversion actions in Google Ads and Meta, decide which are primary for bidding, and set deduplication.
- 06 Verify by doing: submit a real form, place a real test order, place a real call, and watch each event arrive in every destination.
- 07 Verify the domain property in Search Console, submit the sitemap, and read the Pages report before assuming indexing.
- 08 Import the site into Bing Webmaster Tools and enable IndexNow.
- 09 Turn on the BigQuery export, link GA4 to Google Ads and Search Console, and confirm consent mode is passing signals.
- 10 Add call tracking and offline conversion import, qualified by CRM outcome rather than by call count.
- 11 Reconcile monthly against the CRM or order system, and date every discrepancy you find.
- 12 Re-verify after every site release. Tracking decays, quietly, and always at the worst time.
Why unverified tracking makes every channel a guess
Modern media buying is algorithmic. Smart bidding, campaign budget optimisation, and broad targeting all consume your conversion signal as ground truth and steer the entire budget toward whatever produces more of it. Feed them a duplicated event and they scale into audiences that do not buy. Feed them a missing event and they starve the campaign that was working. The damage is not confined to paid, either: content decisions get made from the same numbers, email gets credited or blamed by the same attribution model, and a landing page test with a broken goal produces a confident, wrong winner. We wrote about the failure modes in more detail in the broken tracking epidemic.
This is why our analytics and tracking work happens in the first two weeks of every engagement, before any scaled budget moves through paid media. Not because measurement is glamorous, but because it is the only part of the stack that, when wrong, makes every other part confidently wrong with it.

