If you want the short version: set up Google Analytics 4 by creating an account and property, installing the tag through Google Tag Manager, defining your key events before you do anything else, fixing the two default settings Google leaves wrong, filtering out your own traffic, connecting Search Console, and then validating that data actually flows. The order matters more than any single step, because a measurement plan built after the tag is live is a measurement plan you will be apologizing for in three months.
Most GA4 problems are not bugs. They are the predictable result of treating setup as “paste the code and move on.” The tool will happily collect data the moment the tag fires, which fools people into thinking they are done, while quietly recording numbers that are incomplete, polluted, or undefined in business terms. The difference between a useful GA4 and a misleading one is entirely in the steps people skip because the dashboard looked alive without them.
Step 1: Decide what you are measuring before you touch the code
The single most valuable thing you can do happens before any technical step: write down, in plain language, the three to five actions on your site that actually matter to the business. A lead form submitted. A demo booked. A purchase completed. A pricing page reached. If you cannot name them, no amount of analytics will help you, because you will end up staring at page views and pretending they mean something.

This list is your measurement plan, and it drives every later decision about which events to track and which to mark as key events. Teams that set up Google Analytics 4 without this list end up with a property full of automatically collected events and no idea which ones represent money. Teams that write the list first end up with a property that answers business questions on day one. Ten minutes with a notepad here saves weeks of confusion later.
Step 2: Create the account, property, and data stream
In the GA4 admin, you build a hierarchy: an account at the top, a property under it, and a data stream under that. For a single website, that means one account, one property, and one web data stream pointed at your domain. Keep this clean. The most common early mistake is spinning up multiple properties for one site because someone got confused during setup, then splitting your data across them so no single property tells the whole story.
When you create the web stream, GA4 generates a measurement ID that looks like a G followed by a string of characters. That ID is what connects your site to this property. Note it down. You will hand it to your tag in the next step, and getting the wrong ID into the tag is a classic reason data never shows up where you expect it.
Step 3: Install the tag through Google Tag Manager, not by hand
You can paste the GA4 tag directly into your site’s code, but use Google Tag Manager instead unless you have a strong reason not to. Tag Manager gives you a single container to manage GA4 and every other tag without editing site code each time, which matters the moment you want to track a button click or add a marketing pixel. Hand-coding tags is how sites end up with duplicate tags double-counting traffic, the second most common GA4 data corruption I see.

Install the Tag Manager container snippet once, then create a GA4 configuration tag inside it using your measurement ID, set to fire on all pages. Publish the container. This is the step where many people stall because two Google products with similar names feel redundant, but the separation pays off permanently: the site loads one container, and everything else is managed inside it without a developer.
Step 4: Define your key events
Remember that measurement plan from step one? Now you make GA4 honor it. GA4 records nearly everything as an event automatically, but those events are undifferentiated until you tell the tool which ones are key events, the new name for what used to be called conversions. Marking an event as a key event is what makes it show up in the reports and integrations that decision-makers and ad platforms actually use.
For simple goals like reaching a thank-you page, you can mark an existing event as a key event with a couple of clicks. For richer goals like a specific button click or a form interaction, you create the event in Tag Manager first, confirm it is arriving in GA4, then promote it to a key event. Do not skip the confirmation. Marking an event that is not actually firing as a key event gives you a conversion metric that reads zero forever, and a zero you do not understand is worse than no metric at all.
Step 5: Fix the two settings Google leaves wrong
Two defaults will quietly undermine you. First, data retention defaults to two months, which means your explorable, event-level history evaporates faster than most reporting cycles. Change it to 14 months in the admin data settings unless a privacy policy requires otherwise. Second, Google Signals and various data-sharing toggles ship in states that may not match your privacy posture, so review them deliberately rather than accepting whatever was preselected.
These are thirty-second changes with outsized consequences. The retention setting in particular catches people months later, when they go to analyze a year-over-year trend and discover the detail simply is not there because nobody moved a dropdown during setup. Handle it now while you are already in the admin panel.
Step 6: Filter your own traffic and connect Search Console
Your team visiting the site looks identical to customers unless you tell GA4 otherwise, and on a low-traffic site your own clicks can meaningfully distort the numbers. Set up internal traffic filtering using your IP, and turn the filter to active rather than testing, because GA4 ships the filter in testing mode where it does nothing. This is a subtle trap: people create the filter, see it listed, and never flip it on.
While you are configuring, link GA4 to Google Search Console. That connection pulls in how people find you through search, which queries and which landing pages, and pairs it with the behavior GA4 already tracks. Without it you see what people did on your site but not what they searched to get there, which is half the story for any business that cares about being found.
Step 7: Validate that data actually flows
Setup is not done when the tags are published. It is done when you have watched real data arrive correctly. Use the realtime report and the DebugView to confirm that page views register, that your key events fire when you actually perform them, and that your internal traffic filter is excluding you. Walk your own site like a customer, submit the form, reach the pricing page, and watch the events appear.
This validation pass is the step that separates a setup you can trust from one that merely exists. The whole reason to set up Google Analytics 4 carefully is so that when a number surprises you later, your first instinct is to investigate the business, not to wonder whether the tool was ever configured right. Spend the twenty minutes to prove the plumbing works, and every report after that earns the benefit of the doubt.