Zernio
Zernio
PlatformsLinkedIn Ads

Build

Boost a PostCreate AdsCreative Formats

Target

Matched AudiencesBid Pricing & Forecasts

Measure

AnalyticsLead Gen FormsConversions APIURL Tracking Tags

Operate

Ad LibraryMedia & Limits
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources

LinkedIn Ads

Create, boost, target and measure LinkedIn campaigns on a linkedinads account with the ads endpoints.


Create LinkedIn ads with POST /v1/ads/create, boost a Company Page post with POST /v1/ads/boost, and read results with the Insights endpoints, all on a linkedinads account. The pages in this section cover one job each; every endpoint is explained once, with its response.

Quick reference

PropertyValue
HierarchyCampaign Group > Campaign > Creative (created in one call, or reuse existing levels)
Goals (`goal`)6 on /v1/ads/create: engagement, traffic, awareness, video_views, lead_generation, job_applicants. conversions is boost-only (see Boost a post)
Creative formatsSingle image, video, carousel, document, event, text ad, spotlight, follower, jobs, conversation, thought-leader, article (see Creative formats)
BiddingCPM (default), CPC, CPV; manual `unitCost` or LinkedIn automated
Budget minimums$10/day per format; $100 lifetime for inactive campaigns
TargetingCountries and regions, plus LinkedIn's B2B facets: industries, companySizes, seniorities, jobFunctions (see Targeting)
AudiencesContact list, company list, engagement retargeting, website retargeting
InsightsSpend, CPC and CPM plus firmographic breakdowns: job title, seniority, industry, company size (see Analytics)
Pre-flight planningSuggested bid and budget bounds, and impression, click and spend forecasts
Lead Gen FormsYes: create, list and archive forms, and pull responses (90-day retention)
Conversions APIYes: rule CRUD, events and attribution read-back
URL tracking tagsYes: campaign-level Dynamic UTM (read and update)
Image formatsJPEG, PNG, GIF, max 5 MB
Video formatsMP4 H.264/AAC, 3 seconds to 30 minutes, max 500 MB

Before you start

LinkedIn Ads requires a connected LinkedIn account whose member can act on a sponsored ad account. You need:

  • A LinkedIn ad account: the numeric sponsored account id, from List ad accounts.
  • A Company Page. Ads built from scratch publish as Direct Sponsored Content ("dark posts") authored by the Page. The authenticated member must be an Administrator or Direct Sponsored Content Poster of that Page, and the Page must be associated with the ad account, or LinkedIn returns 403.
  • The ads scopes on the connection (below). An account connected before a scope existed must reconnect to pick it up.

LinkedIn reviews every ad, so a new campaign starts in DRAFT and review before it delivers.

Connect

Call GET /v1/connect/linkedin/ads with profileId (Connect ads). The linkedinads account reuses the token of the profile's LinkedIn account when one is connected, so no second OAuth round trip happens; without one, the response carries an authUrl to send the user to, as in the connecting accounts guide.

curl "https://zernio.com/api/v1/connect/linkedin/ads?profileId=66a1f0c2a4b9d3e8f1a2b3c4" \
  -H "Authorization: Bearer $ZERNIO_API_KEY"

Response (200):

{
  "alreadyConnected": true,
  "accountId": "66b2e19d8c3f5a7e9d0b1c2d",
  "platform": "linkedinads"
}

accountId is the value every ads endpoint takes. The standard LinkedIn connection already requests the ads scopes:

ScopeWhat it enables
r_adsRead ad accounts
rw_adsCreate and manage campaigns and creatives
r_ads_reportingAds reporting and analytics
rw_conversionsConversions API (server-side conversion events)
r_marketing_leadgen_automationRead Lead Gen Form responses

The two scopes that most often need a reconnect are rw_conversions (a 403 with linkedin_reconnect_required when missing) and r_marketing_leadgen_automation (lead-response reads return a 400 with code ads_connection_required asking for the reconnect). Scopes explains how a reconnect picks them up.

The campaign hierarchy

Every LinkedIn ad lives in a three-level tree: Campaign Group, Campaign, Creative. The Campaign owns bidding, targeting, schedule and budget; the Creative is the ad content. POST /v1/ads/create provisions all three in one call. Zernio's adSetId is the LinkedIn Campaign id (on Meta the same field is an ad set, on Google and TikTok an ad group); pass it, or existingCampaignId for a Campaign Group, to slot into levels you already have (Create ads).

In this section

Boost a post

Promote an existing Company Page post

Create ads

Single image and video ads, bidding, reuse and duplication

Creative formats

Carousel, document, event, text, spotlight, follower, jobs, conversation, thought-leader

Matched Audiences

Contact lists, company lists, engagement and website retargeting

Bid pricing and forecasts

Suggested bids, budget bounds and supply forecasts before you spend

Analytics

Firmographic breakdowns of who saw your ads

Lead Gen Forms

Create forms and pull lead responses

Conversions API

Conversion rules, server-side events, attribution read-back

URL tracking tags

Campaign-level Dynamic UTM parameters

Ad Library

Search the public ad archive by keyword or advertiser

Media and limits

Media requirements, what you cannot do, and common LinkedIn errors

Common errors

Connecting is where this page's own errors live. Media and limits collects the ones LinkedIn returns once you are creating ads.

ErrorCauseFix
400 with code reconnect_requiredThe profile holds a LinkedIn account whose stored token cannot reach ad accountsReconnect the LinkedIn account, then call the ads connect again.
402The billing gate is closed for the teamAdd a payment method and retry.
403 with code ads_addon_requiredThe team is on a legacy plan that does not include ads accessMove the team to usage-based billing, where every account includes ads (Pricing).
404The profileId is unknown, or the profile has no LinkedIn account to inherit a token fromCheck the profile id, and connect LinkedIn before its ads.

Error handling covers the envelope and the stable codes.

Related

  • Create standalone ad: group, campaign and creative in one call.
  • Boost post: promote an existing organic post.
  • List ad accounts: the sponsored accounts a connection can reach.
  • Bid pricing and Supply forecast.
  • Send conversions: server-side conversion events.
Was this page helpful?

Limits and errors

The per-user ops budget on live Google Ads calls, what the Google Ads API and Zernio's integration do not expose, and the errors Google returns most often.

Boost a Post

Promote an existing LinkedIn Company Page post as an ad with POST /v1/ads/boost, keeping its reactions and comments, on any of the 6 goals boost accepts.

On this page

Quick referenceBefore you startConnectThe campaign hierarchyIn this sectionCommon errorsRelated