Ensure each click to be attributed has a Google Click ID (GCLID) captured at the time of the click and stored with the conversion event.
Construct a ClickConversion object with gclid, conversion_action resource name, conversion_date_time (in 'yyyy-MM-dd HH:mm:ss+ZZ:ZZ' format), and conversion_value.
Call ConversionUploadService.uploadClickConversions with a list of ClickConversion objects and partial_failure set to true.
Check the partial_failure_error field in the response to identify any rows that failed and review the ClickConversionResult list for successes.
Respect the upload window: conversions must be uploaded within 90 days of the click date, and the conversion date must be no earlier than the click date.
Monitor the conversion_upload_summary report in Google Ads UI or via GAQL to confirm ingestion and attribution.
Known gotchas
GCLIDs expire after 90 days — uploads referencing older GCLIDs will fail with a GCLID_NOT_FOUND or EXPIRED_GCLID error.
Duplicate uploads (same GCLID, conversion action, and date-time) are deduplicated automatically, but slight timestamp differences will create duplicate conversions.
The conversion action must have include_in_conversions_metric enabled and be of category UPLOAD_CLICKS type, not a website or app conversion action.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp