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

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


PlatformsMetaGoogleTikTokLinkedIn
POST
/v1/accounts/{accountId}/conversion-destinations/{destinationId}/associations

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Path Parameters

accountId*string
destinationId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

{  "platform": "linkedinads",  "succeeded": [    "string"  ],  "failed": [    {      "campaignId": "string",      "reason": "string"    }  ]}
Was this page helpful?

Delete a conversion destination

LinkedIn-only today. LinkedIn does not expose hard-delete on conversion rules; what their UI calls "delete" is the same `enabled: false` flip we apply here. The rule remains fetchable via GET with `status: 'inactive'`; the unified discovery endpoint hides it by default. `adAccountId` may be passed as a query parameter (recommended) or as a JSON body field for clients that can send DELETE bodies.

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

adAccountId*string
campaignIds*array<>
Items1 <= items <= 100