Ads & analytics

Ballot Signal + Google Ads

Via webhook Webhook Nonpartisan OAuth2 / GTM server container

What is 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.

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 Ads integration works

Supporter records can be sent as enhanced or offline conversions with hashed identifiers, through a server-side Google Tag Manager container or the universal webhook. Sent only when ad_user_data and ad_personalization are granted, consistent with Consent Mode v2.

What syncs

  • Offline / enhanced conversions
  • Hashed identifiers

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 Event Notes
firstName, lastName Server-side conversion event Left empty rather than guessed when resolution is not confident.
email 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. 1

    Create the conversion action in Google Ads and note its conversion ID and label.

  2. 2

    Route the Ballot Signal webhook through a server-side GTM container, or use your own middleware.

  3. 3

    Confirm ad consent categories are required in your consent mapping.

  4. 4

    Send a test conversion and confirm it appears in Google Ads.

  5. 5

    Reconcile weekly against your Ballot Signal supporter count.

Why it matters

Search intent from voters looking up a candidate by name is some of the cheapest, highest-intent traffic in politics — and worth measuring properly.

Ballot Signal + Google Ads: questions

Is the Google Ads 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 Ads integration use?

OAuth2 / GTM server container. Credentials are stored encrypted and are never rendered back into the interface after entry.

Will this create duplicate records in Google Ads?

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 Ads?

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.