• GA4
  • Events
  • Tracking Plan
  • Google Tag Manager

GA4 Recommended Events: Which to Set Up, Which to Skip

By Dolphin Analytics team · Published 30 Sept 2026 · Last checked 30 Sept 2026

TL;DR

GA4 recommended events are events you send yourself, but whose names and parameters Google has already defined, like purchase, generate_lead and sign_up. Google's exact names unlock GA4's built-in reports. Most sites need a short list: the shopping funnel for shops, generate_lead for lead generation, sign_up, login and purchase for SaaS. Skip events for features you don't have. We plan and build these for clients most weeks.

Olamide Sule, founder of Dolphin Analytics: a digital analytics expert based in London who plans and builds GA4 event tracking for agency and in-house clients.

We write GA4 event plans for agencies and in-house teams most weeks, and one question comes up early in every one: which of Google’s recommended events do we actually need? Google’s list covers online shops, lead generation, apps and games, and most of it won’t apply to any single business. This is the pick list we use when we build a tracking plan: what to set up for your type of site, what to skip, and how to send each event so GA4 recognises it.

When teams come to us pulling their hair out with data challenges, event names are often where the trouble started: Purchase in one tag, order_complete in another, and an enquiry form that sends nothing GA4 can report on.

GA4 recommended events are events you implement yourself, but whose names and parameters Google has already defined, such as purchase, generate_lead and sign_up. Google’s own events documentation says these events “unlock existing and future reporting capabilities”. GA4 doesn’t create them for you: they only exist if your site, your tag manager or your ecommerce platform sends them.

They sit between the other event types in Google’s definitions. Automatically collected events arrive by default, enhanced measurement events arrive once that setting is on, and custom events are names you invent. Our guide to events in Google Analytics explains all four types. Recommended events are the useful middle: you still have to build them, but you don’t have to design them.

Google’s recommended events list groups them into sets: events for all properties, for online sales, for lead generation and for games. Read it as a menu. Nobody needs the whole thing.

Why use Google’s event names instead of your own?

Use Google’s exact names because the name is what makes an event “recommended”. Tag Manager’s own setup guide says that to create a recommended event you use one of the predefined event names, and GA4’s event naming rules make names case sensitive, so Purchase and purchase count as different events.

A near miss lands as a custom event instead. Google’s advice is to create custom events only when no other event works for your use case, because they don’t show up in most standard reports and need custom reports or explorations. The recommended events list says the online sales events populate the Ecommerce purchases report and the lead generation events populate the Lead acquisition report. A custom order_complete feeds neither.

The same naming rules say every name must start with a letter and use only letters, numbers and the underscore, with no spaces. So add-to-cart and Add To Cart are both out. When we audit accounts, a correct event under the wrong name is one of the faults we find most often. You can rename it in GA4 later, but Google’s guide to renaming events says modified events do not apply to historical data. The new name only covers data collected after the change, so everything before it stays under the old one.

An ecommerce site should set up the shopping funnel, from view_item through add_to_cart and begin_checkout to purchase, because those names feed GA4’s ecommerce reports. Google’s recommended events list says sending the online sales events populates the Ecommerce purchases report. The rest of the set depends on which features your shop actually has.

EventSet it up?Why
view_itemAlwaysThe top of the product funnel
add_to_cartAlwaysThe first real sign of buying intent
begin_checkoutAlwaysWhere checkout drop-off analysis starts
purchaseAlwaysThe event that carries order revenue
view_item_list and select_itemYes, if you have category or search result pagesShows which lists get products seen and clicked
view_cartYes, if you have a basket pageSeparates basket views from checkout starts
add_shipping_infoYes, if delivery is its own stepPins drop-off to the delivery step
add_payment_infoYes, if payment is its own stepPins drop-off to the payment step
remove_from_cartOptionalUseful only if someone will read it
add_to_wishlistOnly if you have a wishlistOtherwise it never fires
view_promotion and select_promotionOnly for internal banners you want to compareWorth it only if someone compares the banners
refundOnly if your back office can send itRefunds happen after the visit, away from the browser

Get purchase exactly right before anything else. Google’s event reference lists transaction_id, value, currency and items among its parameters, and notes that if you set value, then currency is required for revenue metrics to be computed accurately. Every product in items needs an item_id or an item_name. Our GA4 ecommerce data layer guide has the push for each event, and if GA4 already shows more orders than your store, start with our duplicate purchase events fix.

refund is the one most shops should leave until later. The browser tag rarely sees a refund, because refunds usually happen in the back office after the visit. The Measurement Protocol exists for this kind of server-to-server and offline event, and our Measurement Protocol explainer covers the setup.

A lead generation site should send generate_lead on every genuine enquiry, and add the later lead stages only when its CRM can send them back to GA4. Google’s recommended events list aims the full lead set at funnels where conversions occur offline, naming business-to-business, automotive and insurance sales, and says sending them populates the Lead acquisition report.

Google’s list defines each stage by when it happens:

  • generate_lead: someone submits a form online or submits information offline.
  • qualify_lead: the lead is marked as fitting the criteria to become a qualified lead.
  • working_lead: the lead contacts, or is contacted by, a representative.
  • close_convert_lead: the lead becomes a customer.
  • disqualify_lead: the lead is marked as disqualified.
  • close_unconvert_lead: the lead is marked as not becoming a customer.

Only generate_lead usually happens on your website. The rest happen in your CRM, often weeks later, so they reach GA4 through the Measurement Protocol, which needs the visitor’s GA4 client_id stored against the CRM record to join the event to the original visit. If your CRM can’t do that yet, send generate_lead properly and stop there. A half-built lead funnel looks like a conversion problem when it is really a plumbing problem.

For generate_lead itself, Google’s gtag.js event reference lists a value and currency pair plus an optional lead_source. Put a value on the lead if your sales team can agree one. Our key events guide covers marking it as a key event and sharing it with Google Ads.

Two traps come up again and again in the lead generation setups we audit. The first is newsletter sign-ups: if you also take sales enquiries, keep them out of generate_lead and give them their own custom event, or your lead count mixes two very different things. Tag Manager’s own example event name is signup_newsletter, which works well.

The second is double counting. Enhanced measurement’s form interactions send form_submit when a user submits a form, any form, so marking both form_submit and generate_lead as key events counts one enquiry twice. If your forms are HubSpot embeds, our HubSpot form tracking guide shows how to fire generate_lead only on a real submission.

A SaaS or subscription site should set up sign_up and login, plus purchase when someone pays. Google’s recommended events list defines sign_up as someone signing up for an account on your website or app, and login as someone logging in. Add generate_lead for demo requests if sales talks to people before they buy.

Google’s event reference gives both sign_up and login a method parameter for the route the user took, such as email or Google. Send it. Without it you can see that sign-ups dropped; with it you can see which sign-up route broke.

The same reference describes tutorial_begin as the start of the onboarding process and tutorial_complete as the user’s completion of it, and suggests using the two in a funnel to understand how many users complete the tutorial. Build them if you have a guided setup flow. If your product has no onboarding flow, skip them.

Skip any recommended event for a feature you don’t have, any event enhanced measurement already sends, and any event you can’t fill with the parameters it needs. Google’s recommended events list covers shops, lead generation, apps and games in one place, so most of it is somebody else’s business.

  • The game events. level_start, level_end, level_up, post_score and unlock_achievement sit in the games set, alongside earn_virtual_currency and spend_virtual_currency. Unless you build games, leave them alone.
  • ad_impression on a website. Google’s list describes it as an ad view “for apps only”, and it appears among the reserved event names for web.
  • search, when enhanced measurement already sees your site search. Enhanced measurement sends view_search_results when the results URL carries a search parameter (q, s, search, query or keyword by default). Send search yourself only when your search runs without one of those in the URL.
  • refund, if nothing in your stack can send it. An empty refund event is worse than none, because it suggests refunds are tracked when they aren’t.
  • Promotion events without internal promotions. view_promotion and select_promotion are for when a user views a promotion on your website or app, and when a user selects one. If you run no promotions, or nobody will compare them, they add build and testing work for a report nobody opens.
  • share, select_content and join_group, unless a question depends on them. They suit content sites and communities. Build them when someone has a question they answer, not because they are on the list.

Our rule when we write a plan is simple: every event needs an owner and a question it answers. If it has neither, it waits.

You send a recommended event from Google Tag Manager, from gtag.js in the site code, or by creating it inside GA4 from an event you already collect. In every case the event name must match Google’s list exactly, in lower case, as the naming rules treat any other casing as a different event.

In Google Tag Manager. Google’s Tag Manager guide covers the same steps:

  1. In your container, go to Tags > New and name the tag.
  2. Click Tag Configuration and choose Google Analytics: GA4 Event.
  3. Enter your GA4 Measurement ID.
  4. In Event Name, type the recommended name exactly, for example generate_lead.
  5. Add the event’s parameters, such as lead_source, as parameter rows.
  6. Under Triggering, pick the trigger for the real action, such as a form success event, not a button click.

If your developer pushes events to the data layer, the push for a lead looks like this. Our data layer guide shows how GTM turns it into a trigger and a variable.

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: 'generate_lead',
  lead_source: 'contact_form'
});

In the site code. If your site runs gtag.js directly, Google’s event setup guide uses this pattern, and warns that Google won’t process events placed above the Google tag snippet:

gtag('event', 'sign_up', {
  method: 'email'
});

Inside GA4, without code. In Admin > Data display > Events > Create event, you can build generate_lead from a page_view on your thank-you page URL, following Google’s guide to creating events. It is only as good as the page it matches: a thank-you URL that people reload or bookmark will over-count, and it can’t invent a real order value or an items array the page never sent.

Whichever route you pick, watch the event arrive before you trust it. Google’s event setup guide points to the Realtime and DebugView reports for this. If nothing shows up, our DebugView troubleshooting guide covers the usual causes.

When should you call someone?

Most teams can pick their events from this page and build the simple ones themselves. Call someone when one of these is true:

  • GA4 revenue and your order system disagree, and you can’t find which event is wrong.
  • You want the lead stages, which means joining your CRM to GA4 through the Measurement Protocol.
  • Custom names already do recommended jobs in your property, and renaming them means planning around split history.
  • An agency or developer is about to build, and nobody has written down which events, parameters and triggers they should use.

That last one is most of our event work. We write the plan, build it in Google Tag Manager, and check every event in DebugView before anyone reports on it. Our GA4 setup service covers that build, and if you already know you need someone inside the account, our paid GA4 audit works through the property with access to GA4 and Tag Manager and ends in a written findings report.

Clean event names pay off when someone reads the funnel they build. On one client’s app sign-up funnel, this is what the reading turned up.

Insights from a global car maker's app sign-up funnel increased its app sign-ups by 67% and recovered around 1,000 sign-ups a month that a bug had been losing.

If your event setup already feels tangled, tell us what’s broken, or book a call.

Frequently asked

What are recommended events in GA4?

Recommended events are GA4 events you implement yourself, but whose names and parameters Google has already defined, such as purchase, generate_lead, sign_up and login. Google groups them into sets for all properties, online sales, lead generation and games. Using the exact names unlocks GA4's built-in reports, such as the Ecommerce purchases report for online sales events.

What is the difference between recommended and custom events in GA4?

Google defines a recommended event's name and parameters; you define a custom event's. Recommended events feed GA4's standard reports. Custom events don't show up in most standard reports, so you need custom reports or explorations to use them. Google's advice is to create a custom event only when no other event works for your use case.

Do I need to set up every GA4 recommended event?

No. The list is a menu, not a checklist. Shops need the shopping funnel from view_item to purchase, lead generation sites need generate_lead, and SaaS sites need sign_up, login and purchase. Skip events for features you don't have, like the game events, and events you can't fill properly, like refund when nothing in your stack can send it.

Should a newsletter sign-up be generate_lead or sign_up?

Neither, if you also take sales enquiries. Google describes sign_up as someone signing up for an account, and sending newsletter subscriptions as generate_lead mixes them into your lead count. Give newsletter sign-ups their own custom event, such as signup_newsletter, which is the example name Google's own Tag Manager guide uses.

Can I create a recommended event in GA4 without code?

Yes, for simple cases. In Admin > Data display > Events > Create event, you can build an event such as generate_lead from an existing page_view on your thank-you page. It is only as good as the page it matches, so a thank-you URL that people reload or bookmark will over-count. Anything that needs parameters like value, currency or items belongs in the data layer or the site code.

Are GA4 event names case sensitive?

Yes. Google's event naming rules say names are case sensitive, so Purchase and purchase are different events. A capitalised or misspelt recommended name lands as a custom event and misses the reports built for it. Names must start with a letter and use only letters, numbers and the underscore, with no spaces.

Talk to us

Data giving you a headache? We'll take it off your plate.

Tell us what's broken, or grab a time. Either way you hear from a person, not a sales script.

Send a message

We reply within one working day.

Add a few details (optional) The more we know up front, the faster we can tell you what's wrong and how to fix it.

Protected by an invisible spam check. Prefer email? olam@dolphinanalytics.co.uk

Calendly · 30 min

Book a call

Thirty minutes on Google Meet with the founder.

The booking lands on the same record as your message.