Connecting GA4
Connect GA4 to CleanClicks for server-side event delivery via Measurement Protocol and first-party script proxying.
CleanClicks sends conversion events to Google Analytics 4 via the Measurement Protocol and can proxy your GA4 client-side scripts through your first-party subdomain.
Plan Requirements
GA4 is available on the current Signal and Clarity plans. It is an analytics connection and does not use an ad-destination slot.
Which Property Receives Events
GA4 events are sent to the property and web stream configured for this domain. The connection flow can create a separate property or link an existing property you select. Check the displayed Measurement ID before accepting the connection.
Choosing an existing property adds CleanClicks events to that property's reporting. Creating a separate property keeps that reporting separate. Test for duplicate events alongside your existing collection; do not assume CleanClicks always uses a dedicated property or leaves a selected existing property untouched.
The exact delivery path depends on the installation, consent state, browser path, credentials, and accepted event.
Configuration
The guided GA4 connection offers a choice to create a separate property or use an existing property and web stream. Confirm the intended choice and Measurement ID. Creating an API Secret on an existing stream requires the explicit choice shown in that connection flow.
For manual Measurement Protocol configuration:
- Go to Configuration > Vendors tab.
- Select the intended domain and review its GA4 delivery configuration.
- Enter the intended web stream's Measurement ID (format:
G-XXXXXXXXXX). - Enter its API Secret.
- Save, then test an event in that same property.
The GA4 OAuth flow requests analytics.readonly and analytics.edit: read access supports reporting checks, and edit access supports the approved property, stream, and Measurement Protocol secret operations. Manual API credentials serve a different path. Review the current connection screen and Privacy Policy before granting access.
Finding Your Measurement ID
- Go to Google Analytics
- Navigate to Admin > Data Streams
- Click on your web stream
- The Measurement ID is displayed at the top (format:
G-XXXXXXXXXX)
Creating a Measurement Protocol API Secret
- In the same Data Stream settings, scroll to Measurement Protocol API secrets
- Click Create
- Give it a name (e.g., "CleanClicks")
- Copy the generated secret value
Server-Side Events (Measurement Protocol)
CleanClicks can send supported conversion events through GA4 Measurement Protocol after the installation has captured the required event, identifiers, and consent state.
Session attribution, geography, cookie lifetime, and event coverage depend on the current browser capture, consent state, first-party endpoint, GA4 property, and accepted event path. Verify the actual event in the intended property before treating the path as accepted.
GA4 First-Party Proxy (Signal or Clarity)
The first-party analytics proxy reduces dependence on third-party request paths on supported installations. Browser rules, blockers, consent choices, CSP, caching, and site configuration can still affect collection. Verify the actual property and event path before relying on the result.
Where to turn it on
There is no GA4 proxy switch on the Configuration > Advanced tab. That tab holds Event Bridges and Inbound Webhooks only. The control sits with your platform's install.
Shopify: go to Configuration > Ecommerce. The Shopify card carries a GA4 First-Party Mode section, and you set it up from card 4 of the Shopify guided setup further down that same tab. Open Setup steps for the theme snippet, then paste it just before the closing </head> tag in theme.liquid. Remove or comment out any existing GA4 or gtag.js scripts so the page does not track twice.
WordPress: in WP Admin, open CleanClicks, expand Advanced settings, and find the Analytics Proxies section. GA4 First-Party Proxy is on by default there. It skips itself when that Measurement ID is already firing on your site, to avoid double-counting. Leave GA4 Measurement ID blank unless you need to override the value pulled from your CleanClicks dashboard.
After either setup, check the network path, the destination GA4 property, consent behavior, and one real event.
Google Signals
Google Signals is off by default. New domains are created with the signals allowance off, and turning it on is a choice you make in the GA4 connection flow, where the checkbox reads Turn on Google Signals.
- On: age, gender, and interest data reaches GA4, and GA4 remarketing audiences become available.
- Off (default): demographics stay empty in GA4.
We recommend leaving it off. Demographics only come from visitors signed in to Google with Ads Personalization on, which is a fraction of your traffic rather than a census, and Google may hide report rows for small audience segments. It does not affect your Google Ads results, because CleanClicks sends conversions to Google Ads directly.
Measurement Protocol by platform
Purchase events reach GA4 through the API secret saved when you connected GA4. Nothing else needs adding for them.
Keep the Measurement ID and API Secret saved even when browser-side GA4 handles purchases. The Shopify pixel code generator reads both values, so clearing them breaks the browser path too.
Installing a plugin or a pixel is not by itself a reason to change the GA4 server-side setting. If you see duplicate GA4 purchases after an install, contact support rather than changing a delivery path yourself, so we can confirm which path fired.
Recommended GA4 settings
Set these on the GA4 side so the data CleanClicks delivers is retained and reportable:
| Setting | Recommended | Where | Why |
|---|---|---|---|
| Data retention | 14 months (the maximum on standard GA4) | Admin > Data Settings > Data Retention | The default is 2 months; explorations silently lose history beyond the retention window |
| Reset user data on new activity | On | Same screen | Keeps returning-visitor history alive |
| Internal traffic filter | Define + activate for your office/VPN IPs | Admin > Data Streams > Configure tag settings > Define internal traffic | Keeps your own team out of the recovered numbers |
| Timezone + currency | Match your commerce platform | Admin > Property Settings | Prevents day-boundary and revenue mismatches when you reconcile against store totals |
| Key events | Mark the events CleanClicks sends (e.g. purchase) as key events | Admin > Events | Key-event marking is what makes them count as conversions in reports |
| Google Signals | Optional. Leave it off unless you need demographics | Admin > Data Settings > Data Collection | If Signals is on in GA4 but you never turned on Google Signals in the CleanClicks connection flow, demographics stay empty by design |
Troubleshooting
| Issue | Solution |
|---|---|
| Events not in GA4 Realtime | Verify Measurement ID and API Secret. Events should appear in Realtime within 30 seconds. |
| Events show as "Unassigned" source | Session stitching may not have a matching GA4 session. This happens when the visitor had never loaded GA4 client-side. |
| Demographics not showing | Google Signals is off unless you turned it on in the GA4 connection flow. Turn it on there, and in GA4 under Admin > Data Settings > Data Collection. Allow 48 hours for demographic data to populate. |
| Duplicate events | Confirm which property received them, then contact support before changing a delivery path. |
Next: Usermaven