Google Analytics 4 Traffic by City, State

Google Analytics 4

Google Analytics 4 provides information on the city and state from which users are visiting your website.

Let’s say you run a hyperlocal news website in Santa Monica, Calif., that sells subscriptions. You’ll probably want to focus on readers who live in or near your coverage area. Even if you get visits from other parts of the country/world, they’re not as likely to pay for your news.

Or perhaps you’re an online store that also has a brick-and-mortar in Santa Monica. If sales tend to be higher in person than online, you’re going to want to reach users who are closest to your store.

SIGN UP: Digital Content Strategy Newsletter

But before doing a deep analysis, you need to know how many users are visiting your site from Santa Monica, and other relevant nearby areas. Then you can drill down even further to figure out how to draw them to your website and store to make purchases.

Here’s how to analyze traffic by city and region/state in Google Analytics 4.


  1. Google Analytics 4 Traffic by City, State: Summary

2. Google Analytics 4 Traffic by City, State: Detailed Explanation

Google Analytics 4 Traffic by City, State: Summary

Go to Reports > Users > Demographics overview and click on “View countries.”

Add a comparison specifying the city and/or state by which you want to filter your data.

Add a secondary dimension in the table to further filter and organize your data.

Also Read: How To Install Google Analytics 4

Google Analytics 4 Traffic by City, State: Detailed Explanation

Go to Reports > Users > Demographics overview.

By default, the first widget you will see on this dashboard sorts traffic by country. This can be useful if you’re an international publication or have clients all over the world. Otherwise, you’ll want a more detailed look at your readers’ locations.

Google Analytics 4 Demographics overview dashboard

Click on “View countries,” and you’ll be brought to a Demographic details report page.

Note: Google Analytics 4 provides user location data based on the location of the user’s IP address on their particular device. This does not necessarily show you where people live – GA4 doesn’t provide that data – but rather where they were when they accessed your site.

GA4 Traffic by State

1. Click Add comparison, which will initiate the Build comparison pop-out you see on the right in the screenshot above.

2. Under “Include,” select region, which is the equivalent of “State” in the United States, as well as most other countries.

3. Click the Dimension values dropdown, where you will see a list of all the states (regions) from which your site has received traffic in the specified time range. If there are a lot of options, you may be better off typing the state name and selecting it instead of scrolling through the entire list.

You can select multiple states if you wish.

4. Once you have selected the desired state, click OK, then the Apply button, which will now turn blue, at the bottom right.

You will now see a side-by-site comparison of All Users and California (or whatever state(s) you selected) users, side-by-side.

Google Analytics 4 Demographics Traffic Comparison All Users California

Again, if you don’t have a lot of international readers or customers, you may not be interested in analyzing traffic from “All Users.” Simply click the X next to the All Users comparison at the top, and you’ll be left with only the users in the states you selected.

Google Analytics 4 Demographics Traffic Comparison California

GA4 Traffic by City

Now that you have filtered traffic by a single (or few) state(s), you’re ready to drill down by city.

If you’re interested in analyzing traffic from just one particular city, or a small number of cities, you could use the same process as above for states, except you would include “City” in the first dropdown instead of “Region.”

But perhaps you want to see a list of all the cities in a specific region from which users and sessions come to your website. In that case, we’re going to pick up where we left off, filtering traffic only by California users.

Scroll down to the table, and you’ll see that there’s only one row of data for United States users. Click the dropdown where it says “Country” and change to “Region.”

We’ll still only see readers from California, but now it’s more clear instead of saying “United States.”

If you’re only filtering traffic by one region, this step isn’t necessary and you can change the dropdown to “City” instead of “Region.” I’m including this step here in case you want to filter by multiple states, and therefore see which cities correspond to which states.

Click the + symbol next to Region in the dropdown menu you just changed, and you’ll see a similar dropdown. Select “City.” I also like to expand the visible rows to more than 10, which allows you to see a large list of data without having to click through the list 10 at a time.

Here’s what that would look like if you added a second state, as I have now with Arizona, to make it easier to know which city corresponds to which state:

Now you can see just how many users and sessions come to your website from a particular city and state.

Is there another way you would like to analyze your data geographically? Let me know in the comments.

Also read: How To Create a Google Analytics 4 Landing Page Report

Google Analytics 4 Session: What is it?

Google Analytics 4

A Google Analytics 4 session is counted every time someone visits your site or app. This is how sessions are initiated:

  • App: A user opens your app on their phone in the foreground
  • Website: A user views a page on your website

Let’s take a look at how the GA4 session timer stops and starts, how you can change it, and the difference between a regular session and an engaged session.


  1. How are GA4 sessions counted?
    1. ga_session_id Parameter
    2. ga_session_number Parameter
  2. When does the Google Analytics 4 session timer reset?
  3. How To Change Google Analytics 4 Session Timeout Limit
    1. Change in App Stream
    2. Change in Web Stream
  4. What is an engaged session in GA4?
    1. Bounce Rate vs. Engaged Sessions in GA4
    2. How do you calculate bounce rate in Google Analytics 4?

How are GA4 sessions counted?

When a user comes to your site, they are assigned a session ID and a session number. These are parameters that go with the session_start event, which is automatically included in your GA4 dashboard.

(In order to access these this information in your Explore reports, you must create a custom dimension for each one.)

ga_session_id Parameter

A session ID, identified by the ga_session_id parameter, is generated each time a user comes to your site. If the same user comes to your site, leaves, and comes back to initiate a new session, two different session IDs are generated.

The same user can have multiple session IDs, because each new session generates a new ID, regardless of the user.

ga_session_number Parameter

The session number, identified by the ga_session_number parameter, counts the different number of sessions generated by each user.

Here’s a simplified example of how the session_start event and its ga_session_id and ga_session_number parameters are structured:

Google Analytics 4 session_start event and ga_session_id and ga_session_number parameters visual example
Note: The ga_session_id numbers here are made up to simplify this graphic.

When does the Google Analytics 4 session timer reset?

Google’s default timer ends sessions after 30 minutes of inactivity.

How to change your GA4 session timer

Let’s say someone opens your app on their phone so that it is in the foreground. That person has initiated a session. (This example applies to visitors to your website, too.)

They spend one minute on your app (or website) before checking their email, opening a social media app, sending a WhatsApp message, and setting their phone down to charge.

An hour later, they pick up their phone and access your app (or website) again. Is this considered a new session in Google Analytics 4?

Yes, even though your app (or app) was running in the background. After 30 minutes of your app (website) not being in the foreground, the user’s initial session ended.

But just because there’s a 30-minute inactivity limit before a new session is initiated, it does not mean that the user’s initial session was 31 minutes.

Since the user was inactive for 30 minutes, their active session timer will have been paused at the beginning of those 30 minutes.

Google Analytics 4 session timer example
An example of how Google Analytics 4 session timers work.

How To Change Google Analytics 4 Session Timeout Limit

If you prefer a different timeout limit than 30 minutes, here’s how to change it:

Change in App Stream

Use the setSessionTimeoutDuration method and specify your desired limit down to the millisecond*

*In fact, the default is not actually 30 minutes, but rather 1,800,000 milliseconds, which is equal to 30 minutes.

Change in Web Stream

  1. Go to Admin
  2. Click Data Streams
  3. Click your web data stream
  4. Scroll down and click More Tagging Settings, which is the last option under Additional Settings
  5. Click Adjust session timeout
  6. Choose how long your want your session timeouts to last in minutes and hours
    (You can also change your timer limit for engaged sessions)
Google Analytics 4 changes session timeout length

What is an engaged session in GA4?

Wondering what the difference is between a regular session and an engaged session in Google Analytics 4? An engaged session must meet one of three requirements:

  1. The session must last at least 10 seconds (or 10,000 milliseconds) AND/OR
  2. One or more conversion event was completed AND/OR
  3. The user viewed two or more screens (app) or pages (web)
Google Analytics 4 engagement dashboard featuring session stats

You can change the minimum session duration to activate an engaged session. Follow the steps in the previous section to do so.

Bounce Rate vs. Engaged Sessions in GA4

In GA4, bounce rate is not calculated the same way as it was in UA. Bounce rate and engagement rate are now inversions of each other.

In most cases, your goal should be to have a low bounce rate and a high percentage of engaged sessions.

How do you calculate bounce rate in Google Analytics 4?

Google Analytics 4 bounce rate was added July 11, 2022. It’s the inverse of engagement rate.

That means your bounce rate in GA4 is 100 minus your engaged sessions percentage.

e.g. If your engaged sessions percentage is 50%: 100 – 50 = 50% bounce rate.

Non-engaged sessions are any GA4 sessions that last less than 10 seconds and don’t include a conversion event nor multiple pages/screens.

Also read:

Google Analytics 4 Landing Page Report

Google Analytics 4

A landing page is the first place – aka unique URL – a user visits when coming to your site.

Sometimes “landing page” is used an industry term to refer to a page created with a specific purpose, such as to sell subscriptions to a news website or sign up for a newsletter.

Other times, as is the case in this article, the term “landing page” simply refers to the page on which a user “landed” upon entering your site. That could be your homepage, an article, a product or anywhere else on your particular domain.

Understanding why users enter your site on a particular page – and their behavior thereafter – is important to optimizing your content.


  1. How To Create a Google Analytics 4 Landing Page Report: Summary
  2. How To Create a Google Analytics 4 Landing Page Report: Detailed Explanation
  3. Should I use Page Title, Page Location or Page Path + Query String Dimension?

How To Create a Google Analytics 4 Landing Page Report: Summary

In the Google Analytics 4 Explore tab, create a free form report with the following settings:

  • Segment Comparisons: Landing page
  • Rows: Page Title
  • Values: Sessions

How To Create a Google Analytics 4 Landing Page Report: Detailed Explanation

1. Click the Explore tab on the left sidebar.

Google Analytics 4 Explore tab popout

2. Choose “Blank” from the template gallery.

Google Analytics 4 Exploration templates

3. Click the + symbol next to SEGMENTS.

Google Analytics 4 Exploration page select SEGMENTS

4. Select the Session segment option.

Google Analytics 4 add segment options: select Session segment

5. Click the “Add new condition” dropdown and type “landing page.” Select the only option that pops up. (You can also find this by clicking on “Page / screen” and scrolling down to Landing page. It’s the same thing.)

6. Click the + symbol next to DIMENSIONS.

Google Analytics 4 Exploration add new dimension

7. Type “page” in the search bar and select the following to import to your variables tab: Page Location; Page path + query string; Page title.

Google Analytics 4 select dimensions "page" search

You might not necessarily use all of these in your report, but now that they’re added to your Variables column, you have the option to do so.

8. Now click the + symbol next to METRICS (just below DIMENSIONS) and import the following to your Variables tab: Engaged sessions; Sessions; Active users; New users; Total users.

You can select more, less, or different metrics if you prefer. These are simply ones that I believe to be the most common and useful. As you begin to tweak your base Google Analytics 4 landing pages report, you’ll get a better sense of which metrics (and dimensions) you want to include.

Your dashboard should now look like this (perhaps with a different date range):

Google Analytics 4 Landing Page report setup

9. Double-click the segment you added, or simply click and drag it under SEGMENT COMPARISONS in the Tab Settings column.

10. Next, add one or more of your dimensions to ROWS (I prefer Page title), and add one or more metrics to VALUES (Sessions).

11. Here’s how your completed landing page report should look barring and changes to my recommendations*:

*The only thing not visible in the Tab Settings column of this screenshot is the Session Scoped: Landing Page segment

Google Analytics 4 Landing Page Report Basic Completed

Your report will autosave as you go, so once you finish, you can access (and edit) it at anytime by going to the main Explore page. Mine is titled “Landing Page Report” in the following screenshot:

Google Analytics 4 explore page with saved report

Should I use Page Title, Page Location or Page Path + Query String Dimension?

By using Page title instead of Page location or Page path + query string for dimension, we avoid dividing data from traffic that actually went to the same page.

Because of the / after the URL that used to be in some of my pages, GA4 saw them as different pages:

Google Analytics 4 Exploration page location and path query string

But when I filter by Page title, all traffic to my “Meet Brad” and “Contact” pages, respectively, are consolidated into a single row.

Confusion can still arise, however, if you change your page title format, as I did when changing my website’s CMS:

In the long run, though, I believe Page title is the best option.

Also see:

What are Google Analytics 4 Event Parameters?

Google Analytics 4

Google Analytics 4 event parameters are basically a piece of information that gives you more details about a particular GA4 event.

Parameters are additional pieces of metadata that add context to event data.

Google documentation


  1. Default Parameters in Google Analytics 4
  2. GA4 Event Parameter Limits
  3. Google Analytics 4 Event Parameter Examples
  4. GA4 Parameters Summary

Default Parameters in Google Analytics 4

In Universal Analytics, event event could have up to four pre-determined parameters: Action, Label, Category and Value. You could not change these nor add to them.

In Google Analytics 4, however, five parameters are included by default:

  • language: the language setting of the user’s browser or device
    e.g. English
  • page_title: The web page’s title
    e.g. Your Site Name – Content
  • screen_resolution: The screen resolution of the user’s monitor.
    e.g. 1280×768

GA4 Event Parameter Limits

While parameters are very useful, there are some limits you should know about.

How many parameters can I have per event?

In addition to the five default parameters, you can create up to 25 custom parameters per event.

If you hit the 25 parameter limit (unlikely) for a particular event and need to create more, you can delete some to make space.

What is the character limit of a parameter value?

Each parameter value has a 100-character limit, with the exception of page_location, page_referrer, and page_title parameters, which have a 300-character limit.

Google Analytics 4 Event Parameter Examples

To make things simple, let’s think of an example. Imagine you run the Ford* website.

*Company chosen at random

In the top navigation menu of their site, they list various types of vehicles. You could, then, create a “vehicle” event for every time someone visits the product page of a particular vehicle.

Ford website header menu

By looking at one particular product page – the Ford Escape S – I can think of different Google Analytics 4 event parameters I would want to track.

Ford 2022 Escape S product page

Here are some of the parameters I would create, along with what the parameter’s value would be:

  • vehicle_type: Escape
  • model: Escape S
  • year: 2022
  • price: $26,760

If you really want to drill down, you could apply the same strategy to their “Build” page where users can choose a color and different add-ons.

The point of collecting this data would be to better understand which vehicles and features are most popular. And since you have to enter a zip code/your location to access the build page, this data could be broken down geographically if you add a parameter for that, too.

To only have a “vehicle” event that fires every time someone visits the product page of a particular car, truck, etc. wouldn’t shed a lot of light on user behavior. But by creating custom parameters for each particular vehicle, Ford would learn a lot about what potential buyers seek.

How To Find Google Analytics 4 Event Parameters

In your Google Analytics 4 dashboard, click on the reports menu on the left (highlighted with a blue circle below) then click on “Events” under “Engagement.” (There are other ways to see your parameters, but this is probably the most straightforward.)

Google Analytics 4 Engagement Events Dashboard

Then scroll down and click on any of the events. For websites, page_view will probably have the most data, while in apps, screen_view will probably have the most data.

In the GA4 demo dashboard, I clicked the screen_view event. When you get to this page for any event, you should see a widget on the right side that says “EVENTS IN THE LAST 30 MINUTES.” Click the dropdown there, and you will be able to see all parameters associated with the particular event.

Google Analytics 4 screen_view event demo screen with parameter dropdown menu

Parameters in Reports

If you want to analyze parameter data in more detail, there are two ways to do so.

In Reports Tab

You can do this in any report that has event data, but I’m going to go through one specific example so you can follow along:

1. Go to Events > Life cycle > Engagement > Engagement overview

2. Scroll down to the “Event Count by Event Name” widget

3. Click on any of the events (I clicked “page_view”)

4. Scroll down to the “Events in last 30 minutes” widget and select one of the parameters from the dropdown

You can now see how many times that parameter was triggered within the event you selected (reminder: I selected page_view) in the last 30 minutes.

But that’s not very useful, is it? To only have data within a single event for the last 30 minutes.

Let’s make sure we can see data for a particular parameter in the Explore section.

In Explore Tab

To analyze parameters in the Explore section of Google Analytics 4, you will first need to add a custom definition. Here’s how to do that:

1. Go to Configure > Custom Definitions

2. Click the blue “Create custom definitions” button

3. Name your dimension. (Unlike event and parameter names, I don’t recommend against using spaces and capital letters here.)

4. Give it a brief description that will make sense when you or a colleague reads the the tool tip in Explore later on.

5. Leave the Scope type as Event and choose your parameter from the dropdown. Then click “Save.”

It may take 24-48 hours, but you should soon see your new custom dimension in Explore under “Custom.”

You can now apply that parameter to eligible reports in Explore.

GA4 Parameters Summary

Google Analytics 4 events are the “big-bucket” actions that users take on your website, while parameters are the final details that provide more context to those actions.

The good news is, you can add practically any parameter you can think of to your events. You can do this either directly in the GA4 dashboard, or in Google Tag Manager.

Also Read:

Google Analytics 4 Events Tracking, Creation

Google Analytics 4, Google Tag Manager

Track Google Analytics 4 events by following these processes to create them in the GA4 dashboard itself, and via Google Tag Manager.


  1. What are Google Analytics 4 Events?
  • What is a Google Analytics Parameter?
  • What are the differences between events in UA and GA4?

2. Google Analytics 4 Event Types

  • Automatically Collected Events
  • Enhanced Measurement Events
  • Recommended Events
    • Why Use Google Analytics 4 Recommended Events?
  • Custom Events
    • Naming Google Analytics 4 Custom Events

3. Track Google Analytics 4 Events

  • Create with the GA4 Dashboard
  • Create with Google Tag Manager

What are Google Analytics 4 Events?

Events are the foundation of Google Analytics 4 data. They are triggered by user interactions on your website and/or app. There are four types of events in Google Analytics 4: automatically collected events, enhanced measurement events, recommended events and custom events.

Each Google Analytics 4 event includes five parameters by default:

  • language
  • page_location
  • page_referrer
  • page_title
  • screen_resolution

What is a Google Analytics event parameter?

Parameters are additional pieces of metadata that add context to event data.” In addition to the five default parameters listed above, each event can contain up to 25 additional custom parameters. This is different from Universal Analytics (GA3), where events only contained four parameters, none of which was customizable.

According to Google: “The value assigned to event parameters must be 100 characters or fewer; however, the page_location, page_referrer and page_title parameters must be 300 characters or fewer.”

In some cases, the five default parameters will be sufficient for your event. If not, 25 custom parameters is a very high number and it’s unlikely you’ll reach this limit with any given event before you include all your desired parameters.

Some automatically collected events and enhanced measurement events will include additional default parameters that do not count against your count of 25 custom parameters. Recommended events included recommended parameters, but since Google doesn’t create these events for you by default, you’ll have to add them yourself when creating recommended events.

What are the differences between events in UA and GA4?

In Universal Analytics, events are their own “hit type” and have up to four built-in parameters: Category, Action, Label, Value.

In GA4, however, every “hit” is an event and the platform doesn’t distinguish between hit types.

As mentioned in the previous section, Google Analytics 4 events come with five default parameters, plus up to 25 more custom ones per event. Outside of Category, Action, Label and Value, UA does not allow for custom parameter creation.

Google Analytics 4 Event Types

There is an order in which you should utilize Google Analytics 4 events, beginning with automatically created ones all the way up to custom. Here is a pyramid to help you visualize.

Google Analytics 4 Events Pyramid
When creating events in GA4, you should start at the bottom of this pyramid and work your way up.

What this means is that, whenever you want to track something as an event, you should start at the bottom of the pyramid and see if it’s available. (This will make more sense after you read the descriptions below of each event type.) If not, move up to the next level of the pyramid.

In other words, you should only use recommended events if you can’t find the event you want to use in automatically collected nor enhanced measurement events. And if you can’t find what you’re looking for in any of those three bottom levels of the pyramid, then and only then should you create a custom event.

Automatically Collected Events

Automatically collected events and they’re determined by Google, and their function is self-evident by their names. Below is a list of the ACEs for web. (Click the link above to see ACEs for apps.)

  • click
  • file_download
  • first_visit
  • page_view
  • scroll
  • session_start
  • user_engagement
  • video_complete
  • video_progress
  • video_start
  • view_search_results

Enhanced Measurement Events

Enhanced measurement events are all included in automatically-collected events, so why are they listed in a separate category? Because while all the rest of the automatically collected events will feed into Google Analytics 4 no matter what, you can “opt out” of collecting enhanced measurement events.

These are the enhanced measurement events in Google Analytics 4:

  • page_view
  • scroll
  • click
  • view_search_results
  • video_start
  • video_progress
  • video_complete
  • file_download

I recommend leaving EMEs turned on, but if for some reason you want to opt out of any in particular – or all of them – you can do so upon setup or at anytime once your dashboard is live.

To turn off enhanced measurement events in Google Analytics 4, go to Admin > Data Streams > select the data stream for which you want to turn off enhanced measurement events. You will then see a popup that looks more or less like this:

You can turn off all enhanced measurement events by clicking the on/off toggle I circled in the above screenshot.

Alternatively, you can click the settings cog symbol, which will open a window like the one here, where you can individually choose which EMEs to leave on and which to turn off.

Recommended Events

Recommended events are not out-of-the-box ready such as with automatically collected events and enhanced measurement events. They are, however, “reserved” by Google for your use. What does that mean?

Let’s say you want to track every time someone signs up for a newsletter on your website. There is no automatically included nor enhanced measurement event that would logically be used for this. The next step, then, would be to review the list of Google-recommended events and see if one of them might fit the bill.

There is, in fact, a recommended event called “sign_up”. Now, just like any event that’s not included in the first two event categories, you can use “sign_up” to track anything you want on your website. But it would make the most sense, of course, to utilize it when someone signs up for something.

There are two possible complications, depending on what people can sign up for on your website. Fortunately, they both have simple solutions:

1) If you have more than one newsletter on your site. If you use the sign_up event to track multiple newsletter signups, this would be a great opportunity to add an event parameter that distinguishes between different newsletters. The parameter names could be as simple as “politics,” “sports” and “entertainment.”

That way, all your newsletter-signup data is housed within the same event, but you can also drill down to see, for example, who signed up for your politics, sports or entertainment newsletters, respectively.

2) If you have different types of unrelated signups on your website. Perhaps users can sign up for both newsletters as well as for a user account. In this case, you have two options:

A. Use the same solution in scenario 1: distinguish via event parameters. Use the sign_up event for all types of signups, but distinguish between signup types with parameters. e.g. For newsletters signups, use something like “politics_newsletter” and “sports_newsletter” as your parameters, and for account signups use “create_account”.

  • Pro: You will benefit from Google reporting features and integrations (see below) since both events utilize a recommended event.
  • Con: At the event level, all your data for two somewhat unrelated user actions will be mixed.

B. Your other option is to use the “sign_up” event for one of the events and use a custom event for the other. These could be “sign_up” and “new_account”, for example.

Why use a Google Analytics 4 recommended event?

Google says that by adhering to their recommended events schema – i.e. event name and parameters – you could benefit from feature integrations and updates in your reports:

You should send recommended events with their prescribed parameters to get the most details in your reports and to benefit from future features and integrations as they become available.

Custom Events

Custom events are the only type of events in Google Analytics 4 that you would create from scratch without any pre-built settings. They also include the five aforementioned default parameters. Any other parameters you create would be considered custom.

When would you create a custom event in Google Analytics 4? You would only create custom events in Google Analytics 4 if the action you want to track is not included in any of the three previous levels of events (automatically included, enhanced and recommended).

For example, let’s say you want to track every time someone triggers both the “scroll” and “user_engagement” events on your product page. You could create an event called “engaged_product_visit” that is triggered whenever someone triggers both the “scroll” and “user_engagement” events while their page_location (essentially the URL) matches your product page.

We’ll explore this example more in-depth below when we talk about actually creating events, but the key factor here is that no event like this already exists in automatically collected nor enhanced measurement nor recommended events, which means that as a “last resort,” you must now create a custom event.

Naming Google Analytics 4 Custom Events

To keep things organized and aesthetically pleasing, I recommend following Google’s existing scheme for event creation. That is, all lowercase and with underscores instead of spaces. In fact, Google expressly tells you not to use spaces in its documentation.

Can I use spaces instead of underscores in Google Analytics 4 event names? Yes, but your dashboard will look much cleaner if you follow the existing schema.

Can I use uppercase letters in Google Analytics 4 event names? Yes, but for the same reasons, I would only do so if it’s part of a proper noun or perhaps an acronym.

Can I use numbers in Google Analytics 4 event names? Yes, though I would only do so if necessary.

Are Google Analytics 4 event names case-sensitive? Yes. e.g. “sourdough_bread” and “Sourdough_Bread” would be tracked as two separate events.

Are there any reserved prefixes and event names in Google Analytics 4? Yes, you can see the full list by clicking the previous link.

Track Google Analytics 4 Events

(The following steps assume you have already set up Google Analytics 4.)

There’s one thing you should know before getting started with creating Google Analytics 4 events: You may not use personally identifiable information (PII).

Create with the GA4 Dashboard

In Google Analytics 4, click “Configure” at the bottom of the left pop-out menu.

On the subsequent page, click the blue “Create Event” button. That will bring you to the following screen, where you should click the blue “Create” button.

That will bring you to the following page, which is where all the magic happens.

Using our aforementioned example – an engaged user triggering the scroll event on a product page – we would list each of those conditions in the Configuration:

Google Analytics 4 custom event Configuration popup

As you can see, we have named our event engaged_product_scrolls, and in order for it to register, both the scroll and user_engagement events must fire with a URL that contains /product. In this imagined scenario, every product would have a URL that was something like

If we only wanted this event to fire for this one particular product, then the page_location would have to equal /product23483/basketball-shoes. Notice that page location is identified by everything after the top level domain (TLD), which is “com” in this case.

If you didn’t want to copy the exact same parameters from the source event, you would uncheck the box you see and add modification(s).

When you’re finished, click the blue create button at the top-right portion of the screen.

Create with Google Tag Manager

If you, like me, prefer to use Google Tag Manager to install Google Analytics events, you can do so by creating a new tag.

From the Overview page, click “Add a new tag.” (This can also be done by going to the Tags menu, below Overview, and clicking the “New” button once on that page.)

Click Tag Configuration and select the Google Analytics: GA4 Configuration tag.

Since Google Tag Manager gives us more event-creation capabilities, we’re going to use a different example here. In this case, I’m going to add a recommended event – sign_up – every time someone subscribes to receive email notifications about new posts on this website.

I’m going to do this by tracking clicks on the “FOLLOW” button in the footer of my website.

By running a test with Google Tag Manager preview mode, I can confirm what already seems obvious by looking at the button: The click text is “FOLLOW”. So I’m going to create a trigger in Google Analytics to fire every time someone clicks a “FOLLOW” button on my site. Since there is only one follow button on the whole site, I don’t have to worry much about this picking up unrelated clicks.

Here’s how I set up the Trigger in Google Tag Manager:

And here’s how I set up the Tag in Google Tag Manager, naming the event exactly as Google recommends:

Once the tag and trigger are properly set up, I can publish the latest version of my Google Tag Manager container, and the event will be live on the site.

You should see data begin to show up in your dashboard in around 24 hours or less.

If you want to test it beforehand, you can use the Debugger View, under Configure, in the GA4 dashboard. You can also test it simultaneously using the Google Tag Manager preview mode if you in fact set up the event using GTM.

Do you have any questions about creating events in GA4? Did you run into any problems I didn’t cover? Let me know in the comments.