Adjust already-uploaded conversions (Google only)
Adjust conversions that were previously uploaded via POST /v1/ads/conversions —
retract them, restate their value, or enhance them with first-party data. Requires
the Ads add-on.
Google Ads only. Google handles adjustments through the classic Google Ads API
(ConversionAdjustmentUploadService); the Data Manager ingestEvents path used for
sending conversions is ingest-only. Meta and LinkedIn have no equivalent, so this
endpoint returns 405 for those platforms.
Adjustment types:
RETRACTION— remove the conversion entirely (refund, chargeback, cancelled order, churn).RESTATEMENT— change the conversion's value (upgrade / downgrade / partial refund). Send the corrected total value inrestatementValue(not a delta).ENHANCEMENT— attach first-party identifiers (hashed email / phone) to an existing conversion (enhanced conversions applied after the fact).
Identifying the original conversion (per adjustment):
orderId— the transaction ID you sent aseventIdon the original conversion. Recommended, and required forENHANCEMENT.- or
gclid+conversionTime— the click ID and the original conversion's time (unix seconds). Not available forENHANCEMENT.
destinationId is the conversion action resource name, e.g.
customers/1234567890/conversionActions/987654321 (same value you send to
POST /v1/ads/conversions). PII in user is hashed with SHA-256 server-side
(Gmail-specific normalization included). Send plaintext.
Times are unix seconds; we convert to Google's required
yyyy-MM-dd HH:mm:ss+00:00 format. Up to 2000 adjustments per request; partial
failure is supported (inspect adjustmentsFailed / failures[]).
API key authentication - use your Zernio API key as a Bearer token
In: header
SocialAccount ID. Must be a googleads account.
Conversion action resource name, e.g. customers/1234567890/conversionActions/987654321.
1 <= items <= 2000Response Body
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.ads.adjustConversions({ body: { accountId: 'account_abc123', destinationId: 'destination_abc123', adjustments: [ { adjustmentType: 'RETRACTION', adjustmentTime: 0, }, ], },});console.log(data);{
"platform": "googleads",
"adjustmentsReceived": 0,
"adjustmentsFailed": 0,
"failures": [
{
"adjustmentIndex": 0,
"message": "string",
"code": "string"
}
],
"traceId": "string"
}{
"error": "Unauthorized"
}Associate campaigns with a conversion destination POST
Associate one or more campaigns with this conversion rule. Returns a per-campaign success/failure result so callers can retry only the rows that failed (e.g. wrong campaign type for the rule's objective).
Archive a Lead Gen form DELETE
Meta has no hard delete for forms; this archives the form (status=ARCHIVED).