---
title: "Associate campaigns"
method: POST
path: "/v1/ads/conversions/destinations/{destinationId}/associations"
tags: ["Conversions"]
---

# Associate campaigns

`POST /v1/ads/conversions/destinations/{destinationId}/associations`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/v1/ads/conversions/destinations/{destinationId}/associations`
- Auth: HTTP bearer

Links campaigns to a LinkedIn conversion rule so they track it, reporting which links succeeded or failed.

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

## Path parameters

- `destinationId` string, required

## Request body

- object
  - `accountId` string, required: The connected ads account (SocialAccount ID).
  - `adAccountId` string, required
  - `campaignIds` string[], required

## Response `200`

Per-campaign batch result. Status is 200 even when some rows
failed. Inspect `failed[]` for details. Inputs that fail local
URN validation are bucketed into `failed` without ever hitting
LinkedIn.

- object
  - `platform` 'linkedinads'
  - `succeeded` string[]: Numeric campaign IDs that were successfully associated.
  - `failed` object[]
    - `campaignId` string
    - `reason` string

## Other responses

- `400`: Invalid body.
- `401`: Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `403`: Ads add-on or LinkedIn reconnect required. Also returned with code `ad_account_not_selected` when the connection has selected ad accounts and the targeted ad account is not among them. `details` carries `accountId`, `adAccountId` and `selectedAdAccountIds`. Fix: add the ad account to the selection (GET /v1/connect/{platform}/ads with adAccountIds, which replaces the selection) or use a connection that has it selected.
- `404`: The account or requested resource was not found or is not accessible. An account ID may have been disconnected and removed. Read GET /v1/accounts for current account IDs.
- `405`: Platform does not support associations.
- `409`: The account exists but is inactive or needs reconnection. Reconnect it, then read GET /v1/accounts for its current account ID before retrying. Code: ads_connection_required.
- `429`: LinkedIn rate limit hit. Retry with backoff.

## Changes

- **2026-11-11** `34f8dbff5e0d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/ads/conversions/destinations/:destinationId/associations/post.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) - [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/21ba7421089d?raw)
