Google Ads
Import offline conversions from ioZen into Google Ads using the captured click and hashed user data.
Upload completed Intake Bot cases and Process Board outcomes to Google Ads. ioZen uses Google Data Manager for new connections and can keep using the legacy Google Ads API for eligible existing connections.
If both Google Ads and Google Analytics are enabled on the same bot, only Google Ads receives the conversion. The two must never fire for the same conversion action.
Prerequisites
- A Google Ads conversion customer and its numeric conversion action ID
- An OAuth refresh token consented for
https://www.googleapis.com/auth/datamanager - An OAuth client with the Data Manager API enabled and its sensitive scope approved
- For self-hosted deployments,
GOOGLE_DATA_MANAGER_PROJECT_IDset to that OAuth client's Google Cloud project
Step 1: Conversion customer
In Google Ads, copy the conversion customer ID that owns the conversion action. If you authenticate through a manager (MCC) account, also copy that manager ID as the login customer ID.
Step 2: Conversion action
Create or reuse an enabled conversion action. Copy its numeric ID, not its name or full resource path.
Step 3: Credentials
- Open your Intake Bot → Settings → Marketing
- Toggle Google Ads on
- Paste the conversion customer ID, numeric conversion action ID, and OAuth refresh token
- Paste the OAuth client ID and secret, or leave them blank to use the ioZen OAuth client
- Add the login customer ID when you authenticate through a manager account
Settings auto-save.
Step 4: Test the connection
Click Test Connection. ioZen sends a Data Manager request with validateOnly: true. A successful result confirms the credentials, destination, and request shape. It does not ingest a conversion and does not prove that Google matched a person or click.
What we send
Each conversion includes:
- One captured click ID, in
gclid,gbraid, thenwbraidpriority - Normalized, SHA-256 hashed email and phone when available
- Event IP address and user agent when available
transactionIdset to the ioZen event ID for deduplication- An RFC 3339 UTC timestamp and
eventSource: WEB - Conversion value and currency when configured
- The conversion customer, optional manager account, and numeric conversion action ID
ioZen sets encoding: HEX only when hashed user identifiers are present. It does not send linkedAccount or consent fields in this release because those values are not captured at submit.
Data Manager accepts events asynchronously. ioZen records the request ID when Google returns one, but does not poll request status. Acceptance is not proof of a match.
Imported conversions report on the original click's impression date, not the upload date, and can take up to three hours to appear for last-click attribution.
Legacy Google Ads API
If no valid conversion action ID is configured, ioZen can use the legacy Google Ads API when a refresh token, customer ID, and developer token are present. Google closed this path to new adopters on June 15, 2026. A non-allowlisted developer token fails terminally with Data Manager migration guidance.
For legacy delivery, create an enabled Upload clicks action and set its name in ioZen when the account has more than one. Test Connection checks customer data terms, enhanced conversions for leads, and the action. Once ioZen selects Data Manager or legacy Ads for an event, it never retries that event through another Google transport.
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| Missing Data Manager scope | Existing refresh token predates Data Manager consent | Generate and save a new refresh token with the datamanager scope. |
| Invalid conversion action ID | Name or resource path pasted instead of an ID | Paste the 1 to 20 digit conversion action ID. |
| Missing quota project | Deployment does not identify the API project | Set GOOGLE_DATA_MANAGER_PROJECT_ID to the project with Data Manager enabled. |
| Request accepted but no conversion appears | Google did not match the identifiers or reporting is delayed | Check click tagging and customer data quality, then verify in Google Ads after processing. |
| Developer token not allowlisted | Legacy API access is not grandfathered | Configure the numeric action ID and Data Manager-scoped refresh token. |
Contact hello@iozen.ai if the issue persists.