Consent & privacy

Ballot Signal + Google Consent Mode v2

Live Native — API key Nonpartisan n/a (client-side signal)

What is Google Consent Mode v2?

The de facto consent grammar for the web. If your Consent Mode implementation is correct, ours inherits it for free.

It sits in the Consent & privacy category of a campaign stack. Signals we consume, never signals we override.

Who uses it

Nonpartisan. Used across both parties and by nonpartisan organizations.

How the Ballot Signal + Google Consent Mode v2 integration works

A signal we consume, not a destination. Ballot Signal reads the gtag consent state from the dataLayer and maps the four Consent Mode v2 signals into our normalized consent object. All four should default to 'denied' in an inline head script before any tag loads; we act only on a gtag('consent','update', …) that moves the relevant signals to 'granted'. If ad_user_data or ad_personalization stays denied, no ad-destination event is ever generated for that visitor.

What syncs

  • ad_storage
  • analytics_storage
  • ad_user_data
  • ad_personalization

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 field mapping
Supporter record Consent signal Notes
— (inbound) Consent category state Read from this platform, not written to it.
consentCategories Normalized internal consent object Their category names mapped onto ours.
consentTimestamp Captured at the moment of the affirmative act Stored on every supporter record produced afterwards.
consentVersion Your configured policy version string A version bump re-asks the visitor.
consentSource Page URL where the consent event fired Exact URL, not just the domain.

How to set it up

  1. 1

    Add an inline script in the head, before any tag, setting all four Consent Mode v2 signals to denied by default.

  2. 2

    Ensure your consent management platform issues gtag('consent','update', …) when a visitor accepts.

  3. 3

    Install the Ballot Signal snippet after the defaults script.

  4. 4

    In Ballot Signal, choose which signals are required — analytics_storage for identification, plus ad_user_data and ad_personalization for any ad destination.

  5. 5

    Test in a private window: deny, confirm nothing fires; accept, confirm the signal appears.

Why it matters

The de facto consent grammar for the web. If your Consent Mode implementation is correct, ours inherits it for free.

Ballot Signal + Google Consent Mode v2: questions

Is the Google Consent Mode v2 integration available today?

Live. Built, tested and available to every customer today. You can turn this on yourself without talking to us.

What authentication does the Google Consent Mode v2 integration use?

n/a (client-side signal). Credentials are stored encrypted and are never rendered back into the interface after entry.

Will this create duplicate records in Google Consent Mode v2?

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 Consent Mode v2?

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.