netPark does not offer SEO services, nor do we set up or manage Google Analytics, Google Tag Manager, or any related tracking tools for clients. The documentation provided below is for informational purposes only. It explains how our modules interact with Google Analytics, Google Tag Manager, and UTM code tracking, as well as the events we send as part of this process.
If you require assistance with SEO, Google Analytics, or Google Tag Manager setup and management, we recommend consulting a qualified professional or service provider.
Website
Initial Setup
Google Analytics 4 (GA4)
Creating a GA4 Account:
Please follow Google’s support page by clicking here.
How to Get Your GA4 ID:
- Sign in to Google Analytics: Go to analytics.google.com and log in with your Google account.
- Click “Admin”: This option is located in the bottom-left corner of the page.
- Select the Correct Property: Use the dropdown menu to choose the appropriate property.
- Click “Data Streams”: You’ll find this in the Property column.
- Select the Relevant Data Stream: Choose the data stream associated with your website.
- Locate the “Google Tag” Section: On the “Web Stream Details” page, scroll to the “Google tag” section.
- Click “Configure Tag Settings”:
- Find Your GA4 ID: Your Measurement ID (in the format
G-XXXXXXX
) will be displayed in the “Your Google tag” section.
You will need this for the next step
Google Tag Manager (GTM)
Creating a GTM acccount:
Please follow Google’s support page by clicking here.
How to get your GTM ID:
- Log into Google Tag Manager: Go to tagmanager.google.com and sign in with your Google account.
- Open a Container: Select the relevant GTM account, then click on the container you want to use.
- Locate the GTM ID: Inside the container, look in the top-right corner next to the “Submit” and “Preview” buttons.
The ID will be displayed in the format
GTM-XXXXXX
.
You will need this for the next step
Adding Tracking Codes in WordPress
- In your WordPress dashboard, go to netPark Settings.
- Look for the fields labeled Google Analytics 4 Code and Google Tag Manager. These are typically the second and third options in the settings.
- Enter your GA4 Measurement ID (e.g.,
G-XXXXXXX
) and/or your GTM Container ID (e.g.,GTM-XXXXXX
) in the appropriate fields. - Save your changes to apply the tracking codes.
Use the codes you obtained from the previous steps above.

UTM Data
UTM Tracking with netPark:
When UTM parameters are included in the URL, netPark captures and attaches them to all relevant events listed in the events section. For more information on UTM data click here.
Example: https://reservations.netpark.us/?utm_id=myId&utm_source=facebook&utm_campaign=myCamp
Which UTM parameters are tracked?
utm_id
– Campaign ID. Used to identify a specific campaign or promotion. This is a required keyutm_source
– Identifies the source of the traffic (e.g., Google, Facebook, Newsletter).utm_medium
– Marketing medium, for example: cpc, banner, email.utm_campaign
– Names the campaign associated with the traffic.utm_source_platform
– Indicates the advertising platform (e.g., Google Ads, Meta Ads).utm_term
– Identifies the keyword or term used in paid search campaigns.utm_content
– Differentiates similar content or links within the same ad or campaign.utm_creative_format
– Describes the type of creative used (e.g., banner, video, carousel).utm_marketing_tactic
– Helps specify the marketing strategy or tactic used.
These values are passed along with every captured netPark custom event. This enables you to analyze how users arrive at your site and how campaigns perform over time.
Events
All events will be in this format:
With “event” being the event name, and “eventModel:” being the parameters.
event:"fetchReservationPriceQuotes",
eventModel: {
startDate: "2025-03-28 20:00",
endDate: "2025-03-31 20:00",
promoCode: ""
},

Any data contained in the gtm object is automatically added by google tag manager.

Reservation Page

# | Event Name | Parameters | Description |
---|---|---|---|
1 | locationChange | newLocationCodeID: string | When the location is changed, sends over the new location in this format: location#-subLocation# |
2 | fetchReservationPriceQuotes | startDate: Date(“YYYY-MM-dd hh:mm”), endDate: Date(“YYYY-MM-dd hh:mm”), promoCode: string | When the customer clicks the button, sends over the start date, end date, and promo code |
3 | genericButtonPressed | buttonName: string, fromInfo: string | This is a generic button press event. buttonName will be the name of the button pressed. buttonName = “reservationLookup” here. |
4 | genericButtonPressed | buttonName: string, fromInfo: string | This is a generic button press event. buttonName will be the name of the button pressed. buttonName = “signIn” here. |
5 | showQuoteDetails | theQuote: quoteObject, fromClickingWidgetExtraInfo: string | This is sent when the info “i” is hovered. The quote will be all the quote details. fromClickingWidgetExtraInfo will be from which screen or webpage it was pressed. fromClickingWidgetExtraInfo is mostly pertinent in the app |
6 | userSelectedQuote | theQuote: quoteObject | When the customer clicks to select a quote, this event is sent. |

# | Event Name | Parameters | Description |
---|---|---|---|
1 | customerDetailsSubmitted | customerDetails: customerObject | Sends over the all the customer details. |

# | Event Name | Parameters | Description |
---|---|---|---|
1a | editServicesAddService | serviceAdded: serviceObject | When a service is selected the details of the service being added will be sent. |
1b | editServicesRemoveService | serviceRemoved: serviceObject | When a service is unselected the details of the service being removed will be sent. |
2 | clickFinalizeServiceChanges | services: serviceObject[] | When clicked, will send over an array of serviceObject’s. If “No Services” is pressed, then an empty array will be sent. |

# | Event Name | Parameters | Description |
---|---|---|---|
1 | reservationEditButtonClick | edit: string | When clicked, this will send over which part of the reservation form is now being edited. |
2 | clickFinalizeServiceChanges | services: serviceObject[] | When clicked, will send over an array of serviceObject’s. If “No Services” is pressed, then an empty array will be sent. |

# | Event Name | Parameters | Description |
---|---|---|---|
1a | genericButtonPressed | buttonName: string, fromInfo: string | This is a generic button press event. buttonName will be the name of the button pressed. buttonName = “showTOS” here. |
1b | genericButtonPressed | buttonName: string, fromInfo: string | This is a generic button press event. buttonName will be the name of the button pressed. buttonName = “closeTOS” here. |
2a | clckdBookReservationAndShowingTOS | fromInfo: string | If there are terms of service, then this event will be sent. |
2b | clickedSaveReservation | alsoCheckedSaveToAccountProfile: boolean fromInfo: string | If the reservation is saved with no errors this event is sent. alsoCheckedSaveToAccountProfile is if a new card was saved to an account |
2c | saveReservation | reservation: reservationObject | If the reservation information is correct with no errors this event is sent. |

# | Event Name | Parameters | Description |
---|---|---|---|
1 | clickedCancelReservationFromTOS | buttonName: string, fromInfo: string | This event is sent when the decline button is hit. |
2a | clickedBookReservationFromTOS | fromInfo: string | If there are terms of service, then this event will be sent. |
2b | saveReservation | reservation: reservationObject | If the reservation information is correct with no errors this event is sent. |
Login Popup

# | Event Name | Parameters | Description |
---|---|---|---|
1 | loginAttempt | email: string, location: string | This just . location in this format: location#-subLocation#. |
2 | genericButtonPressed | buttonName: string, fromInfo: string | This is a generic button press event. buttonName will be the name of the button pressed. buttonName = “forgotPassword” here. |
3 | genericButtonPressed | buttonName: string, fromInfo: string | This is a generic button press event. buttonName will be the name of the button pressed. buttonName = “signUp” here. |

# | Event Name | Parameters | Description |
---|---|---|---|
1 | genericButtonPressed | buttonName: string, fromInfo: string | This is a generic button press event. buttonName will be the name of the button pressed. buttonName = “continueAsGuest” here. |
2 | resetPassword | email: string | Sends email used to try resetting password. |
3 | genericButtonPressed | buttonName: string, fromInfo: string | This is a generic button press event. buttonName will be the name of the button pressed. buttonName = “backToSignIn” here. |
4 | genericButtonPressed | buttonName: string, fromInfo: string | This is a generic button press event. buttonName will be the name of the button pressed. buttonName = “signUp” here. |
Notes
fromInfo is which app screen the user was on when the button was pressed. fromInfo is only applicable in the customer loyalty app.