Google Analytics for the Climber App
Capitan has a built-in Google Analytics 4 (GA4) integration for the Climber App. Once you add your Google Analytics Measurement ID to your organization settings, Capitan automatically does two things on every page of your Climber App:
- Tracks page views and traffic — so you can see how many people visit your Climber App, which pages they land on, and where they came from (search, social, email campaigns, etc.).
- Tracks ecommerce events — so you can see your customers move through the buying journey: viewing a product, starting checkout, and completing a purchase, along with the revenue from each sale.
No code, tags, or scripts are required. You paste one ID into Capitan, click Save, and both kinds of tracking turn on across the entire Climber App.
New to Google Analytics? GA4 is Google's free analytics product. It collects anonymous, aggregated data about how people use your Climber App and presents it as reports and dashboards. This article assumes you already have (or can create) a free Google Analytics account.
Before you begin
You'll need a GA4 Measurement ID. It looks like G-XXXXXXXXXX (the letter "G", a dash, then a string of letters and numbers).
To get one:
- In Google Analytics, create a GA4 property for your business (or use an existing one).
- Inside that property, create a Web data stream pointed at your Climber App's web address.
- Copy the Measurement ID shown for that Web stream.
Google's own walkthrough is here: Find your G- Measurement ID.
⚠️ It must be the "G-" Measurement ID from a GA4 Web Stream — not an old Universal Analytics "UA-" ID, not a "G-" tag ID from a different stream type, and not a Measurement Protocol API secret. Capitan validates the format and will reject anything that isn't a valid GA4 Measurement ID.
Getting Started: Add your Measurement ID in Capitan
- On the Staff Site, go to Organization Settings.
- Find the Google Analytics 4 Measurement ID field.
- Paste in your
G-XXXXXXXXXXID. - Click Save.
That's the entire setup. From this point on, every Climber App page automatically loads the official Google tag (gtag.js ) and begins sending data to your GA4 property.
💡 Leave the "Tracking/Analytics Script" field empty for Google Analytics. That field is a separate, advanced tool for other trackers (see The Tracking/Analytics Script field below). For GA4, the Measurement ID field alone is all you need — Capitan builds and installs the full tracking script for you. Pasting a Google Analytics snippet into both places would cause double-counting.
What gets tracked automatically
Page views (traffic)
Because you provided a Measurement ID, Capitan injects the Google tag into the `` of every Climber App page. The standard GA4 page-view tracking is part of that tag, so a page view is recorded automatically each time a customer loads any page — the login page, the schedule, a membership purchase page, the confirmation screen, and so on.
This is what powers GA4's traffic reporting. With no extra work you'll be able to see:
- How many people visit your Climber App, and how that changes over time.
- Which pages are most and least visited.
- Where visitors come from — direct links, Google search, social media, or marketing campaigns (if you tag your links with UTM parameters).
- Real-time activity — who's on your Climber App right now.
You do not need to add anything to the "Tracking/Analytics Script" field to get page views. Page-view tracking is included automatically the moment you save a Measurement ID.
Ecommerce events (the purchase funnel)
On top of page views, Capitan sends three standard GA4 ecommerce events as customers move through a purchase in the Climber App. Together they form a funnel:
| Funnel stage | GA4 event | When it fires in the Climber App |
| 👀 Browsing | view_item |
The customer opens a specific product and is choosing who it's for / how many participants. |
| 🛒 Checkout started | begin_checkout |
The customer reaches the payment page for that product. |
| ✅ Purchase complete | purchase |
The customer reaches the confirmation page after paying. |
These events fire for every kind of product a customer can buy through the Climber App.
What information each event carries
view_item: the item's name and a unique item ID. (No price, because the final price isn't known until the customer chooses options.)begin_checkout: the item, the currency, and the value (the invoice total at checkout).purchase: everything inbegin_checkout, plus a transaction ID (the Capitan invoice number). This is the event that drives your revenue reporting in GA4.
The currency is your organization's configured currency (e.g. USD , GBP ), and the value is the full invoice amount, including any applicable taxes and fees.
Understanding the item names
Each tracked product is sent to Google Analytics with a human-readable item name (e.g. "Adult Annual Membership") and a structured item ID. The item ID uses a consistent prefix so you can tell product types apart and group them in reports:
| Item ID format | What it represents |
|---|---|
membership-{id} |
A membership |
pass-{id} |
An entry pass |
voucher-pack-{id} |
A voucher pack |
event-{id} |
A session or event booking |
membership-gift-{id} |
A gifted membership |
entry-pass-gift-{id} |
A gifted entry pass |
voucher-pack-gift-{id} |
A gifted voucher pack |
In most GA4 reports you'll work with the friendly item name, but the item ID is useful when you want to analyze a specific product or an entire category at once.
How to use this data in Google Analytics
Here's where the integration pays off. A few of the most useful things you can do once data is flowing:
1. Confirm it's working (Realtime). In GA4, open Reports → Realtime, then open your Climber App in another browser tab and click around. You should see your visit appear within seconds. Start a purchase and you'll see the begin_checkout and purchase events show up. (For deeper troubleshooting, Google's DebugView shows individual events as they arrive.)
2. See revenue and best-sellers (Monetization). Reports → Monetization → Ecommerce purchases breaks down items viewed, checkouts started, items purchased, and total revenue — by item name. This tells you which memberships, passes, and events actually sell through the Climber App, and how much money each brings in.
3. Find where customers drop off (Funnel exploration). In Explore → Funnel exploration, build a funnel of view_item → begin_checkout → purchase . If lots of customers view a membership but few start checkout — or many start checkout but don't finish — that's a concrete signal about where your online buying experience needs attention.
4. Measure your marketing (key events + campaign tracking). Mark the purchase event as a key event (GA4's term for a conversion). Then, when you tag the links in your emails, ads, and social posts with UTM parameters, GA4 will attribute purchases back to the campaign that drove them — so you can see which marketing actually produces sales. If you link GA4 to Google Ads, you can optimize ad spend against real Climber App revenue.
5. Re-engage shoppers who didn't finish (Audiences). Build an audience of people who triggered begin_checkout but not purchase — i.e., they started buying but didn't complete — and use it for remarketing.
6. Compare interest vs. sales per product. Because both view_item and purchase carry the product name, you can compare views to purchases for each product and spot items with lots of interest but weak conversion.
Good to know (limitations & details)
- It's not retroactive. Google Analytics only collects data from the moment you add your Measurement ID. It can't show you traffic or sales from before setup.
- Only Climber App purchases are tracked. Sales made by staff using the Staff Site Sell Screen or through your POS, and automatic recurring membership renewals, do not go through the Climber App checkout pages, so they are not sent to Google Analytics. Treat these numbers as "customer online activity," not your full revenue. Your Capitan reports remain the source of truth for total revenue.
- A purchase is counted when the confirmation page loads. If a customer pays but closes the tab before the confirmation screen appears, that purchase may not reach Google Analytics. Small discrepancies between GA4 and your Capitan revenue reports are normal and expected.
- Each sale is one line item at the full invoice total. A purchase is reported with a quantity of 1 and a price equal to the whole invoice — even when it covers several people (like a group membership) or multiple participants (like a group booking). Your total revenue in GA4 will be right; the per-item quantity breakdown is not itemized per person.
- Purchases are de-duplicated. The
purchaseevent uses the Capitan invoice number as its transaction ID, so a customer refreshing the confirmation page won't double-count the sale. - Reporting delay. Realtime and DebugView are nearly instant, but GA4's standard reports can take up to 24–48 hours to fully process data.
Advanced: the "Tracking/Analytics Script" field
Just below the Measurement ID field in Organization Settings is a larger box labeled Tracking/Analytics Script. Capitan injects whatever you put here into the <head> of every Climber App page.
Use this field only for analytics or tracking tools where Capitan doesn't have a dedicated integration: for example a Google Tag Manager container, a heatmap tool, or a third-party analytics provider. Paste in the snippet that tool gives you.
You do not need this field for:
- Google Analytics 4: use the Measurement ID field instead.
- Meta Pixel: use the dedicated Meta Pixel ID / Dataset ID field instead (it tracks the same view/checkout/purchase funnel for Meta advertising).
Putting a Google Analytics or Meta snippet here in addition to using the dedicated ID field will cause your data to be counted twice.
Technical reference (optional)
For the technically curious or your web developer. Non-technical users can stop here.
When a Measurement ID is set, Capitan adds the standard Google tag to the <head> of every Climber App page:
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
The gtag('config', ...) call is what sends the automatic page_view event on each page load. The ecommerce events are emitted on the relevant funnel pages. Example payloads:
// On a product page (choosing member / participants)
gtag('event', 'view_item', {
items: [{ item_id: 'membership-12', item_name: 'Adult Annual Membership' }]
});
// On the payment page
gtag('event', 'begin_checkout', {
currency: 'USD',
value: 75,
items: [{ item_id: 'membership-12', item_name: 'Adult Annual Membership', price: 75, quantity: 1 }]
});
// On the confirmation page
gtag('event', 'purchase', {
transaction_id: '48213', // the Capitan invoice number
currency: 'USD',
value: 75,
items: [{ item_id: 'membership-12', item_name: 'Adult Annual Membership', price: 75, quantity: 1 }]
});