Google Enhanced Conversions
Upload enhanced conversion data to Google Ads for improved attribution and measurement. Enhanced conversions supplement your existing conversion tags with first-party customer data (email, phone, name) to improve conversion matching accuracy.
Prerequisites
- A Google Ads account
- A Google Ads API developer token (from your Manager account’s API Center)
- A conversion action with Enhanced Conversions enabled
- Your Google Ads Customer ID
Finding Your Customer ID
Your Customer ID is the 10-digit number displayed in the top-right corner of the Google Ads dashboard, formatted as XXX-XXX-XXXX.
- Sign in to Google Ads
- Look at the top-right corner — your Customer ID appears next to your account name (e.g.,
406-685-0321) - When entering it in SignalSmith, remove the dashes (e.g.,
4066850321)
Getting a Developer Token
A developer token is required for all Google Ads API access.
- Sign in to your Google Ads Manager account (MCC) — developer tokens are issued at the MCC level, not individual ad accounts
- Navigate to Tools & Settings (wrench icon) > Setup > API Center
- If you don’t have a developer token yet, one will be generated with Test Account access level
- Copy the 22-character alphanumeric token
Developer Token Access Levels
| Level | What It Means | How to Get It |
|---|---|---|
| Test Account | Only works with accounts you explicitly whitelist in the API Center | Default when first issued |
| Basic Access | Works with any Google Ads account the user authorizes | Apply in API Center — requires app review |
| Standard Access | Higher rate limits, same account access as Basic | Apply after Basic approval |
For testing, add your Customer ID as a test account: in the API Center page, find the “Test accounts” section and add the Customer ID you want to sync to.
For production, apply for Basic Access in the API Center. Google reviews your OAuth consent screen, terms of service URL, and privacy policy.
Finding Your Conversion Action ID
The Conversion Action ID identifies which conversion event to upload enhancements for.
- In Google Ads, navigate to Goals > Conversions > Summary
- Click on the conversion action you want to enhance (e.g., “Lead Received”, “Purchase”)
- Look at the browser URL — it contains
conversionId=XXXXXXXXX - That numeric value is your Conversion Action ID
Enabling Enhanced Conversions on a Conversion Action
The conversion action must have Enhanced Conversions enabled via API:
- In Google Ads, go to Goals > Conversions > Summary
- Click on your conversion action
- Scroll to Enhanced conversions and expand the section
- Toggle Turn on enhanced conversions to on
- Select Google Ads API as the method
- Click Save
If you don’t have a conversion action yet, create one: Goals > Conversions > New conversion action > Website.
Authentication
Google Enhanced Conversions uses OAuth 2.0.
- Click Connect with OAuth in SignalSmith
- Sign in with the Google account that has access to your Google Ads account
- Authorize the requested permissions
The authorizing Google account must have at least Standard access to the target Google Ads account.
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Customer ID | Text | Yes | Your Google Ads customer ID (10-digit number, without dashes). Find it in the top-right corner of your Google Ads dashboard. |
| Developer Token | Password | Yes | Google Ads API developer token from your Manager account’s API Center. |
| Conversion Action ID | Text | Yes | The numeric ID of the conversion action to upload enhancements for. Find it in the URL when viewing the conversion action in Google Ads. |
| API Version | Select | Yes | Google Ads API version. Default: v23 (latest). |
Supported Operations
Sync Modes: Insert
Audience Sync Modes: Add
Features
- Field Mapping: Yes
- Schema Introspection: No
Required Mapping Fields
| Field | Description |
|---|---|
| order_id | The order or transaction ID that matches the conversion tagged on your website. Required for web enhanced conversions. |
At least one user identifier (email, phone, name, or mobile_id) is also required — either raw or pre-hashed.
Destination Fields Reference
Google Enhanced Conversions supports two approaches for PII fields: raw values (SignalSmith normalizes and hashes automatically) or pre-hashed values (you provide the SHA-256 hash from your warehouse). You can mix both approaches in the same sync.
Raw PII Fields (auto-hashed)
Map raw PII from your warehouse. SignalSmith normalizes (lowercase, trim, E.164 for phone) and SHA-256 hashes before sending to Google.
| Field | Type | Description |
|---|---|---|
email | string | Raw email address — normalized and SHA-256 hashed automatically |
phone | string | Raw phone number — normalized to E.164 and SHA-256 hashed automatically |
first_name | string | Raw first name — lowercased and SHA-256 hashed automatically |
last_name | string | Raw last name — lowercased and SHA-256 hashed automatically |
street_address | string | Raw street address — SHA-256 hashed automatically |
Pre-Hashed PII Fields (pass-through)
Map pre-hashed columns from your warehouse directly. These are sent to Google as-is with no further processing. Use these when your warehouse already stores hashed PII.
| Field | Type | Expected Format |
|---|---|---|
hashed_email | string | SHA-256 hex of lowercase, trimmed email |
hashed_phone | string | SHA-256 hex of E.164 formatted phone number |
hashed_first_name | string | SHA-256 hex of lowercase first name |
hashed_last_name | string | SHA-256 hex of lowercase last name |
hashed_street_address | string | SHA-256 hex of street address |
Important: Pre-hashed fields take priority. If both email and hashed_email are mapped, hashed_email is used.
Address Fields (plain text)
These are sent in plain text as required by Google’s API. Not hashed.
| Field | Type | Required | Description |
|---|---|---|---|
country_code | string | Conditional | ISO 3166-1 alpha-2 country code (e.g., US, IN). Required if any address fields are included. |
postal_code | string | Conditional | Postal/ZIP code (e.g., 94045). Required if any address fields are included. |
city | string | No | City name |
state | string | No | State or region name |
Other Identifiers
| Field | Type | Description |
|---|---|---|
mobile_id | string | Mobile advertising ID (IDFA or GAID). Not hashed. |
Conversion Context
| Field | Type | Required | Description |
|---|---|---|---|
order_id | string | Yes | Order or transaction ID matching the original website conversion |
gclid | string | No | Google Click ID from the original ad click — strongest attribution signal |
conversion_date_time | string | No | When the conversion occurred. Format: yyyy-mm-dd HH:mm:ss+|-HH:mm. Defaults to current time. |
conversion_value | number | No | Monetary value (for value adjustments) |
currency_code | string | No | ISO 4217 currency code (e.g., USD, EUR, INR). Required if conversion_value is set. |
user_agent | string | No | Browser user agent from original conversion — helps same-device vs cross-device attribution |
How It Works
- SignalSmith reads conversion data from your warehouse model
- Raw PII fields (email, phone, name, street_address) are automatically normalized and SHA-256 hashed
- Pre-hashed fields (hashed_email, hashed_phone, etc.) are sent as-is — no further hashing
- Address fields (country_code, postal_code, city, state) are sent in plain text
- Data is sent to the Google Ads API in batches of up to 2,000 conversion adjustments
- Google matches the identifiers to ad clicks and enhances your conversion reporting
Troubleshooting
Permission denied (403)
Developer token in test mode: Your developer token only works with whitelisted accounts. Go to Tools & Settings > API Center and add the target Customer ID under “Test accounts”. For production, apply for Basic Access.
User doesn’t have account access: The Google account that authorized OAuth must have at least Standard access to the target Google Ads account. Check under Tools & Settings > Access and security.
Invalid conversion action
Verify the Conversion Action ID is correct — it should be a numeric ID found in the URL when viewing the conversion action in Google Ads (conversionId=XXXXXXXXX). Also ensure Enhanced Conversions is enabled on the action with “Google Ads API” selected as the method.
Low enhancement rate
- Ensure email is the primary identifier — it has the highest match rate
- Include phone and name when available for additional matching signals
- Verify gclid is included when you have it — this provides the strongest match
- Set conversion_date_time accurately — it must be within the conversion action’s lookback window
- Include order_id to help Google deduplicate conversions