> For the complete documentation index, see [llms.txt](https://wishlistsuite-1.gitbook.io/wishlistsuite-help-doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wishlistsuite-1.gitbook.io/wishlistsuite-help-doc/app-overview/integrations/google-analytics-4-integration.md).

# Google Analytics 4 Integration

### Overview

Send your store's wishlist activity straight into GA4 - no code, no separate dashboard.

Google Analytics 4 is Google's free website analytics tool. It shows you how many people visited your store, which pages they viewed, and what they bought - all in one dashboard.

WishlistSuite connects directly to that same dashboard, so wishlist activity (adds, shares, price-drop emails, and more) shows up right next to your regular traffic and sales data. No separate tool to check.

***

### What this integration does

The integration has **two independent parts**. They're controlled by separate settings, and turning one off has zero effect on the other.

|                         | What it sends                                              | How                                            |
| ----------------------- | ---------------------------------------------------------- | ---------------------------------------------- |
| **Wishlist events**     | 12 specific wishlist actions                               | Sent directly from our server to GA4           |
| **Site-wide analytics** | Store-wide traffic (Active Users, Views by page, Audience) | A standard GA4 tracking tag on your storefront |

***

### How to connect

Login with your existing Google Analytics account, or create one if you don't have it yet.

1. In **GA4**: go to **Admin → Data Streams**, select your web stream, and copy the **Measurement ID** (looks like `G-XXXXXXX`).
2. On the same page, scroll to **Measurement Protocol API secrets → Create**, and copy the **API Secret**.
3. In **WishlistSuite**: go to **Settings → Integrations → GA4**, paste both values, and hit **Save**.
4. You're connected now. Click on Configure. Here, you can choose which wishlist events and reminders are sent to GA4.

<figure><img src="https://3404640073-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0QTEjqEnObTgbPqrUM46%2Fuploads%2FibOiN8yWO4434FnQQMfx%2FScreenshot%202026-08-13%20at%207.26.00%20PM.png?alt=media&amp;token=f016e682-7454-4ec5-b80b-7bf74eec7be1" alt=""><figcaption></figcaption></figure>

Your credentials are checked against GA4 before saving - if either one is wrong, nothing is stored and you'll see an error right away.

***

### The 12 wishlist events we send

| Event                    | Fires when                                | Product / value data                                     |
| ------------------------ | ----------------------------------------- | -------------------------------------------------------- |
| `AddToWishlist`          | Product added to wishlist                 | item\_id, item\_name                                     |
| `RemoveFromWishlist`     | Item removed                              | item\_id, item\_name                                     |
| `ViewWishlist`           | Wishlist page viewed                      | —                                                        |
| `ShareWishlist`          | Share link used                           | content\_type                                            |
| `WishlistItemPurchased`  | Order contains a wishlisted product       | currency, value, item\_id, quantity, price               |
| `PriceDropAlert`         | Price-drop reminder sent                  | currency, value (new price), item\_id, item\_name, price |
| `BackInStockAlert`       | Back-in-stock reminder sent               | same shape as above                                      |
| `LowStockAlert`          | Low-inventory reminder sent               | same shape as above                                      |
| `WishlistReminder`       | "Kept too long" reminder sent             | currency, value, item\_id, item\_name, price (if cached) |
| `SaveForLater`           | Item moved to "saved for later" from cart | Product ID, name                                         |
| `FrequentlyBrowsedAlert` | Frequently-browsed digest sent            | Product, price, currency                                 |
| `SavedForLaterAlert`     | Saved-for-later reminder sent             | Product, price, currency                                 |

The `add_to_wishlist`, `remove_from_wishlist`, and `view_wishlist` events also carry whether the customer is a guest or logged in, plus their current wishlist item count - so you can segment reports by customer type.

Each event has its own on/off switch in your GA4 settings - turning one off only stops that event; the rest keep working.

**Privacy note:** no personal info (name, email, phone) is ever sent - only product IDs, prices, and guest/logged-in status.

***

### Site-wide analytics toggle

This is separate from the 12 events above. In your settings it reads:

> "Populates GA4's Active Users and Views by page reports for your whole store, using the Measurement ID above. We automatically detect if Google Analytics is already installed on your storefront and skip adding a duplicate - safe to leave on either way."

* **Off:** GA4 only shows the 12 wishlist events. None of GA4's built-in reports (Active Users, Realtime map, Audience, Views by page) will have any data.
* **On:** adds Google's standard tracking tag to every storefront page, so those built-in reports start working. If you already have Google Analytics installed elsewhere, we detect it and skip adding a duplicate - no double-counted pageviews.

This toggle has **no effect** on the 12 wishlist events - those go server-to-server, independent of what happens in the browser.

***

### If you already have GA4 set up

|                      | Our toggle **off**                                                | Our toggle **on**                                                  |
| -------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------ |
| **Already have GA4** | Your existing data keeps flowing, untouched                       | We detect yours and skip injecting ours - same result              |
| **No analytics yet** | Only our 12 wishlist events show; no Active Users / Views by page | We inject our own tag - Active Users / Views by page start working |

The toggle only matters if you don't already have analytics installed. If you do, the outcome is identical whether it's on or off.

***

### How to verify it's working

1. Confirm the GA4 setting shows **"Connected."**
2. In GA4, open **Reports → Realtime → Realtime overview** and keep it open.
3. On your storefront, add a product to a wishlist.
4. Within a few seconds, `add_to_wishlist` should appear under **Event count**.
5. To have an event count as a "key event": go to **GA4 → Admin → Events**, find the event (it must have fired at least once already), and toggle **Mark as key event**.
6. To see the guest/logged-in breakdown: **GA4 → Admin → Custom definitions**, and confirm `customer_type`, `has_wishlist`, and `wishlist_item_count` exist as User-scope dimensions.
7. To actually view that breakdown: **GA4 → Reports → Reports snapshot**, find the **"Active users by User property"** card, open its dropdown, and select `customer_type`. It only appears in that dropdown once step 6 is done.

***

### Events you'll see beyond our 12

Once the GA4 tracking tag is loading, ours or your own, GA4 automatically collects its own built-in events too. These aren't from WishlistSuite; they're Google's standard tag doing its normal thing, and they never overlap with our 9 custom events.

**Always-on:** `session_start`, `first_visit`, `user_engagement`

**Enhanced Measurement (on by default):** `page_view`, `scroll`, `click` (outbound links), `view_search_results`, `video_start`/`progress`/`complete`, `file_download`, `form_start`/`form_submit`

These populate GA4's Active Users, Views by page, Audience, and Realtime map reports.

Here is a structured overview of all the cards, metrics, and tables on your Google Analytics (GA4) Realtime Overview page, formatted clearly for inclusion in a help document or internal documentation.<br>

***

### Top Summary Cards (Real-Time Traffic Counters)

| **Metric Card**                 | **Description**          | **What It Measures**                                                                                                                   |
| ------------------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
| Active Users in Last 30 Minutes | High-Level Traffic       | The total number of unique users who initiated a session or triggered an event on your site/app in the past 30 minutes.                |
| Active Users in Last 5 Minutes  | Immediate Activity       | The total number of unique users currently active on your site/app within the immediate 5-minute window.                               |
| Active Users Per Minute         | Real-Time Timeline Chart | A minute-by-minute bar graph showing user activity trends over the last 30 minutes to help identify sudden spikes or drops in traffic. |

### Realtime Report Tables

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Table Name</strong></td><td><strong>Focus Area</strong></td><td><strong>Key Data / Insights</strong></td></tr><tr><td>Active Users by First User Source</td><td>Traffic Origin</td><td>Shows the specific channels, search engines, or referral sites (e.g., <code>google</code>, <code>direct</code>, <code>newsletter</code>) that brought users to your site for their very first visit.</td></tr><tr><td>Active Users by Audience</td><td>User Segmentation</td><td>Groups current active users into predefined segments (e.g., <em>All Users</em>, <em>Purchasers</em>, <em>Returning Visitors</em>, or custom remarketing audiences).</td></tr><tr><td>Views by Page Title and Screen Name</td><td>Content Popularity</td><td>Lists the web page titles or mobile app screen names that active users are viewing right now, ordered by traffic volume.</td></tr><tr><td>Event Count by Event Name</td><td>User Interaction</td><td>Tracks all individual actions triggered by active users in real time (e.g., <code>page_view</code>, <code>session_start</code>, <code>scroll</code>, <code>user_engagement</code>).</td></tr><tr><td>Key Events by Event Name</td><td>Conversions &#x26; Goals</td><td>Displays high-value interactions configured as Key Events (e.g., <code>purchase</code>, <code>sign_up</code>, <code>generate_lead</code>, <code>file_download</code>).</td></tr><tr><td>Active Users by User Property</td><td>Custom Demographics</td><td>Categorizes active users by custom parameters or metadata attached to user profiles (e.g., user status, subscription tier, language preference).</td></tr></tbody></table>

***

> Note on Account Status: If a card or table displays "No data available" or 0, it indicates that no active user traffic or event tracking has been recorded during the past 30-minute window.

***

### FAQ

**Do I need any coding knowledge to set this up?** No, it's a two-field paste-and-save setup inside WishlistSuite's settings.

**Will this double-count my pageviews if I already use GA4?** No. We auto-detect an existing GA4 install and skip adding our own tag.

**Can I turn off just one wishlist event and keep the rest?** Yes - each of the 12 events has its own independent on/off switch.

**Does this send any customer personal information to GA4?** No. Only product IDs, prices, and guest/logged-in status are sent - never names, emails, or phone numbers.

**Why don't I see Active Users or Views by page in GA4?** That data only populates if the site-wide analytics toggle is on (or you already have your own GA4 tag installed). The 9 wishlist events are separate and don't feed those reports.

***

{% embed url="<https://www.youtube.com/watch?v=rX5tIQq7A9I>" %}
