Upload enhanced Google Ads conversions
<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Adds hashed buyer details to conversions you have already reported, so Google can match more of them to a click.
Use it when you learn who the buyer was after the conversion was reported, for example a form submitted after checkout. Each adjustment finds its conversion by the order_id you sent originally, so it only works for a conversion you reported with one. It changes the details on an existing conversion and never creates a new one, so Upload conversions has to run first.
Hash each value yourself with SHA-256 over the lowercased, trimmed input and send lowercase hex. Base44 forwards what you send without hashing or normalizing it, so an unhashed or differently formatted value simply fails to match and reports as accepted.
Read the outcome from total_uploaded rather than status, which reports success as soon as one adjustment lands.
<Note>There is no cap on how many rows you can send and no rate limit on this endpoint. Base44 sends them to Google in batches of 2,000, one batch after another, while your request stays open, so a very large list means a very long request. Keep each call to a few thousand rows and send several calls instead.</Note>
<Warning>A 409 means the request to Google timed out after it was sent, so the adjustments may or may not have landed. Unlike Upload conversions, this endpoint keeps no record of what it has sent, so a retry can apply the same adjustment twice. Check the conversion in Google Ads before retrying.</Warning>
<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>
Path parameters
ID of the app whose Google Ads conversion tracking you want to manage.
ID of the app whose Google Ads conversion tracking you want to manage.
Request body
Example request
{
"adjustments": [
{
"conversion_action_id": "7654321",
"order_id": "ORD-10482",
"adjustment_date_time": "2026-08-26 09:15:00+00:00",
"user_identifiers": {
"hashed_email": "d5b8e2b9a1c4f60e7a2f3c8d91b45e6f70a1c2d3e4f5061728394a5b6c7d8e9f"
}
}
]
}Response
What happened to the batch of adjustments.
Example response
{
"status": "success",
"total_submitted": 5,
"total_uploaded": 4
}Changes
No recorded changes to this endpoint across all 1 revision of this API.