Google Ads Offline Conversions - GCLID & Enhanced Conversions
Pricing
from $0.01 / 1,000 results
Google Ads Offline Conversions - GCLID & Enhanced Conversions
Upload offline conversions to Google Ads using GCLID click tracking, enhanced conversions with hashed PII & store sales data for campaign attribution. Upload conversions w/GCLID Upload phone calls Upload w/hashed PII Upload in-store transactions All conversion actions Conversion action details
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
The Howlers
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Upload offline conversions to Google Ads using GCLID click tracking, enhanced conversions with hashed PII, and store sales data for campaign attribution.
BYOK (Bring Your Own Key) -- you provide your own API credentials.
Before You Start
This actor requires your own API credentials to fetch real data.
Where to get your key: Google Ads API developer token
You can test with Demo Mode first (free, no key needed) to see the output format before committing.
Quick Start
Test with Demo Mode (free, no API key needed)
{"demoMode": true}
Run with real data
{"demoMode": false,"task": "upload_click_conversions","developerToken": "YOUR_API_KEY_HERE","clientId": "YOUR_API_KEY_HERE","clientSecret": "YOUR_API_KEY_HERE","refreshToken": "YOUR_API_KEY_HERE","currencyCode": "USD","countryCode": "US","isAlreadyHashed": false}
Input Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
task | string | "upload_click_conversions" | Yes* | The operation to perform |
developerToken | string | - | Yes* | Google Ads API developer token |
clientId | string | - | Yes* | Google OAuth 2.0 client ID |
clientSecret | string | - | Yes* | Google OAuth 2.0 client secret |
refreshToken | string | - | Yes* | Google OAuth 2.0 refresh token |
customerId | string | - | No | Google Ads customer ID (format: 123-456-7890) |
loginCustomerId | string | - | No | Manager account ID if accessing via MCC |
conversionActionId | string | - | No | ID of the conversion action to attribute conversions to |
conversionActionName | string | - | No | Name for new conversion action |
conversions | string | - | No | JSON array of conversion objects |
gclid | string | - | No | Google click ID from URL parameter |
gbraid | string | - | No | Google app click ID for iOS |
wbraid | string | - | No | Google web-to-app click ID |
conversionDateTime | string | - | No | When the conversion occurred (format: yyyy-MM-dd HH:mm:ss+/-HH:mm) |
conversionValue | number | - | No | Monetary value of the conversion |
currencyCode | string | "USD" | No | ISO 4217 currency code |
orderId | string | - | No | Unique order/transaction identifier for deduplication |
email | string | - | No | Customer email for enhanced conversions (will be hashed) |
phone | string | - | No | Customer phone for enhanced conversions (will be hashed) |
firstName | string | - | No | Customer first name (will be hashed) |
lastName | string | - | No | Customer last name (will be hashed) |
streetAddress | string | - | No | Customer street address (will be hashed) |
city | string | - | No | Customer city |
state | string | - | No | Customer state/region |
postalCode | string | - | No | Customer postal/zip code |
countryCode | string | "US" | No | Customer country (ISO 3166-1 alpha-2) |
callerId | string | - | No | Phone number for call conversions (E.164 format) |
callStartDateTime | string | - | No | When the call started |
consent | string | - | No | JSON with ad_user_data and ad_personalization consent (GRANTED/DENIED) |
isAlreadyHashed | boolean | false | No | Set to true if PII data is already SHA256 hashed |
webhookUrl | string | - | No | URL to receive results via webhook |
demoMode | boolean | true | No | Run with sample data for testing (no external API calls) |
*Required when Demo Mode is off.
Pricing
This actor uses pay-per-event billing:
| Event | Description | Price |
|---|---|---|
| Conversion Uploaded | Each offline conversion uploaded | $0.01 |
Demo mode is free -- no charges for sample data.
Troubleshooting
"API key is required"
You have Demo Mode turned off but didn't provide an API key. Either:
- Turn Demo Mode on to test with sample data
- Add your API key in the input
"API error 403" or "Unauthorized"
Your API key is invalid, expired, or doesn't have access to this specific API endpoint. Double-check your key and account permissions.
"API error 429" or "Rate limit"
Too many requests. Wait a minute and try again, or reduce the number of items per run.
No results or empty dataset
Check the run log for error messages. Common causes:
- Invalid input format (check the examples above)
- API key without proper permissions
- The target data doesn't exist or is too small to track
How do I test without an API key?
Enable Demo Mode in the input. This returns realistic sample data so you can verify the output format works for your workflow.
Built by John Rippy | Actor Arsenal