Connect Google Analytics and set up cookie consent
Connect your GA4 property and web data stream, and how the cookie banner handles analytics and advertising consent.
You connected Google Analytics, opened your GA4 reports, and saw nothing. That is the most common moment of doubt on this page, and it is almost never a broken connection. Two things have to be true before a single event leaves your storefront: the visitor has to allow analytics, and you have to tick the tagging toggle below. Until both happen, nothing loads. By design.
One more thing before you start: GA4's standard reports take hours to fill in. Use GA4's real-time view to confirm the tag is working within minutes.
Connect your GA4 property
You do not paste a tracking ID. You sign in with Google and pick the property.
1. Open Settings, then Integrations, then Google Analytics.
2. Click Connect Google Analytics and sign in with the Google account that can see your GA4 property.
3. Choose your property from the GA4 property dropdown (properties are grouped by Google account, in case you manage several).
4. Choose your Web data stream. Your measurement ID (the G- ID) appears once you pick it, so you can check it against your GA4 admin.
5. Optional: paste your Google Tag Manager container (optional) ID (the GTM- ID) if you run your own ads or conversion tags through GTM.
6. Tick Enable tagging on my customer-facing storefront.
7. Click Save configuration.
Only owners and admins can change this connection. To switch accounts, use Disconnect and start over.
A note on GTM, worth reading before you paste an ID in. A GTM container is a channel for running other companies' code on your storefront. Anything you add to it (advertising pixels, session recorders, chat widgets) loads for your customers, and OnTote cannot see what is in it. Our cookie banner names only the vendors we know about, so it will not name yours. Declaring those vendors in your own privacy policy, and confirming you are allowed to load them, is your job.
How the cookie banner works
The first time someone visits your storefront, they see a consent banner before anything reaches Google. Three categories, two of them optional:
- Strictly necessary is always on. It remembers the visitor's choice, keeps them signed in, and holds their in-progress booking. Nothing else.
- Analytics lets your store load Google Analytics. Allowing it shares the visitor's IP address, the pages they view, and browser information with Google, and lets Google set its _ga cookies (about two years).
- Advertising is separate. It lets Google measure which ads led to a booking and personalize the ads the visitor sees elsewhere. Allowing one does not allow the other.
Visitors can accept everything, reject everything, or choose each purpose on its own. Refusing either optional category changes nothing else on the site. Nothing analytics or advertising related loads or sends until the visitor allows it: OnTote does not fire silent pings to Google before consent, so your reported traffic will read lower than a site that does. That is a deliberate tradeoff, not missing data.
Visitors can change their mind any time. The Cookie preferences link in your storefront footer reopens the banner, and the Cookies link opens the full cookie policy. The policy links only appear when tagging is enabled.
One honest caveat: the banner covers the vendors OnTote knows about. Your privacy disclosures for everything else on your storefront are your responsibility.
Which events OnTote sends to GA
Every event fires only after the visitor has allowed analytics. The funnel, in order:
- page_view: every page, fired once per page (first load and each navigation).
- view_item_list: your catalog page, after the visitor picks a location.
- view_item: a tote pool or package page.
- add_to_cart: when a visitor increases a tote quantity. The event carries only the added amount, not the whole booking.
- view_cart: the cart page.
- begin_checkout: the checkout page.
- purchase: a completed booking, fired once per session. The value is the booking estimate (deposits excluded, since they are refundable and not revenue), not the amount Stripe captured.
- generate_lead: a submitted quote request. No value attached, since quote-mode stores show no prices.
Two things worth knowing about the numbers. Prices on events are in your store currency with its ISO code attached. And first-touch utm parameters (utm_source, utm_medium, utm_campaign, and the rest) are captured when the tag loads, so clicks from third-party moving and rental directories attribute to the right source instead of collapsing into direct.
If it looks wrong
- GA4 shows nothing a day after connecting. Check the tagging toggle first. Reopen Settings › Integrations › Google Analytics and confirm Enable tagging on my customer-facing storefront is ticked and you clicked Save configuration.
- You see no events for visitors who declined. Expected. No consent, no tag, no events. Test in a fresh browser session where you accept.
- You connected with the wrong Google account. The GA4 property dropdown lists every property the signed-in account can see. Click Disconnect, sign in with the right account, and check the measurement ID against your GA4 admin.
Updated October 9, 2026