Zernio
Zernio
API Reference

Conversions API

List conversion actions and their tag snippetsGETList associated campaignsGETList conversion destinationsGETCreate a website conversion actionPOSTCreate a conversion destinationPOSTGet a conversion destinationGETGet attribution metricsGETGet Event Match QualityGETUpdate a conversion destinationPATCHDelete a conversion destinationDELETEAssociate campaignsPOSTAdjust uploaded conversionsPOSTRemove associated campaignsDELETESend conversion eventsPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Conversions API

Adjust uploaded conversions

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 in restatementValue (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 as eventId on the original conversion. Recommended, and required for ENHANCEMENT.
  • or gclid + conversionTime — the click ID and the original conversion's time (unix seconds). Not available for ENHANCEMENT.

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[]).


PlatformsMeta
POST
/v1/ads/conversions/adjustments

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication - use your Zernio API key as a Bearer token

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

{  "platform": "googleads",  "adjustmentsReceived": 0,  "adjustmentsFailed": 0,  "failures": [    {      "adjustmentIndex": 0,      "message": "string",      "code": "string"    }  ],  "traceId": "string"}
Was this page helpful?

Associate campaigns

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).

Remove associated campaigns

Remove one or more campaign associations from this conversion rule. Pass `adAccountId` and `campaignIds` as query parameters (`campaignIds` is comma-separated). The route also accepts a JSON body with the same fields for clients that prefer DELETE-with-body, but the documented surface is query-only because some SDK code generators (e.g. Python) collapse query + body parameters with the same name into a single kwarg.

accountId*string

SocialAccount ID. Must be a googleads account.

destinationId*string

Conversion action resource name, e.g. customers/1234567890/conversionActions/987654321.

adjustments*array<>
Items1 <= items <= 2000