Ads & analytics
Ballot Signal + Google Analytics 4
What is Google Analytics 4?
Makes the supporter funnel visible in the analytics tool the campaign already reviews every Monday.
It sits in the Ads & analytics category of a campaign stack. Server-side conversion signal — for consented supporters only.
Who uses it
Nonpartisan. Used across both parties and by nonpartisan organizations.
How the Ballot Signal + Google Analytics 4 integration works
Supporter-record creation can be sent to GA4 as a custom event via the Measurement Protocol, carrying non-identifying parameters — intent signal, page path, consent categories granted — so your analytics reflect real supporter conversion without pushing personal data into an analytics property.
What syncs
- Custom events
- Event parameters
Field mapping
The supporter record is the same shape everywhere. What changes is where each field lands. The full record is documented on what you get.
| Supporter record | Event | Notes |
|---|---|---|
| firstName, lastName | Server-side conversion event | Left empty rather than guessed when resolution is not confident. |
| Hashed identifier (SHA-256) | Primary match key. Lowercased before hashing. | |
| phone | Hashed identifier (SHA-256) | Present does not imply consent to be contacted on it. |
| addressLine1, city, state, zip | Not sent | Third dedupe fallback. |
| consentTimestamp | Event parameters (non-identifying) | ISO 8601, UTC. |
| consentVersion | Event parameters (non-identifying) | The language in force at the moment of consent. |
| consentSource | Event parameters (non-identifying) | The exact page URL where consent was captured. |
| consentCategories | Event parameters (non-identifying) | Normalized from your consent platform. |
| intentSignals | Event name | Donate-page, volunteer-page, issue-page and any you define. |
| utmSource, utmMedium, utmCampaign, referrer | Event parameters | Carried verbatim. |
| dedupeKey | Match key | Lowercased email hash. Match order: dedupeKey, then phone, then name + address. |
How to set it up
- 1
Create a Measurement Protocol API secret in your GA4 data stream settings.
- 2
Add GA4 as a Ballot Signal destination and paste the measurement ID and API secret.
- 3
Name your custom event and register the parameters as custom dimensions in GA4.
- 4
Confirm analytics_storage is required in your consent mapping.
- 5
Verify events arrive in DebugView before relying on the reports.
Why it matters
Makes the supporter funnel visible in the analytics tool the campaign already reviews every Monday.
Related integrations
All Ads & analytics →Meta Conversions API
Political ad budgets are optimized on conversion signal, and most campaigns are feeding the algorithm almost nothing.
Google Ads
Search intent from voters looking up a candidate by name is some of the cheapest, highest-intent traffic in politics — and worth measuring properly.
Segment
Where a large organization already centralizes customer data, adding a source beats adding another point-to-point integration.
mParticle
Enterprise CDP with a first-class consent model of its own — a natural fit once the connector exists.
Ballot Signal + Google Analytics 4: questions
Is the Google Analytics 4 integration available today?
Via webhook. Not a native connector. This works today through our signed universal webhook, and someone on your side (or your consultant) wires up the endpoint. Full supporter record, full consent record, no UI.
What authentication does the Google Analytics 4 integration use?
Measurement Protocol API secret. Credentials are stored encrypted and are never rendered back into the interface after entry.
Will this create duplicate records in Google Analytics 4?
No, assuming you leave deduplication on. We match on the lowercased-email hash first, then phone, then name plus address. On a match we update rather than create, and only the fields you have marked overwritable.
Does the consent record travel into Google Analytics 4?
Yes. Consent timestamp, consent version, consent source URL and granted categories are included in every push, by default, and there is no configuration that strips them. That is the point of the product.
See what your own website already knows.
Book a 20-minute walkthrough. We will look at your site's current consent posture first — that part is useful whether or not you buy anything.