Create a conversion destination
Creates a new place to send conversion events: a Google Ads conversion action or a LinkedIn conversion rule.
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, and for Reddit (create Reddit pixels in Reddit Ads Manager).
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.
Authorization
bearerAuth API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.
In: header
Path Parameters
SocialAccount ID (linkedinads or googleads).
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.conversions.createConversionDestination({ path: { accountId: 'account_abc123', }, body: { adAccountId: 'adaccount_abc123', name: 'Example', type: 'string', },});console.log(data);{ "platform": "linkedinads", "destination": { "id": "string", "name": "string", "type": "string", "status": "active", "adAccountId": "string" }}Create website conversion action
Creates a Google Ads website conversion action and returns the tag snippets to install on your site. Creates a `WEBPAGE` conversion action (category `DEFAULT`) and returns it with its tag snippets, read back after creation since Google never returns them on the create response itself. Invalidates the cached list `GET` on this resource would otherwise keep serving. Google-only; other platforms return `501`. Requires the Ads add-on.
Create a custom conversion goal
Creates a Google Ads custom conversion goal from a set of conversion actions, so a campaign can bid on just those. Creates a custom conversion goal from conversion action ids. Point a campaign at it with `PATCH /v1/ads/campaigns/{campaignId}/conversion-goals`.