Skip to main content

Analytics and Tracking

Your webstore can send visitor activity to Google Analytics, Google Tag Manager and Apollo. This page explains how to connect each one, which events your webstore sends, and how visitor consent controls all of it.

You'll find all three in the Analytics and Tracking section of your Webstore Settings page.

Choosing Google Analytics or Google Tag Manager​

Use one or the other, not both:

UseWhen
Google AnalyticsYou only want page views in GA4. Nothing to set up beyond the ID.
Google Tag ManagerYou want the events below, Google Ads conversions, or other tags such as a Meta Pixel.

The Dashboard won't save both. If you use Tag Manager, add your GA4 tag inside your container instead.

Google Analytics​

  1. In GA4, go to Admin → Data streams, open your web stream and copy the Measurement ID. It starts with G-.
  2. Paste it into Google Analytics Measurement ID on your Webstore Settings page.
  3. Publish your webstore.

Your webstore is a single-page app: moving between pages doesn't reload the browser, so your webstore sends GA4 a page view itself each time a visitor moves to a new page. Turn off Page changes based on browser history events under Enhanced measurement → Page views → Show advanced settings on your web stream. If it's on, GA4 counts each of those page changes twice.

note

The Dashboard only accepts GA4 Measurement IDs. If your settings still have an old Universal Analytics ID (UA-...), replace it with your GA4 Measurement ID. The Webstore Settings page won't save until you do.

Google Tag Manager​

  1. In Tag Manager, copy your Container ID from the top of your workspace. It starts with GTM-.
  2. Paste it into Google Tag Manager Container ID on your Webstore Settings page.
  3. Publish your webstore.
warning

Don't paste a GA4 Measurement ID (G-...) into the Tag Manager field. Google loads an empty container for it, so your webstore looks connected but measures nothing. The Dashboard rejects a G- ID in that field for this reason.

With Tag Manager, your webstore doesn't send page views itself, so make sure your GA4 tag counts page changes within your webstore. Either turn on Page changes based on browser history events under Enhanced measurement → Page views → Show advanced settings on your web stream, or fire your page view tag on a History Change trigger. Otherwise GA4 only counts the first page of each visit.

Events your webstore sends​

These events go to your Tag Manager container's data layer. They're only sent when you've connected Google Tag Manager, not with a Google Analytics ID alone.

EventSent when
add_to_cartA visitor adds items to a set list, including when they create a new set list with an item
quote_request_submitA visitor's quote request has been successfully submitted
contact_form_submitA visitor's contact form has been successfully sent

What's in each event​

add_to_cart and quote_request_submit carry the items in GA4's standard ecommerce format:

{
event: 'quote_request_submit', // or 'add_to_cart'
ecommerce: {
currency: 'USD',
value: 150, // total of price × quantity
items: [
{
item_id: 'CHAIR-1', // the item's SKU, or its ID if it has no SKU
item_name: 'Eames Lounge Chair',
item_category: 'Furniture', // the item's 1st tag
item_category2: 'Seating', // 2nd tag
item_category3: 'Lounge Chairs', // 3rd tag
item_variant: 'Walnut', // only for items with variants
price: 50,
quantity: 3,
},
],
},
}

A few things to know about these values:

  • Price and value are list prices. They're the rates shown on your webstore, multiplied by quantity, so they're an estimate. They don't account for rental length, discounts or anything you change when you prepare the quote.
  • Hidden prices stay hidden. Anyone can read the data layer in their browser, so items with hidden prices are sent without a price and left out of the value.
  • Categories come from your first three item tags. They're meant to be department, category and subcategory, in that order. If your tags are in a different order, your category reports will be too.
  • add_to_cart only counts new items. When a visitor adds several items to an existing set list at once, items already on that list are left out.
  • quote_request_submit only counts real submissions. It isn't sent if the request is turned away, for example because every item is self-pick, and reloading the thank-you message doesn't send it again.

contact_form_submit has one parameter, form_source, naming the form the visitor used, such as Contact Us.

Sending events to GA4​

For each event you want in GA4:

  1. In Tag Manager, create a Custom Event trigger with the event name, such as add_to_cart.
  2. Create a Google Analytics: GA4 Event tag with the same event name, fired by that trigger.
  3. For add_to_cart and quote_request_submit, open More settings → Ecommerce, tick Send Ecommerce data and choose Data Layer as the source.
  4. Submit and publish your container.
note

GA4 only shows item details in its ecommerce reports for its own ecommerce event names, such as add_to_cart. quote_request_submit is a Propcart event name, so GA4 records it and its value but not its items. To see the requested items in GA4's ecommerce reports, give the GA4 tag an ecommerce event name of your choice instead.

To count quote requests as a Google Ads conversion, add a Google Ads Conversion Tracking tag fired by a quote_request_submit Custom Event trigger. To pass the estimated value, create a Data Layer Variable for ecommerce.value and use it as the tag's Conversion Value, with ecommerce.currency as the Currency Code.

Apollo​

Apollo identifies the companies visiting your webstore, so your sales team can follow up.

  1. In Apollo, copy the website tracking script it gives you. Find the 24-character appId inside it.
  2. Paste just that ID into Apollo App ID on your Webstore Settings page.
  3. Publish your webstore.

Apollo follows the same consent choice as Google Analytics. It stores its data in the visitor's browser storage rather than in cookies, and it loads LiveIntent, a third-party identity service. Mention both in your own privacy policy.

Every tag on this page waits for the visitor's consent, and your webstore decides what that means based on where the visitor is:

Visitor is inBefore they chooseBanner buttons
The EEA, the UK or SwitzerlandNothing loads until they click AcceptDecline / Accept
Anywhere elseTags load as normalOpt Out / Got it

Your webstore works out the visitor's region from their browser's time zone, so no location lookup is needed and pages load as fast as possible.

  • Declining stops tracking straight away. Google Analytics cookies are deleted and Apollo's stored data is cleared. With Tag Manager or Apollo, the page reloads once so their scripts stop running.
  • Global Privacy Control is always honoured. A visitor whose browser sends it never sees the banner, and no tags load for them, even if they clicked Accept before. Some browsers, such as Brave and DuckDuckGo, send it by default.
  • Visitors can change their mind from the Cookie Policy page on your webstore (/legal/cookie-policy).

If you add advertising tags to your Tag Manager container, such as Google Ads or a Meta Pixel, they load under the same choice. Make sure your own privacy policy covers them.

info

Your webstore uses its own consent banner. It doesn't send Google Consent Mode signals or connect to third-party consent tools such as Cookiebot or OneTrust. Visitors who haven't consented don't load Google's tags at all.

What isn't tracked​

  • Creating an empty set list, or sharing or emailing a set list.
  • A quote request becoming an order. That happens later, in your Dashboard, after the visitor has left your webstore. You can see which quote requests became orders on each quote request in the Dashboard.
  • The Add to Cart button for items customers buy outright.

Testing your setup​

Use Preview in Tag Manager to watch your events arrive as you click around your live webstore. For a direct GA4 connection, use Realtime in GA4.

If nothing shows up:

  • Publish first. Your IDs are built into your webstore, so changes only take effect the next time you publish.
  • Accept the banner, or turn analytics back on from the Cookie Policy page if you declined earlier.
  • Turn off Global Privacy Control and ad blockers in the browser you're testing with. Either one stops every tag.