This guide lists every analytics event sent by the player-facing web app. Use it when you're building reports in Google Analytics 4, setting up goals, or working out what a particular event name means.
Prerequisites
Google Analytics (required)
Before any of these events can be tracked for your club, you need to complete two steps:
Create your own Google Analytics account. Your club needs its own Google Analytics (GA4) account and property, so the data belongs to you.
Send your G tracking ID to PadelOS support. This is the ID that starts with G-. Once support has it, the events below will start flowing into your property.
Until both steps are done, no events are sent to your club's analytics.
Meta tracking (optional)
If your club also wants Meta (Facebook) tracking, share your Meta Pixel ID with PadelOS support as well. Pixel events are only sent once this ID has been provided.
How Tracking Works
Where events go: Events are sent to the Google Analytics 4 (GA4) property configured for your club, and, where configured, to a Meta (Facebook) Pixel.
Consent is required: Tracking only starts once the visitor has accepted statistics cookies (via Cookiebot). Pixel events also require marketing consent. Visitors who decline aren't tracked, so every count you see represents consenting users only.
Category and label: Each event carries a category (the flow area) and a label (a short human description) as event parameters, alongside the event name.
Automatic Page Views
Every in-app navigation fires a standard GA4 page_view event (with page path, title, and URL), plus a spa_page_view event on the dataLayer. If a Meta Pixel is configured, each navigation also fires a Pixel PageView.
These fire on every route change without any user interaction. Every event in the sections below is interaction-driven.
1. Account & Sign-In
Login
Event name | When it fires |
| The visitor opens the login dialog (from the site header buttons or the mobile navigation drawer). |
| A login attempt succeeds. |
| A login attempt fails (wrong credentials, server error, etc.). |
Account creation
Event name | When it fires |
| The visitor switches from the login dialog to the sign-up screen. |
| An account sign-up attempt fails. Currently fired from the public payments flow, where guests can create an account while paying. |
Forgot password
Event name | When it fires |
| The visitor opens the forgot password screen from the login dialog. |
| The password-reset email is sent successfully. |
| Sending the password-reset email fails. |
Change password (logged-in users)
Event name | When it fires |
| The user correctly confirms their current password to unlock the change-password form. |
| The password is changed successfully. |
| A password change attempt fails (validation error or server error). |
2. Court Booking
This is the main flow: a player picks a club, searches for a slot, configures the booking, and pays.
Finding a slot
Event name | When it fires |
| The player clicks Book Now on a club in their clubs list. This is the entry point into the booking flow. |
| The player changes the date in the booking panel's date filter. |
| The player selects an available court and time slot in the slot picker. |
Building the booking
Event name | When it fires |
| The player adds another player to the booking. |
| The player removes a player from the booking. |
| The player chooses to pay for the whole booking themselves (single payment). |
| The player chooses to split the cost between players. |
| The player adds or changes extras (e.g. rackets, balls) on the booking. |
| The player toggles the use wallet switch to pay with wallet credit. Fired both during checkout and from the booking-details screen. The label parameter distinguishes the two. |
Checkout and payment outcome
Event name | When it fires |
| The booking is created successfully at checkout. This is the one booking event without the |
| Creating the booking fails at checkout. |
| The booking's online payment completes and the booking is confirmed (payment-result screen). |
| The booking's online payment fails, leaving the booking unpaid (payment-result screen). |
| Optional ad-conversion tracking for clubs running Google Ads campaigns. When a conversion tag is configured for your club, this event fires together with |
3. My Bookings (Activity List)
These events fire from the logged-in player's bookings overview.
Event name | When it fires |
| The player clicks an upcoming booking in the list. |
| The upcoming-booking detail sheet opens. Always fired together with the click event above (two events per click). |
| The player clicks a recurring booking in the list. |
| The recurring-booking detail sheet opens (fired together with the click above). |
| The player clicks a past booking in the list. |
| The past-booking detail sheet opens (fired together with the click above). |
| The player clicks Cancel booking on an upcoming booking. |
| The player confirms the cancellation in the confirmation prompt. |
4. Events, Trainings & Tournaments
One shared set of registration events covers open events, training sessions, and tournaments.
Registration flow
Event name | When it fires |
| A registration completes successfully, either directly in the registration form or after a successful online payment on the payment-result screen. |
| A registration attempt fails. |
| The player toggles the use wallet switch while registering for an event or training. |
| The player adds a guest to their registration. |
| The player removes a guest from their registration. |
My activities (registered events list)
Event name | When it fires |
| The player clicks an upcoming or active event in their activities list. |
| The player clicks a past event in their activities list. |
| The player opens the registration details of an active event, training, or tournament. |
| The player opens the registration details of a past event, training, or tournament. |
5. Memberships & Packages
Purchasing a package
Event name | When it fires |
| The player clicks Proceed to payment on a package or membership. |
| The purchase completes successfully, either paid directly (e.g. with wallet) or after a successful online payment on the payment-result screen. |
| The purchase attempt fails. |
My memberships list
Each click on a membership row fires two events: the click itself and a details opened event.
Event name | When it fires |
| The player clicks an active package or membership row. |
| The active package's details open (fired together with the click above). |
| The player clicks an expired package or membership row. |
| The expired package's details open (fired together with the click above). |
6. Wallet & Offers
Wallet overview
Event name | When it fires |
| The player clicks a club in their wallet list. |
| The club's wallet view opens (fired together with the click above, so two events per click). |
| The player clicks a top-up offer in the wallet's offers slider. |
Wallet top-ups and offer purchases
Purchases of wallet credit fire a pair of events: one under the Wallet Tab category and one under the Offers category, for the same outcome.
Event name | When it fires |
| A wallet top-up or offer payment succeeds. |
| A wallet top-up or offer payment fails. |
| Fired alongside the wallet success event when the purchase came from an offer. |
| Fired alongside the wallet failure event when the purchase came from an offer. |
| The player clicks Retry after a failed offer payment. |
Transactions
Event name | When it fires |
| The player clicks a transaction row in their wallet history. |
| The transaction detail view opens (fired for wallet-type transactions, together with the click above). |
7. Profile
Event name | When it fires |
| The player clicks Edit on their profile page. |
| The player clicks Save on the profile edit form. |
| The profile update is saved successfully. |
| The profile update fails (validation or server error). |
8. General UI
Event name | When it fires |
| The player changes the app language with the language switcher. |
Defined but Not Currently Firing
The following events exist in the tracking configuration but aren't wired to any live UI at the moment. They will show zero traffic. If they appear in older data, they came from previous app versions.
Event name | Intended meaning |
| Player selects an available time slot. |
| Player clicks the add-player field during booking. The identically named event is live in the events flow as add guest. |
| Player changes the time filter. |
| Player changes the duration filter. |
| Player opens the court filter panel. |
| Player applies court filters. |
| Player clears court filters. |
| Player clicks an event in a public event listing. |
| Player selects a package before checkout. |
| Player closes the package purchase dialog. |
| Player browses the offers slider. |
| Player opens a settings dropdown. |
Reading the Data: Things to Know
Paired events: Several interactions intentionally fire two events at once, such as a list-row click plus a details open, or a wallet payment result in both the Wallet and Offers categories. Don't count these pairs as separate user actions.
Naming exceptions:
booking_successhas nopl_prefix, and the login events usepl_logon_*rather thanpl_login_*.Shared event names:
pl_bookings_use_wallet_btn_clickedis used for both the checkout and the booking-details wallet toggle, so distinguish them by label.pl_events_enters_player_emailis the guest added event in registrations.Consent: All counts reflect only visitors who accepted statistics cookies.