List conversion destinations
Returns the list of pixels (Meta), conversion actions (Google),
conversion rules (LinkedIn), or pixels (OpenAI Ads) accessible to the
connected ads account. Use the returned id as destinationId when
posting to POST /v1/ads/conversions.
For Google and LinkedIn, each destination's type reflects the
conversion type (PURCHASE, LEAD, SIGN_UP, etc.) — the event type is
locked to the destination. For Meta and OpenAI Ads, type is absent:
pixels accept any event name per request.
For LinkedIn, destinations are returned across every sponsored ad
account the connected token can access; the adAccountId field on
each destination identifies the parent ad account and is required for
subsequent CRUD calls (update, delete, associations, metrics).
API key authentication - use your Zernio API key as a Bearer token
In: header
Path Parameters
SocialAccount ID (metaads, googleads, linkedinads, tiktokads, or openaiads).
Response Body
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.conversions.listConversionDestinations({ path: { accountId: 'account_abc123', },});console.log(data);{
"platform": "metaads",
"destinations": [
{
"id": "string",
"name": "string",
"type": "string",
"status": "active",
"adAccountId": "string"
}
]
}{
"error": "Unauthorized"
}List associated campaigns GET
LinkedIn-only today. Returns the campaigns currently associated with this conversion rule. Note that auto-association on rule creation runs once at create time; campaigns created after the rule still need explicit association.
Create a conversion destination POST
Create a new conversion destination on the platform. Supported for LinkedIn (conversion rule) and Google Ads (conversion action). Meta and OpenAI Ads pixels are created via their own tracking-tags flow instead (`POST /v1/accounts/{accountId}/tracking-tags`); this endpoint returns 405 for both. **LinkedIn:** creation is NOT idempotent. A retry creates a second destination. Deduplicate before retrying. **Google Ads:** calling with a name that already exists reuses the existing conversion action transparently (the response is identical to a fresh create). Calling with the same name but a different category returns a typed `IDEMPOTENCY_CONFLICT` (409) rather than silently returning the mismatched action. **LinkedIn:** the rule is created with `conversionMethod=CONVERSIONS_API` and (by default) auto-associated with all of the ad account's campaigns via `autoAssociationType=ALL_CAMPAIGNS`. Pass `autoAssociationType: NONE` to opt out and manage associations explicitly via the associations endpoints below. 365-day attribution windows are only valid for `SUBMIT_APPLICATION`, `PURCHASE`, `ADD_TO_CART`, `QUALIFIED_LEAD`, and `LEAD` rule types; the API rejects other combinations locally. **Google Ads:** the conversion action is created with `type=UPLOAD_CLICKS` (required for API-uploaded offline conversions, immutable after creation). The `type` field carries the Google `ConversionActionCategory` enum value, e.g. `PURCHASE`, `SUBSCRIBE_PAID`, `SIGNUP`, `IMPORTED_LEAD`, `BOOK_APPOINTMENT`. Unified standard event names (e.g. `Purchase`, `Subscribe`, `CompleteRegistration`, `Lead`, `Schedule`) are resolved to their Google category equivalents automatically. The action defaults to secondary (non-primary) to avoid immediately steering Smart Bidding; pass `primaryForGoal: true` to opt in.