Skip to main content

Google Ads Conversions

This guide covers how to submit offline conversions to Google Ads through the TNT Growth API, check submission status, and investigate per-conversion results.

Authentication

All requests require an x-api-key header with your client-specific API key provided by TNT Growth.

-H "x-api-key: YOUR_API_KEY"

Submitting Conversions

Endpoint

POST /google/conversions/add

Request

Send an array of conversion objects. Each request accepts a maximum of 100 conversions. For larger batches, chunk your data into groups of 100 and submit multiple requests.

Request Body Schema

FieldTypeRequiredDescription
customerIdstringYesGoogle Ads customer ID (no dashes)
conversionActionIdstringYesThe conversion action ID from Google Ads
gclidstringYesThe Google Click ID captured from the ad click
timeStampnumberYesUnix timestamp (seconds) of when the conversion occurred
conversionValuenumberYesMonetary value of the conversion

Example Request

curl -X POST https://api.tntgrowth.io/google/conversions/add \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '[
{
"customerId": "4482546575",
"conversionActionId": "7567171084",
"gclid": "Cj0KCQjwh-HPBhCIARIsAC0p3ce...",
"timeStamp": 1778043599,
"conversionValue": 1
},
{
"customerId": "4482546575",
"conversionActionId": "7567171084",
"gclid": "EAIaIQobChMI4Yb...",
"timeStamp": 1778043610,
"conversionValue": 50
}
]'

Example Response

{
"message": "Conversions queued successfully",
"submissionIds": [
"sub_abc123def456"
],
"statusUrls": [
"/conversions/submissions/sub_abc123def456"
]
}

The response includes submissionIds you can use to track the status of your submission, along with statusUrls for convenience.

Checking Submission Status

After submitting conversions, you can poll the submission status to determine whether processing is complete.

Endpoint

GET /conversions/submissions/:submissionId

Path Parameters

ParameterTypeDescription
submissionIdstringThe submission ID from the submit response

Example Request

curl https://api.tntgrowth.io/conversions/submissions/sub_abc123def456 \
-H "x-api-key: YOUR_API_KEY"

Example Response

{
"submissionId": "sub_abc123def456",
"status": "complete",
"totalConversions": 2,
"successCount": 2,
"failedCount": 0,
"createdAt": "2026-05-11T12:00:00.000Z",
"completedAt": "2026-05-11T12:00:45.000Z"
}

Status Values

StatusDescription
pendingConversions are queued and waiting to be processed
completeAll conversions processed successfully
complete_with_errorsProcessing finished but some conversions failed
stalledProcessing has not progressed — contact support

Detailed Per-Conversion Status (Batch Lookup)

For granular visibility into individual conversion results, use the batch status endpoint. This is especially useful when a submission completes with errors and you need to identify which specific conversions failed.

Endpoint

POST /google/conversions/status

Request

Send an array of conversion identifiers. Each request accepts a maximum of 100 conversions.

Request Body Schema

FieldTypeRequiredDescription
customer_idstringYesGoogle Ads customer ID (no dashes)
gclidstringYesThe Google Click ID
conversion_action_idstringYesThe conversion action ID from Google Ads

Example Request

curl -X POST https://api.tntgrowth.io/google/conversions/status \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '[
{
"customer_id": "4482546575",
"gclid": "Cj0KCQjwh-HPBhCIARIsAC0p3ce...",
"conversion_action_id": "7567171084"
},
{
"customer_id": "4482546575",
"gclid": "EAIaIQobChMI4Yb...",
"conversion_action_id": "7567171084"
}
]'

Example Response

{
"results": [
{
"customer_id": "4482546575",
"gclid": "Cj0KCQjwh-HPBhCIARIsAC0p3ce...",
"conversion_action_id": "7567171084",
"status": "processed",
"message": "Conversion uploaded successfully to Google Ads"
},
{
"customer_id": "4482546575",
"gclid": "EAIaIQobChMI4Yb...",
"conversion_action_id": "7567171084",
"status": "partial_failure",
"message": "CLICK_NOT_FOUND: The click ID could not be matched to an existing Google Ads click"
}
]
}

Per-Conversion Status Values

StatusDescription
processedConversion uploaded successfully to Google Ads
partial_failureGoogle accepted the request but reported an error for this conversion
failed_pre_googleConversion failed validation before reaching Google Ads
not_foundNo matching conversion record found in the system

The message field provides specific error details when the status is not processed.

Best Practices

  • Chunk large batches into groups of 100 conversions per request
  • Store submission IDs from responses for status tracking
  • Poll with a delay — wait 30-60 seconds after submission before checking status, as conversions are processed asynchronously
  • Use batch status for debugging — when a submission reports complete_with_errors, use the per-conversion status endpoint to identify exactly which conversions failed and why
  • Validate GCLIDs — ensure the Google Click IDs you submit are accurate and correspond to real ad clicks
  • Timestamp accuracy — conversion timestamps must not be in the future; use the actual time the conversion event occurred