Create and Manage Creatives
Warning
Deprecation Notice
The Marketing version 202209 (Marketing September 2022) and below has been deprecated and the unversioned APIs are going to be sunset soon. We recommend that you migrate to the versioned APIs as well as migrate to the new Content and Community Management APIs to avoid disruptions. See the Migration page for more details.
If you haven’t yet migrated and have questions, submit a request on the LinkedIn Developer Support Portal.
The Creatives API contains all the data and information for visually rendering an ad. There are several types of Ad Creatives that you can associate with campaigns including:
- Text Ads
- Sponsored Content (images, videos, carousels, articles, text, etc.)
- Message Ads
- Conversation Ads
- Dynamic Ads (Spotlight, Follower, Jobs)
The following conditions apply when using the Creatives API:
- An Ad Account can have a maximum of 15,000 creatives.
- A campaign can have a maximum of 100 creatives.
- Creative types must match the source campaign ad format. If the campaign has no ad format set, it is set by the first creative developed under that campaign. Dynamic, carousel, and video ad campaigns must have their format set upon creation.
Note
The Creatives API replaces the adCreativesV2 API. See Migration Guide for more details.
Key Benefits
This endpoint:
- Provides a simplified schema with consistent fields for retrieval
- Enables creation of a sponsored video post with one API call for an uploaded video and an available video campaign
Permissions
There are two conditions for successful calls:
- Scope permissions for
rw_ads
and/orr_ads
- The user assigning permission holds an administrative roles in the Ad Account itself.
Scope permissions:
rw_ads
(Read/Write)r_ads
(Read-Only)
Ad Account Roles:
ACCOUNT_BILLING_ADMIN
ACCOUNT_MANAGER
CAMPAIGN_MANAGER
CREATIVE_MANAGER
VIEWER
(read-only, even with therw_ads
scope)
For more information on Ad Account roles and permissions:
Schema
Note
All APIs require the request headers LinkedIn-Version: {Version in YYYYMM format}
and X-Restli-Protocol-Version: 2.0.0
Field Name | Required | Type | Description |
---|---|---|---|
account | No | Sponsored Account URN | URN identifying the advertising account associated with the creative. This field is read-only. |
campaign | Yes | Sponsored Campaign URN | URN identifying the campaign associated with the creative |
content | No | Underlying content URN | Content sponsored in the creative. On creation, it can be dynamic Ad content (follower, job, spotlight), text, document, or a reference to InMail Content or post (image, video, article, carousel). Content can also be extended and specified as inline content instead of an URN. A reference must be a adInMailContent{id}, share{id}, or ugcPost{id}. |
createdAt | No | Time | Creation time |
createdBy | No | Person URN | Entity (e.g., a person URN) that developed the creative |
id | No | Sponsored creative URN | Unique ID for a creative (e.g.,SponsoredCreativeUrn). Read-only |
inlineContent | Required if action is createInline | Post | Inline content sponsored in the creative such as ugcPost in order to reduce the number of user calls. |
intendedStatus | No | ENUM | Creative user intended status. The creative intended status is set independently from parent entity status, but parent entity status overrides creative intended status in effect. For example, parent entity status may be PAUSED while creative status is ACTIVE, in which case the creative's effective status is PAUSED, and not served. |
isServing | No | boolean | This indicates whether the creative is currently being served or not. This field is read-only. |
lastModifiedAt | No | Time | Time at which the creative was last modified in milliseconds since epoch. |
lastModifiedBy | No | Person URN | The entity (e.g., person URN) who modified the creative |
leadgenCallToAction | Required if campaign objective is LEAD_GENERATION |
LeadgenCreativeCallToAction | The field is needed for call to action. This currently only applies if the campaign objective is LEAD_GENERATION. |
review | No | CreativeReview | Creative review status. The review status cannot be set/updated via the API but is started when the creative is activated (i.e., moves from draft state to active state). Hence, the review is absent (null) when the creative is in DRAFT state. Read-only. |
servingHoldReasons | No | servingHoldReasons | Array that contains all the reasons why the creative is not serving. In the case a creative is being served, this field will be null and not present in the response. |
Field Name | Required | Type | Description |
---|---|---|---|
account | No | Sponsored Account URN | URN identifying the advertising account associated with the creative. This field is read-only. |
campaign | Yes | Sponsored Campaign URN | URN identifying the campaign associated with the creative |
content | No | Underlying content URN | Content sponsored in the creative. On creation, it can be dynamic Ad content (follower, job, spotlight), text, or a reference to InMail Content or post (image, video, article, carousel). Content can also be extended and specified as inline content instead of an URN. A reference must be a adInMailContent{id}, share{id}, or ugcPost{id}. |
createdAt | No | Time | Creation time |
createdBy | No | Person URN | Entity (e.g., a person URN) that developed the creative |
id | No | Sponsored creative URN | Unique ID for a creative (e.g.,SponsoredCreativeUrn). Read-only |
inlineContent | Required if action is createInline | Post | Inline content sponsored in the creative such as ugcPost in order to reduce the number of user calls. |
intendedStatus | No | ENUM | Creative user intended status. The creative intended status is set independently from parent entity status, but parent entity status overrides creative intended status in effect. For example, parent entity status may be PAUSED while creative status is ACTIVE, in which case the creative's effective status is PAUSED, and not served. |
isServing | No | boolean | This indicates whether the creative is currently being served or not. This field is read-only. |
lastModifiedAt | No | Time | Time at which the creative was last modified in milliseconds since epoch. |
lastModifiedBy | No | Person URN | The entity (e.g., person URN) who modified the creative |
leadgenCallToAction | Required if campaign objective is LEAD_GENERATION Leadgen |
CreativeCallToAction | The field is needed for call to action. This currently only applies if the campaign objective is LEAD_GENERATION. |
review | No | CreativeReview | Creative review status. The review status cannot be set/updated via the API but is started when the creative is activated (i.e., moves from draft state to active state). Hence, the review is absent (null) when the creative is in DRAFT state. Read-only. |
servingHoldReasons | No | servingHoldReasons | Array that contains all the reasons why the creative is not serving. In the case a creative is being served, this field will be null and not present in the response. |
CreativeReview
Field Name | Required | Type | Description |
---|---|---|---|
status | Yes | ENUM | |
rejectionReasons | No | Array[] | An array of reasons for rejecting creatives. For more details, refer to the RejectionReason list. |
servingHoldReasons
Name | Description |
---|---|
STOPPED | Stopped by the advertiser. |
UNDER_REVIEW | Creative cannot be served because it has not been reviewed. |
REJECTED | Creative cannot be served because it was reviewed and rejected. |
FORM_HOLD | Creative cannot be served because it is associated with a form and is currently not servable. |
PROCESSING | Creative is being processed. |
PROCESSING_FAILED | Creative failed processing. |
REFERRED_CONTENT_QUALITY_HOLD | Creative cannot be served because it is associated with an non-quality entity (e.g., UGC/vector asset). |
JOB_POSTING_ON_HOLD | Single job ad, job state is in review or suspended or job posting is no longer available to members. The associated creatives should be held for serving. |
JOB_POSTING_INVALID | Single job ad, if job state is closed, deleted, or the member can not apply to the job, the single job ad is not served. |
CAMPAIGN_STOPPED | Campaign is currently not servable for reasons other than billing information, budgetary constraints, or termination dates. For example, a campaign is STOPPED if it has been PAUSED by the user. |
ACCOUNT_TOTAL_BUDGET_HOLD | Parent account total budget has been reached. |
ACCOUNT_END_DATE_HOLD | Parent account end date has been reached. |
CAMPAIGN_START_DATE_HOLD | Campaign start date is in the future. |
CAMPAIGN_END_DATE_HOLD | Campaign end date has been reached. |
CAMPAIGN_TOTAL_BUDGET_HOLD | Campaign total budget has been reached. |
CAMPAIGN_AUDIENCE_COUNT_HOLD | Campaign is on hold because it has an audience count lower than the threshold. |
CAMPAIGN_GROUP_START_DATE_HOLD | Campaign group start date is in the future. |
CAMPAIGN_GROUP_END_DATE_HOLD | Campaign group end date is in the past. |
CAMPAIGN_GROUP_TOTAL_BUDGET_HOLD | Campaign group total budget has been reached. |
CAMPAIGN_GROUP_STATUS_HOLD | Campaign group status is on hold. |
ACCOUNT_SERVING_HOLD | Parent account is on hold and not eligible for serving |
LeadgenCreativeCallToAction
Field Name | Required | Type | Description |
---|---|---|---|
destination | Yes | AdFormUrn | This form is a target destination for the callToAction button. It can only be modified when the creative is in DRAFT status. It is immutable once it is set for a creative once it transition to any non-draft intended status. |
label | Yes | CallToActionLabel | Label for the CallToAction button. |
Note
All API requests are represented in protocol 2.0.0 and require the header X-Restli-Protocol-Version: 2.0.0
.
Video File Size Specifications
The following are the high-level specifications for video file sizing:
- Length: Three seconds to 30 minutes
- File size: Between 75kb and 200MB
- File format: MP4
Refer to Video Ads Advertising Specifications for more information.
From May version onwards, we have added advertiser account id as a path parameter in the request url. To know more about the implications of this, please refer to the Recent Changes page.
Create a Creative
LinkedIn partners can create a video ad with either of the following options.
Create a Creative with an Existing Organic Post
You can sponsor an existing organic post that has been serving your company page followers and gone viral.
To create a video ad creative, the post associated with the creative must be in the PUBLISHED
state. The uploaded video may be in the PROCESSING
state for several minutes after creation. Use the Post endpoint to retrieve the post and check the lifecycleState
field. Do not create a video ad creative until the associated video post's lifecycleState
field is PUBLISHED
.
Sample Request
POST https://api.linkedin.com/rest/adAccounts/{adAccountId}/creatives
{
"content": {
"reference": "urn:li:ugcPost:6778045555198214144"
},
"campaign": "urn:li:sponsoredCampaign:360035215",
"intendedStatus": "ACTIVE"
}
A successful response returns a 201 Created HTTP
status code and the ID in the x-linkedin-id
response header. For example, urn:li:sponsoredCreative:120491345
.
Creatives Inline Schema
The following tables describe the schemas available for action=createInline
.
inlineContent Schema
Field Name | Required | Type | Description |
---|---|---|---|
inlineContent | Required if action=createInline | Post | The inline content (e.g., ugcPost) that is sponsored in the creative. Inline creation reduces the number of user calls. |
Sample Request
POST https://api.linkedin.com/rest/adAccounts/521124266/creatives?action=createInline
{
"creative": {
"inlineContent": {
"post": {
"adContext": {
"dscAdAccount": "urn:li:sponsoredAccount:521124266",
"dscStatus": "ACTIVE"
},
"author": "urn:li:organization:5803528",
"commentary": "commentary about the post",
"visibility": "PUBLIC",
"lifecycleState": "PUBLISHED",
"isReshareDisabledByAuthor": false,
"content": {
"media": {
"title": "Title of the video",
"id": "urn:li:video:C5510AQEdAeAosOmbOw"
}
}
}
},
"campaign": "urn:li:sponsoredCampaign:362490515",
"intendedStatus": "ACTIVE"
}
}
A successful response returns a 201 Created HTTP
status code and the ID in the x-linkedin-id
response header (e.g., urn:li:sponsoredCreative:120491345
)
Sample Request for Campaign Objective Type website visit
POST https://api.linkedin.com/rest/adAccounts/506213394/creatives?action=createInline
{
"creative": {
"inlineContent": {
"post": {
"adContext": {
"dscAdAccount": "urn:li:sponsoredAccount:506213394",
"dscStatus": "ACTIVE"
},
"author": "urn:li:organization:3798009",
"commentary": "commentary about the post",
"visibility": "PUBLIC",
"lifecycleState": "PUBLISHED",
"isReshareDisabledByAuthor": false,
"contentCallToActionLabel": "DOWNLOAD",
"contentLandingPage": "https://google.com",
"content": {
"media": {
"title": "Title of the video",
"id": "urn:li:video:C4D10AQEjgImrrO30gQ"
}
}
}
},
"campaign": "urn:li:sponsoredCampaign:175127926",
"intendedStatus": "ACTIVE"
}
}
Get a Creative
To obtain details provide the Creative URN in encoded format as shown in the following example.
Sample Request
GET https://api.linkedin.com/rest/adAccounts/520866471/creatives/urn%3Ali%3AsponsoredCreative%3A120491345
Sample Response
{
"createdAt": 1624249280000,
"servingHoldReasons": [
"STOPPED",
"CAMPAIGN_STOPPED",
"ACCOUNT_SERVING_HOLD",
"CAMPAIGN_GROUP_STATUS_HOLD"
],
"lastModifiedAt": 1624249280000,
"isTest": false,
"createdBy": "urn:li:person:rboDhL7Xsf",
"isServing": false,
"lastModifiedBy": "urn:li:person:rboDhL7Xsf",
"campaign": "urn:li:sponsoredCampaign:360035215",
"id": "urn:li:sponsoredCreative:119962155",
"intendedStatus": "DRAFT",
"account": "urn:li:sponsoredAccount:520866471",
"content": {
"reference": "urn:li:ugcPost:6778045555198214144"
}
}
Create a Creative
LinkedIn partners can create a video ad with either of the following options.
Create a Creative with an Existing Organic Post
You can sponsor an existing organic post that has been serving your company page followers and gone viral.
To create a video ad creative, the post associated with the creative must be in the PUBLISHED
state. The uploaded video may be in the PROCESSING
state for several minutes after creation. Use the Post endpoint to retrieve the post and check the lifecycleState
field. Do not create a video ad creative until the associated video post's lifecycleState
field is PUBLISHED
.
Sample Request
POST https://api.linkedin.com/rest/creatives
{
"content": {
"reference": "urn:li:ugcPost:6778045555198214144"
},
"campaign": "urn:li:sponsoredCampaign:360035215",
"intendedStatus": "ACTIVE"
}
A successful response returns a 201 Created HTTP
status code and the ID in the x-linkedin-id
response header. For example, urn:li:sponsoredCreative:120491345
.
Creatives Inline Schema
The following tables describe the schemas available for action=createInline
.
inlineContent Schema
Field Name | Required | Type | Description |
---|---|---|---|
inlineContent | Required if action=createInline | Post | The inline content (e.g., ugcPost) that is sponsored in the creative. Inline creation reduces the number of user calls. |
Sample Request
POST https://api.linkedin.com/rest/creatives?action=createInline
{
"creative": {
"inlineContent": {
"post": {
"adContext": {
"dscAdAccount": "urn:li:sponsoredAccount:521124266",
"dscStatus": "ACTIVE"
},
"author": "urn:li:organization:5803528",
"commentary": "commentary about the post",
"visibility": "PUBLIC",
"lifecycleState": "PUBLISHED",
"isReshareDisabledByAuthor": false,
"content": {
"media": {
"title": "Title of the video",
"id": "urn:li:video:C5510AQEdAeAosOmbOw"
}
}
}
},
"campaign": "urn:li:sponsoredCampaign:362490515",
"intendedStatus": "ACTIVE"
}
}
A successful response returns a 201 Created HTTP
status code and the ID in the x-linkedin-id
response header (e.g., urn:li:sponsoredCreative:120491345
)
Sample Request for Campaign Objective Type website visit
POST https://api.linkedin.com/rest/creatives?action=createInline
{
"creative": {
"inlineContent": {
"post": {
"adContext": {
"dscAdAccount": "urn:li:sponsoredAccount:506213394",
"dscStatus": "ACTIVE"
},
"author": "urn:li:organization:3798009",
"commentary": "commentary about the post",
"visibility": "PUBLIC",
"lifecycleState": "PUBLISHED",
"isReshareDisabledByAuthor": false,
"contentCallToActionLabel": "DOWNLOAD",
"contentLandingPage": "https://google.com",
"content": {
"media": {
"title": "Title of the video",
"id": "urn:li:video:C4D10AQEjgImrrO30gQ"
}
}
}
},
"campaign": "urn:li:sponsoredCampaign:175127926",
"intendedStatus": "ACTIVE"
}
}
Get a Creative
To obtain details provide the Creative URN in encoded format as shown in the following example.
Sample Request
Sample Response
{
"createdAt": 1624249280000,
"servingHoldReasons": [
"STOPPED",
"CAMPAIGN_STOPPED",
"ACCOUNT_SERVING_HOLD",
"CAMPAIGN_GROUP_STATUS_HOLD"
],
"lastModifiedAt": 1624249280000,
"isTest": false,
"createdBy": "urn:li:person:rboDhL7Xsf",
"isServing": false,
"lastModifiedBy": "urn:li:person:rboDhL7Xsf",
"campaign": "urn:li:sponsoredCampaign:360035215",
"id": "urn:li:sponsoredCreative:119962155",
"intendedStatus": "DRAFT",
"account": "urn:li:sponsoredAccount:520866471",
"content": {
"reference": "urn:li:ugcPost:6778045555198214144"
}
}
Search For Creatives
You can search for creative content in order to get a collection of creatives matching your search parameters. The Creative API currently supports search by creative id
, campaign
, content reference
, intendedStatus
, leadgenCreativeCallToActionDestinations
and test fields. The values within each field are displayed with 'or' (ORed) and values across fields are displayed with 'and' (ANDed).
GET https://api.linkedin.com/rest/adAccounts/{adAccountId}/creatives?campaigns=List(id1,id2,id3)&contentReferences=List(id1,id2,id3)&creatives=List(id1,id2,id3)&intendedStatuses=List(ARCHIVED,CANCELED)&isTestAccount=true&isTotalIncluded=false&leadgenCreativeCallToActionDestinations=List()&q=criteria&sortOrder=ASCENDING
Search For Creatives
You can search for creative content in order to get a collection of creatives matching your search parameters. The Creative API currently supports search by creative id
, campaign
, account
, content reference
, intendedStatus
, leadgenCreativeCallToActionDestinations
and test fields. The API supports finding creatives from multiple accounts. The values within each field are displayed with 'or' (ORed) and values across fields are displayed with 'and' (ANDed).
GET https://api.linkedin.com/rest/creatives?accounts=List(id1,id2,id3)&campaigns=List(id1,id2,id3)&contentReferences=List(id1,id2,id3)&creatives=List(id1,id2,id3)&intendedStatuses=List(ARCHIVED,CANCELED)&isTestAccount=true&isTotalIncluded=false&leadgenCreativeCallToActionDestinations=List()&q=criteria&sortOrder=ASCENDING
Search For Creatives
You can search for creative content in order to get a collection of creatives matching your search parameters. The Creative API currently supports search by creative id
, campaign
, account
, content reference
, intendedStatus
, leadgenCreativeCallToActionDestinations
and test fields. The API supports finding creatives from multiple accounts. The values within each field are displayed with 'or' (ORed) and values across fields are displayed with 'and' (ANDed).
GET https://api.linkedin.com/rest/creatives?accounts=List(id1,id2,id3)&campaigns=List(id1,id2,id3)&contentReferences=List(id1,id2,id3)&creatives=List(id1,id2,id3)&intendedStatuses=List(ARCHIVED,CANCELED)&isTestAccount=true&isTotalIncluded=false&leadgenCreativeCallToActionDestinations=List()&q=criteria&sortOrder=ASCENDING
Parameters
Field Name | Required | Description |
---|---|---|
campaigns | sponsoredCampaignUrn[] default=[] | Search values associated with creative sponsored campaign account |
contentReferences | Urn[] default=[] | Search values associated with creative content reference, can be share URN, or ugcPosts URN |
Creatives | sponsoredCreativeUrn[] default=[] | Search values associated with creative ID |
intendedStatuses | IntendedStatus[] default=[] | Search values associated with creative intendedStatus |
isTestAccount | optional boolean | Search values associated with creative isTest flag. True returns creatives only under test accounts. False returns creatives only under non-test accounts. Setting this to null returns creatives regardless of the account being test or non-test |
isTotalIncluded | boolean default=true | Whether to return the total number of matching records or not. True returns the total number in the paging area and promotes latency. |
leadgenCreativeCallToActionDestinations | adFormUrn[] default=[] | Search values associated with the creative leadgenCallToAction destination |
sortOrder | SortOrder default=ASCENDING | Sort mode by creative ID for matching records |
Parameters
Field Name | Required | Description |
---|---|---|
accounts | sponsoredAccountUrn[] default=[] | Search values associated with creative sponsored Ad Account |
campaigns | sponsoredCampaignUrn[] default=[] | Search values associated with creative sponsored campaign account |
contentReferences | Urn[] default=[] | Search values associated with creative content reference, can be share URN, or ugcPosts URN |
Creatives | sponsoredCreativeUrn[] default=[] | Search values associated with creative ID |
intendedStatuses | IntendedStatus[] default=[] | Search values associated with creative intendedStatus |
isTestAccount | optional boolean | Search values associated with creative isTest flag. True returns creatives only under test accounts. False returns creatives only under non-test accounts. Setting this to null returns creatives regardless of the account being test or non-test |
isTotalIncluded | boolean default=true | Whether to return the total number of matching records or not. True returns the total number in the paging area and promotes latency. |
leadgenCreativeCallToActionDestinations | adFormUrn[] default=[] | Search values associated with the creative leadgenCallToAction destination |
sortOrder | SortOrder default=ASCENDING | Sort mode by creative ID for matching records |
Parameters
Field Name | Required | Description |
---|---|---|
accounts | sponsoredAccountUrn[] default=[] | Search values associated with creative sponsored Ad Account |
campaigns | sponsoredCampaignUrn[] default=[] | Search values associated with creative sponsored campaign account |
contentReferences | Urn[] default=[] | Search values associated with creative content reference, can be share URN, or ugcPosts URN |
Creatives | sponsoredCreativeUrn[] default=[] | Search values associated with creative ID |
intendedStatuses | IntendedStatus[] default=[] | Search values associated with creative intendedStatus |
isTestAccount | optional boolean | Search values associated with creative isTest flag. True returns creatives only under test accounts. False returns creatives only under non-test accounts. Setting this to null returns creatives regardless of the account being test or non-test |
isTotalIncluded | boolean default=true | Whether to return the total number of matching records or not. True returns the total number in the paging area and promotes latency. |
leadgenCreativeCallToActionDestinations | adFormUrn[] default=[] | Search values associated with the creative leadgenCallToAction destination |
sortOrder | SortOrder default=ASCENDING | Sort mode by creative ID for matching records |
Sample Request
The following example describes a search for all creatives associated with a list of creative IDs. The id
results are in descending order.
The header X-RestLi-Method must be included in the request and set to FINDER
.
GET https://api.linkedin.com/rest/adAccounts/520866471/creatives?creatives=List(urn%3Ali%3AsponsoredCreative%3A119962155)&q=criteria&sortOrder=ASCENDING
Sample Response
{
"paging": {
"start": 0,
"count": 10,
"links": [],
"total": 1
},
"elements": [
{
"createdAt": 1624249280000,
"servingHoldReasons": [
"STOPPED",
"CAMPAIGN_STOPPED",
"ACCOUNT_SERVING_HOLD",
"CAMPAIGN_GROUP_STATUS_HOLD"
],
"lastModifiedAt": 1624249280000,
"isTest": false,
"createdBy": "urn:li:person:rboDhL7Xsf",
"isServing": false,
"lastModifiedBy": "urn:li:person:rboDhL7Xsf",
"campaign": "urn:li:sponsoredCampaign:360035215",
"id": "urn:li:sponsoredCreative:119962155",
"intendedStatus": "DRAFT",
"account": "urn:li:sponsoredAccount:520866471",
"content": {
"reference": "urn:li:share:6778045555198214144"
}
}
]
}
Update a Creative
You can change the details of following Creatives fields:
intendedStatus
:leadgenCallToAction
: fieldadFormUrn
- The ad form that is a target destination for thecallToAction
button. It can only be modified when the creative is in DRAFT status. It is read only once it is set for a creative and once it transitions to any non-draft intended status.leadgenCallToAction
: field label-Label
for thecallToAction
button
Sample Request
The following example call is for updating intendedStatus
to active
.
The status of a creative determines whether or not the ad is served. See intendedStatus
under Creative Schema to understand active, paused, archived, and cancelled statuses. You can change the intendedStatus
using the creative ID. You cannot pause an ad creative in review. This endpoint returns a 400
error if you attempt to change the status of an in-review ad creative to paused.
The header X-RestLi-Method must be included in the request and set to PARTIAL_UPDATE
.
A creative ID is the ID returned in the x-linkedin-id response header on successful create, for example: urn:li:sponsoredCreative:120491345
.
POST https://api.linkedin.com/rest/adAccounts/{adAccountId}/creatives/{creative ID}
{
"patch": {
"$set": {
"intendedStatus": "ACTIVE"
}
}
}
A successful response returns a 204
code.
Delete a Creative
A Creative can be deleted. Use DELETE method to delete a creative that meets one of the following conditions. To start the process of deleting other creative, update the status to PENDING_DELETION
.
- It is in a DRAFT state.
- It is linked to a Campaign in a DRAFT state.
- It is a video ad creative and
processingState
isPROCESSING_FAILED
.
The header X-RestLi-Method must be included in the request and set to DELETE
.
Sample Request
To delete a creative that meets one of the above conditions:
DELETE https://api.linkedin.com/rest/adAccounts/{adAccountId}/creatives/{creative ID}
To delete any other creative:
POST https://api.linkedin.com/rest/adAccounts/{adAccountId}/creatives/{creative ID}
{
"patch": {
"$set": {
"intendedStatus": "PENDING_DELETION"
}
}
}
A successful response returns a 204 code.
Batch Operations
- Batch Create Ads Creatives
- Batch Get Ads Creatives
- Batch Partial Update Ads Creatives
- Batch Delete Ads Creatives
Batch operations may only be performed on entities that belong to the same Ad Account.
Batch Create Ad Creatives
When you perform a batch create, the header X-RestLi-Method must be included in the request and set to BATCH_CREATE
.
POST https://api.linkedin.com/rest/adAccounts/{adAccountId}/creatives
{
"elements": [
{
"content": {
"reference": "urn:li:share:6778045555198214144"
},
"campaign": "urn:li:sponsoredCampaign:360035215",
"intendedStatus": "DRAFT"
},
{
"content": {
"reference": "urn:li:share:6778045555198214144"
},
"campaign": "urn:li:sponsoredCampaign:360035215",
"intendedStatus": "DRAFT"
}
]
}
Sample Response
{
"elements": [
{
"location": "/partnerApiCreatives/urn%3Ali%3AsponsoredCreative%3A120493375",
"status": 201,
"id": "urn:li:sponsoredCreative:120493375"
},
{
"location": "/partnerApiCreatives/urn%3Ali%3AsponsoredCreative%3A120493385",
"status": 201,
"id": "urn:li:sponsoredCreative:120493385"
}
]
}
Batch Get Ad Creatives
You can fetch a list of Ad Creatives with associated IDs.
When you perform a batch create, the header X-RestLi-Method must be included in the request and set to BATCH_GET
. Additionally, the request must include a header for X-Restli-Protocol-Version: 2.0.0
.
Sample Request
GET https://api.linkedin.com/rest/adAccounts/520866471/creatives?ids=List(urn%3Ali%3AsponsoredCreative%3A120560935,urn%3Ali%3AsponsoredCreative%3A120694175)
Sample Response
{
"results": {
"urn:li:sponsoredCreative:120560935": {
"servingHoldReasons": [
"UNDER_REVIEW",
"CAMPAIGN_STOPPED",
"ACCOUNT_SERVING_HOLD",
"CAMPAIGN_GROUP_STATUS_HOLD"
],
"lastModifiedAt": 1633533057000,
"lastModifiedBy": "urn:li:person:rboDhL7Xsf",
"content": {
"reference": "urn:li:share:6778045555198214144"
},
"createdAt": 1633533057000,
"isTest": false,
"createdBy": "urn:li:person:rboDhL7Xsf",
"review": {
"status": "PENDING"
},
"isServing": false,
"campaign": "urn:li:sponsoredCampaign:360035215",
"id": "urn:li:sponsoredCreative:120560935",
"intendedStatus": "ACTIVE",
"account": "urn:li:sponsoredAccount:520866471"
},
"urn:li:sponsoredCreative:120694175": {
"servingHoldReasons": [
"UNDER_REVIEW",
"CAMPAIGN_STOPPED",
"ACCOUNT_SERVING_HOLD",
"CAMPAIGN_GROUP_STATUS_HOLD"
],
"lastModifiedAt": 1634718249000,
"lastModifiedBy": "urn:li:person:rboDhL7Xsf",
"content": {
"reference": "urn:li:share:6778045555198214144"
},
"createdAt": 1634718249000,
"isTest": false,
"createdBy": "urn:li:person:rboDhL7Xsf",
"review": {
"status": "PENDING"
},
"isServing": false,
"campaign": "urn:li:sponsoredCampaign:360035215",
"id": "urn:li:sponsoredCreative:120694175",
"intendedStatus": "ACTIVE",
"account": "urn:li:sponsoredAccount:520866471"
}
},
"statuses": {
"urn:li:sponsoredCreative:120560935": 200,
"urn:li:sponsoredCreative:120694175": 200
},
"errors": {}
}
Batch Partial Update Ad Creatives
When you perform a batch partial update, the header X-RestLi-Method must be included in the request and set to BATCH_PARTIAL_UPDATE
. Additionally, the request must include a header for X-Restli-Protocol-Version: 2.0.0
.
POST https://api.linkedin.com/rest/adAccounts/{adAccountId}/creatives?ids=List(urn%3Ali%3AsponsoredCreative%3A120493375,urn%3Ali%3AsponsoredCreative%3A120493385)
{
"entities": {
"urn:li:sponsoredCreative:120493375": {
"patch": {
"$set": {
"intendedStatus": "CANCELED"
}
}
},
"urn:li:sponsoredCreative:120493385": {
"patch": {
"$set": {
"intendedStatus": "DRAFT"
}
}
}
}
}
Batch Delete Ad Creatives
Multiple creatives can be deleted. Use DELETE method to delete creatives that meet one of the following conditions. To start the process of deleting other creatives, update the status to PENDING_DELETION
.
- Creative is in a DRAFT state.
- Creative is linked to a Campaign in a DRAFT state.
- Creative is a Video Ad creative and
processingState
isPROCESSING_FAILED
.
Sample Request
To delete creatives that meets one of the above conditions:
DELETE https://api.linkedin.com/rest/adAccounts/{adAccountId}/creatives?ids=List(urn%3Ali%3AsponsoredCreative%3A120493375,urn%3Ali%3AsponsoredCreative%3A120493385)
To delete any creatives that don't meet above conditions:
POST https://api.linkedin.com/rest/adAccounts/{adAccountId}/creatives?ids=List(urn%3Ali%3AsponsoredCreative%3A120493375,urn%3Ali%3AsponsoredCreative%3A120493385)
{
"entities":{
"120493375":{
"patch":{
"$set":{
"intendedStatus":"PENDING_DELETION"
}
}
},
"120493385":{
"patch":{
"$set":{
"intendedStatus":"PENDING_DELETION"
}
}
}
}
}
A successful response returns a 204
code.
Sample Response
The sample request attempted to delete two Ad Creatives. The sample response below shows that only Ad Creatives 1 was successfully updated.
{
"results": {
"creative_id_1":{
"Status":204
}
},
"errors":{
"creative_id_2":{
//error detail
}
}
}
Sample Request
The following example describes a search for all creatives associated with a list of creative IDs. The id
results are in descending order.
The header X-RestLi-Method must be included in the request and set to FINDER
.
GET https://api.linkedin.com/rest/creatives?creatives=List(urn%3Ali%3AsponsoredCreative%3A119962155)&q=criteria&sortOrder=ASCENDING
Sample Response
{
"paging": {
"start": 0,
"count": 10,
"links": [],
"total": 1
},
"elements": [
{
"createdAt": 1624249280000,
"servingHoldReasons": [
"STOPPED",
"CAMPAIGN_STOPPED",
"ACCOUNT_SERVING_HOLD",
"CAMPAIGN_GROUP_STATUS_HOLD"
],
"lastModifiedAt": 1624249280000,
"isTest": false,
"createdBy": "urn:li:person:rboDhL7Xsf",
"isServing": false,
"lastModifiedBy": "urn:li:person:rboDhL7Xsf",
"campaign": "urn:li:sponsoredCampaign:360035215",
"id": "urn:li:sponsoredCreative:119962155",
"intendedStatus": "DRAFT",
"account": "urn:li:sponsoredAccount:520866471",
"content": {
"reference": "urn:li:share:6778045555198214144"
}
}
]
}
Update a Creative
You can change the details of following Creatives fields:
intendedStatus
leadgenCallToAction
: It can only be modified when the creative is inDRAFT
status. It is read only once it is set for a creative and once it transitions to any non-draft intended status.- Field
destination
- The ad form that is a target destination for thecallToAction
button. - Field
label
- The label for thecallToAction
button.
- Field
Sample Request
The following example call is for updating intendedStatus
to active
.
The status of a creative determines whether or not the ad is served. See intendedStatus
under Creative Schema to understand active, paused, archived, and cancelled statuses. You can change the intendedStatus
using the creative ID. You cannot pause an ad creative in review. This endpoint returns a 400
error if you attempt to change the status of an in-review ad creative to paused.
The header X-RestLi-Method must be included in the request and set to PARTIAL_UPDATE
.
A creative ID is the ID returned in the x-linkedin-id response header on successful create, for example: urn:li:sponsoredCreative:120491345
.
POST https://api.linkedin.com/rest/creatives/{creative ID}
{
"patch": {
"$set": {
"intendedStatus": "ACTIVE" ,
"leadgenCallToAction": {
"destination": "urn:li:adForm:123456",
"label": "LEARN_MORE"
}
}
}
}
A successful response returns a 204
code.
Delete a Creative
A Creative can be deleted. Use DELETE method to delete a creative that meets one of the following conditions. To start the process of deleting other creative, update the status to PENDING_DELETION
.
- It is in a DRAFT state.
- It is linked to a Campaign in a DRAFT state.
- It is a video ad creative and
processingState
isPROCESSING_FAILED
.
The header X-RestLi-Method must be included in the request and set to DELETE
.
Sample Request
To delete a creative that meets one of the above conditions:
DELETE https://api.linkedin.com/rest/creatives/{creative ID}
To delete any other creative:
POST https://api.linkedin.com/rest/creatives/{creative ID}
{
"patch": {
"$set": {
"intendedStatus": "PENDING_DELETION"
}
}
}
A successful response returns a 204 code.
Batch Operations
- Batch Create Ads Creatives
- Batch Get Ads Creatives
- Batch Partial Update Ads Creatives
- Batch Delete Ads Creatives
Batch operations may only be performed on entities that belong to the same Ad Account.
Batch Create Ad Creatives
When you perform a batch create, the header X-RestLi-Method must be included in the request and set to BATCH_CREATE
.
POST https://api.linkedin.com/rest/creatives
{
"elements": [
{
"content": {
"reference": "urn:li:share:6778045555198214144"
},
"campaign": "urn:li:sponsoredCampaign:360035215",
"intendedStatus": "DRAFT"
},
{
"content": {
"reference": "urn:li:share:6778045555198214144"
},
"campaign": "urn:li:sponsoredCampaign:360035215",
"intendedStatus": "DRAFT"
}
]
}
Sample Response
{
"elements": [
{
"location": "/partnerApiCreatives/urn%3Ali%3AsponsoredCreative%3A120493375",
"status": 201,
"id": "urn:li:sponsoredCreative:120493375"
},
{
"location": "/partnerApiCreatives/urn%3Ali%3AsponsoredCreative%3A120493385",
"status": 201,
"id": "urn:li:sponsoredCreative:120493385"
}
]
}
Batch Get Ad Creatives
You can fetch a list of Ad Creatives with associated IDs.
When you perform a batch create, the header X-RestLi-Method must be included in the request and set to BATCH_GET
. Additionally, the request must include a header for X-Restli-Protocol-Version: 2.0.0
.
Sample Request
GET https://api.linkedin.com/rest/creatives?ids=List(urn%3Ali%3AsponsoredCreative%3A120560935,urn%3Ali%3AsponsoredCreative%3A120694175)
Sample Response
{
"results": {
"urn:li:sponsoredCreative:120560935": {
"servingHoldReasons": [
"UNDER_REVIEW",
"CAMPAIGN_STOPPED",
"ACCOUNT_SERVING_HOLD",
"CAMPAIGN_GROUP_STATUS_HOLD"
],
"lastModifiedAt": 1633533057000,
"lastModifiedBy": "urn:li:person:rboDhL7Xsf",
"content": {
"reference": "urn:li:share:6778045555198214144"
},
"createdAt": 1633533057000,
"isTest": false,
"createdBy": "urn:li:person:rboDhL7Xsf",
"review": {
"status": "PENDING"
},
"isServing": false,
"campaign": "urn:li:sponsoredCampaign:360035215",
"id": "urn:li:sponsoredCreative:120560935",
"intendedStatus": "ACTIVE",
"account": "urn:li:sponsoredAccount:520866471"
},
"urn:li:sponsoredCreative:120694175": {
"servingHoldReasons": [
"UNDER_REVIEW",
"CAMPAIGN_STOPPED",
"ACCOUNT_SERVING_HOLD",
"CAMPAIGN_GROUP_STATUS_HOLD"
],
"lastModifiedAt": 1634718249000,
"lastModifiedBy": "urn:li:person:rboDhL7Xsf",
"content": {
"reference": "urn:li:share:6778045555198214144"
},
"createdAt": 1634718249000,
"isTest": false,
"createdBy": "urn:li:person:rboDhL7Xsf",
"review": {
"status": "PENDING"
},
"isServing": false,
"campaign": "urn:li:sponsoredCampaign:360035215",
"id": "urn:li:sponsoredCreative:120694175",
"intendedStatus": "ACTIVE",
"account": "urn:li:sponsoredAccount:520866471"
}
},
"statuses": {
"urn:li:sponsoredCreative:120560935": 200,
"urn:li:sponsoredCreative:120694175": 200
},
"errors": {}
}
Batch Partial Update Ad Creatives
When you perform a batch partial update, the header X-RestLi-Method must be included in the request and set to BATCH_PARTIAL_UPDATE
. Additionally, the request must include a header for X-Restli-Protocol-Version: 2.0.0
.
POST https://api.linkedin.com/rest/creatives?ids=List(urn%3Ali%3AsponsoredCreative%3A120493375,urn%3Ali%3AsponsoredCreative%3A120493385)
{
"entities": {
"urn:li:sponsoredCreative:120493375": {
"patch": {
"$set": {
"intendedStatus": "CANCELED"
}
}
},
"urn:li:sponsoredCreative:120493385": {
"patch": {
"$set": {
"intendedStatus": "DRAFT"
}
}
}
}
}
Batch Delete Ad Creatives
Multiple creatives can be deleted. Use DELETE method to delete creatives that meet one of the following conditions. To start the process of deleting other creatives, update the status to PENDING_DELETION
.
- Creative is in a DRAFT state.
- Creative is linked to a Campaign in a DRAFT state.
- Creative is a Video Ad creative and
processingState
isPROCESSING_FAILED
.
Sample Request
To delete creatives that meets one of the above conditions:
DELETE https://api.linkedin.com/rest/creatives?ids=List(urn%3Ali%3AsponsoredCreative%3A120493375,urn%3Ali%3AsponsoredCreative%3A120493385)
To delete any creatives that don't meet above conditions:
POST https://api.linkedin.com/rest/creatives?ids=List(urn%3Ali%3AsponsoredCreative%3A120493375,urn%3Ali%3AsponsoredCreative%3A120493385)
{
"entities":{
"120493375":{
"patch":{
"$set":{
"intendedStatus":"PENDING_DELETION"
}
}
},
"120493385":{
"patch":{
"$set":{
"intendedStatus":"PENDING_DELETION"
}
}
}
}
}
A successful response returns a 204
code.
Sample Response
The sample request attempted to delete two Ad Creatives. The sample response below shows that only Ad Creatives 1 was successfully updated.
{
"results": {
"creative_id_1":{
"Status":204
}
},
"errors":{
"creative_id_2":{
//error detail
}
}
}
Ad Creative Rejection Reasons
Ad creatives go through a review process before they can be served. The following table lists the possible reasons an ad could be rejected. The symbol column shows the values that are returned through the API.
Symbol | Description |
---|---|
ADULT_CONTENT | LinkedIn does not allow ads related to sexual or adult content, products, or services, including images with nudity, escort services, erotic massage, pornography, sex toys, prostitution, sexual services, strip clubs, erotic dancing, or international bride services. |
AFFILIATE_ADVERTISING | LinkedIn does not allow affiliate ads and related programs. |
ALCOHOL | Ads for alcoholic beverages such as wine, beer and spirits are restricted on LinkedIn and may not be placed through our self-service tool. |
ANIMAL_OR_ANIMAL_PRODUCTS | LinkedIn does not allow ads for live animals or animal products, including sale of animals, furs or products made from furs, hides or body parts of animals included on any government endangered species lists. |
BACK_BUTTON_NOT_WORKING | The landing page must allow users to use the browser's 'Back' button to return to the page that the ad was displayed on. |
CHINA_POLICY_VIOLATION | Content does not comply with China Ads Policy. |
COPYRIGHTED_CONTENT | LinkedIn does not allow ads for products and services marketed for the purpose of (or that are primarily used for) the distribution of software, media and other content in violation of the intellectual property rights of others. |
COUNTERFEIT_GOODS | LinkedIn does not allow ads that sell or promote counterfeit goods. |
CRYPTOCURRENCY | LinkedIn does not allow ads related to the buying, selling or trading of cryptocurrencies. |
CURRENT_SENSITIVE_EVENTS | LinkedIn does not allow ads that could capitalize from, exploit or sensationalize the currently monitored sensitive event. |
DATA_COLLECTION_AND_PRIVACY | Do not use an ad to facilitate collection of a member's data. If you collect sensitive information, we ask that you use HTTPs. Sensitive information includes, but is not limited to, financial, identification, medical, and login information. |
DIETARY_SUPPLEMENTS | LinkedIn does not allow ads related to dietary supplements with ephedrine group alkaloids targeted to members under the age of 18. |
DRUGS_AND_RELATED_PRODUCTS |
|
EXCESSIVE_CAPITALIZATION | Do not use excessive capitalization in your ad, with the exception of valid acronyms and trademarks. |
EXCESSIVE_CONTACT_INFORMATION | You may include a single link and either a single email address or phone number in your ad. A QR code is considered an extra link if it's different than the landing page URL. |
EXCESSIVE_NEGATIVE_RESPONSE | For Sponsored Update Job Ads, job posting should only be listed state, and should not be allowed if job state is deleted, closed and so on. |
FAKE_DOCUMENT | LinkedIn does not allow ads for fake documents that could be used to trick or defraud. Examples include: (1) academic degrees, (2) professional licenses or certifications, (3) national IDs, (4) working permits (immigration status), (5) business licenses, (6) birth certificates, (7) passports, (8) invoices or receipts, (9) medical records, and (10) noble titles/status. |
GAMBLING_SWEEPSTAKES_AND_VIRTUAL_CURRENCY | LinkedIn does not allow ads related to gambling and sweepstakes or the sale of virtual currency (e.g., gaming). Ads related to the following are prohibited: sports betting, bingo, lotteries, gambling tours and tutoring, tools and software for gambling, scratch games. |
GENERAL_TRADEMARK_ISSUES | Do not use trademarks that you don't have a legal right to use in your ad. Your ad must not include any text that may be deemed as infringing upon the trademarks of other parties unless permission has been granted by the trademark owner. |
HACKING_AND_CRACKING | LinkedIn does not allow ads that promote products or services for hacking. This includes: instructions on how to illegally alter electronic equipment, bypass digital content management systems, or otherwise illegally tamper with software, servers, cell phones, or websites, or listen in or record conversations or information without proper consent. LinkedIn also does not allow products designed to interfere with the enforcement of traffic laws (radar detectors), surveillance products, encryption products/services, and de-encryption devices and services. |
HATE_VIOLENCE_DISCRIMINATION_AND_OPPOSITION | LinkedIn does not allow ads that include hate speech or show, or promote violence or discrimination against others, or are personal attacks on any individual, group, company or organization, or otherwise advocating against or targeting any individual, group, company or organization. |
HEALTH_MATTERS | Ads promoting unrealistic or misleading claims about health improvements, including related to diet and weight loss, are prohibited. |
ILLICIT_OR_RECREATIONAL_DRUGS_AND_RELATED_PRODUCTS | LinkedIn does not allow ads related to illicit or recreational drugs or any related products or services. |
IMPLIED_AFFILIATION | Do not imply you or your product is affiliated with or endorsed by others without their permission. |
INAPPROPRIATE_LANGUAGE_OR_IMAGE | Use appropriate and acceptable language and images in your ad. Do not use language or images that are considered offensive by any reasonable viewer of your ad. Even if legal in the applicable jurisdiction, LinkedIn does not allow ads that are indecent, violent, vulgar, suggestive or that, in the opinion of LinkedIn, may be offensive to good taste. |
INAPPROPRIATE_NAME | For Message Ads, we require the sender's name to be of a natural person. Do not use a fake name, invalid profile name, or company name to send the Message Ads. |
INCONSISTENT_DISPLAY_AND_LANDING_PAGE_URLS | Your display URL must match your destination URL. All members who click on your ad must be sent to the same destination URL and landing page. |
JOB_POSTING_WITHOUT_LISTED_STATE | Cannot promote a job posting that has been deleted, closed, or is in draft |
LEGITSCRIPT_APPROVAL_MISSING | Ads promoting pharmacies or telehealth services must originate from an approved Healthcare account. |
LINKEDIN_MENTIONED_IN_AD_TEXT | Do not use LinkedIn in your ad unless it refers to a page or product on our site, such as 'Find me on LinkedIn.' Do not imply affiliation with or endorsement by LinkedIn. |
LOANS_AND_FINANCIAL_SERVICES | Ads for loan and financial services must fulfill a specific set of requirements. |
MEDICAL_DEVICES_AND_TREATMENTS | Ads for medical devices and medical treatments, including clinical trials, are restricted. |
MISLEADING_CLAIMS | Your product or service must accurately match the text of your ad. Don't lie, exaggerate, and make false, misleading, or scientifically impossible claims. The claims you make in your ad should have factual support. |
MISMATCHED_AD_TEXT_AND_LANDING_PAGE_CONTENT | The photos and images in your ad should have a reasonable relationship to the product or service being advertised. |
MISSING_PRIVACY_POLICY | The landing page associated with the URL for your privacy policy is missing the actual privacy policy statement. |
MISSING_URL_FOR_WEBSITE_OBJECTIVE | An ad will be rejected with this rejection reason when it is based on a website chargeability campaign(i.e. advertiser will be charged based on website visits) but hasn't specified a URL as part of the ad. |
NON_MATCHING_LANGUAGES | The language of your creative should match the language on the site and the language you are targeting. |
NON_STANDARD_TEXT | Use correct spelling and grammar in the text of your ad. Do not use non-standard spelling, grammar, capitalization, and punctuation. Avoid excessive or inappropriate punctuation, or repeated punctuation (e.g. more than one single exclamation point). Do not use symbols (e.g. *, @) in a manner that differ from their standard meaning. Do not use symbols in place of a letter ("cl!ck"). Avoid repetitive words, text that is difficult to read because of how it is displayed (e.g. upside-down text), excessive or non-standard formatting, unsupported macro. Currently only %FIRSTNAME% and %FULLNAME% are supported in a Message Ad body. |
NONFUNCTIONAL_SITE | Do not advertise if any of the following scenarios applies: the URL does not work; your site is under construction; the domain is for sale; visitors land on an error page (such as 404 or 405 error); the URL leads to an email address or a file that requires an additional application to open. |
OCCULT_PURSUITS | LinkedIn does not allow ads for fortune telling, dream interpretations and individual horoscopes. |
OFFENSIVE_LANGUAGE | LinkedIn does not allow ads that use language that could be considered offensive by any reasonable viewer. |
OFFENSIVE_TO_GOOD_TASTE | LinkedIn does not allow for ads that are indecent, vulgar, suggestive or that, in the opinion of LinkedIn, may be offensive to good taste. Ads that depict violent or degrading behavior are not acceptable. In special circumstances, LinkedIn may determine that an ad that used to be acceptable, is no longer appropriate given current events. |
OFFER_NOT_FOUND | Do not advertise prices or offers that are inaccurate. Any advertised discount, offer, or price must be easily discoverable from the URL in your ad. |
OVER_THE_COUNTER_DRUGS | Ads promoting over-the-counter drugs are restricted and require prior authorization. |
PHARMACY_AND_TELEHEALTH | Ads for pharmacies and telehealth services are restricted and require prior authorization. |
POP_UP_OR_POP_UNDER | Do not send members to a landing page that generates a pop-up or pop-under. |
PRESCRIPTION_DRUGS | Ads promoting prescription drugs are restricted and require prior authorization. |
PROHIBITED_DATING_SERVICES | LinkedIn does not allow targeting of dating services to persons who are under 18. The dating services must not be sexually themed or engage in 'escort type' services where any person is compensated to participate in the date. |
PROHIBITED_POLITICAL_CONTENT | LinkedIn does not allow political advertisements including those ads advocating for or against a particular candidate, party, or ballot proposition or otherwise intended to influence an election outcome; ads fundraising for or by political candidates, parties, political action committees or similar organizations, or ballot propositions; and or ads exploiting a sensitive political issue even if the advertiser has no explicit political agenda. |
QUESTIONABLE_DOWNLOADS | LinkedIn does not allow ads and sites that promote automatic downloads without user consent, or downloads that might harm members. |
RESALE_OF_EVENT_TICKETS | LinkedIn does not allow ads for resale of event tickets. |
RINGTONES_AND_INAPPROPRIATE_VIDEO_GAMES | LinkedIn does not allow ads for downloadable ring tones and/or video games with inappropriate content, such as violence or adult content. |
SOLICITATION_OF_FUNDS | Ads that solicit funds are allowed only if they comply with applicable law and would qualify as tax deductible in the applicable jurisdiction. In the U.S., ads soliciting funds and donations must present tax exempt ID on the site. |
TEST_ADS | Your ad appears to be a test ad. Resubmit when the ad is final. |
TEST_TAKING_SERVICES | LinkedIn does not allow ads for test-taking services that offer to take tests for others, including but not limited to, academic tests, professional exams, certificates, etc. |
TOBACCO | LinkedIn does not allow ads related to cigarettes, pipes, cigars, tobacco, e-cigarettes, and related products. |
UNCLEAR_BILLING_PRACTICES | The products and services advertised in your ad should have fair and legal billing practices. Pricing and payment terms should be clear and easily findable and understandable by your customers prior to purchase, including explaining the rights to refund and termination. |
UNDISCLOSED | Type for hiding the internal rejection reasons caused by fraud content. |
UNSUPPORTED_COMPETITIVE_CLAIMS | Do not make deceptive or inaccurate claims about competitive products or services. |
UNSUPPORTED_LANGUAGE | LinkedIn does not currently support the language used in your creative. |
WEAPONS_AND_FIREWORKS | LinkedIn does not allow ads related to weapons, firearms, ammunition, fireworks, stun guns, air rifles, pyrotechnical devices or other violent products or services. |
Error Messages for Creatives Endpoint
Code | HTTP Status Code | Error Message Template |
---|---|---|
ACTION_CONDITIONALLY_NOT_ALLOWED | 400 | Action {action} is forbidden if field {field} is not set to {value} |
BATCH_OPERATION_CANNOT_HAVE_MULTI_AD_FORMATS | 400 | Batch operation for multiple creatives of different formats in a campaign is not allowed |
BRAND_LIFT_POLL_INVALID_SHARE_MEDIA_CATEGORY | 400 | Share Media Category {value} is invalid as Brand Life Poll must specify URN_REFERENCE as share media category |
BRAND_LIFT_POLL_NON_DARK_POST_CREATIVE | 400 | Reference {reference} is invalid as Brand Lift Poll must be a dark post |
BUTTON_LABEL_REQUIRED_FOR_JOBS_POSTING | 400 | Button Label is required but missing for Jobs V2 creatives when included Ad Sizes is non-empty |
CAMPAIGN_EXCEEDING_CREATIVE_TYPE_LIMIT | 400 | Creative type {value} is invalid as all creatives within a campaign must be of the same type |
CANNOT_UPDATE_CANCELED_CREATIVE | 400 | Cannot update a canceled creative |
CAROUSEL_NON_ACTIVITY_REFERENCE | 400 | Reference {value} is invalid as Sponsored Update Carousel creatives must have Urn Relation type as ACTIVITY |
CONDITIONAL_IMMUTABLE_FIELD | 400 | {field1} cannot be updated if {field2} is set to {value2} |
CPC_CAMPAIGN_INVALID_AD_TYPE | 400 | CPC campaigns should only contain dynamic ads creatives such as follower ads and spotlight ads, Creative type {value} is not allowed |
CREATIVE_CONTENT_NOT_ASSOCIATED_WITH_LANDING_PAGE_URL | 400 | Creative content should be associated with a landing page url |
CREATIVE_CONTENT_NOT_ASSOCIATED_WITH_VALID_PIPELINE_BUILDER_URL | 400 | Creative content should be associated with a valid pipeline builder url |
CREATIVE_CONTENT_NOT_ASSOCIATED_WITH_VALID_PIPELINE_BUILDER_URL_OR_EVENT_PAGE_URL | 400 | Creative content should be associated with a valid pipeline builder url or event page url |
CREATIVE_NOT_ALLOWED_IN_CAMPAIGN | 400 | A creative is not allowed in this campaign |
CTA_REQUIRED_FOR_LEAD_GEN | 400 | Call to Action {field} is required but missing for Lead Gen Creative |
DATE_CONDITIONAL_TOO_EARLY | 400 | {field1} cannot be set to {value1}; it must be before {field2} {value2} |
DIRECT_SPONSORED_CONTENT_MISMATCH | 400 | Direct Sponsored Content is not created by the account |
DYNAMIC_ADS_MISSING_AD_FORMAT | 400 | Ad format is required but missing for non Job Dynamic Ad |
EMPTY_FIELD | 400 | {field} cannot be blank |
FAILED_TO_EXTRACT_COMPANY_ID | 400 | Failed to extract company id from company profile info {value} |
FAIL_TO_RETRIEVE_DIRECT_SPONSORED_CONTENT | 500 | Fail to retrieve Direct Sponsored Content. Reference {value} |
FAIL_TO_RETRIEVE_UPDATE | 500 | Fail to retrieve update. Could be a temporary failure. Reference {value} |
FIELD_CONDITIONALLY_NOT_ALLOWED | 400 | {field1} is not allowed when field {field2} is set to {value2} |
FIELD_NOT_ALLOWED_ON_CREATION | 400 | {field} is not allowed on creation |
FIELD_NOT_EDITABLE | 400 | {field} for {type} is not editable |
FIELD_VALUE_TOO_LONG | 400 | {field} length {length} cannot exceeded maximum {max} length |
FOLLOW_COMPANY_V2_NONEMPTY_CLICK_URI | 400 | Click URI cannot be set to {value} and must be empty as the actual destination is determined from landing page |
HEADLINE_REQUIRED_FOR_JOBS_POSTING | 400 | Headline is required but missing for Jobs V2 creatives when included Ad Sizes is non-empty |
IMAGE_URN_EXCLUSIVE_WITH_IMAGE_ID | 400 | Image ID and image URN are mutually exclusive |
IMMUTABLE_FIELD | 400 | {field} cannot be updated |
INVALID_CLICK_URI | 400 | Unsupported click uri - {uri}. The scheme must be one of: {validSchemes} and the URI must be absolute |
INVALID_HREF | 400 | Click Uri {value} is invalid as it should be 500 characters or less and formatted with preceding http or https |
INVALID_PARENT_CAMPAIGN_TYPE | 400 | Invalid parent campaign type {type1} for this creative type {type2} |
INVALID_URN_TYPE | 400 | {field} value {value} must be a {urnType} URN |
INVALID_VALUE_NOT_ACTIVE | 400 | {field} value {value} is not active |
INVALID_VALUE_NOT_EXIST | 400 | {field} value {value} does not exist |
JOBS_CREATIVE_INVALID_AD_FORMAT | 400 | Ad format {value} is invalid as Jobs creative only allows work-with-us and picture-yourself ad formats |
JOB_POSTING_CANNOT_BE_FETCHED | 500 | Cannot fetch Job Posting |
JOB_STATE_NOT_LISTED_BUT_CREATIVE_IS_ACTIVE | 400 | For a job posting creative to be ACTIVE, it must have a job state of LISTED |
MISSING_FIELD_IN_VALUE | 400 | {field} is required but missing in {value} |
ORGANIC_STORY_UGC_INVALID_CTA_LABEL | 400 | Organic story landingPageTitle must contain a Call To Action label of type APPLY, DOWNLOAD, VIEW_QUOTE, LEARN_MORE, SIGN_UP, SUBSCRIBE, REGISTER, JOIN, ATTEND, REQUEST_DEMO, SEE_MORE for story to be sponsorable, label {value} is not allowed |
PARENT_URN_KEY_NOT_FOUND | 400 | Invalid parent URN {urn} not found |
POLI_LINK_FOLLOW_TEXT_MISMATCH | 400 | The href poli link cannot be set to {hrefValue} because the follow text value is {followTextValue}. The href value should have the format - {hrefTemplate} |
POLL_STICKERS_NOT_SUPPORTED_FOR_STORIES | 400 | Sponsored story cannot have poll sticker overlay |
REFERENCED_EVENT_CANNOT_HAVE_CANCELED_STATUS | 400 | The Creative refers to a UGC which references an Event {value} with CANCELED status |
REFERENCED_EVENT_END_TIME_PASSED | 400 | The Creative refers to a UGC which references an Event {value} that has already ended |
REFERENCED_EVENT_ORGANIZER_MISMATCH | 400 | The Author of UGC referenced in the Creative does not match with the Organizer of the Event {value} referenced in the UGC |
REFERENCE_MEDIA_CATEGORY_AND_CAMPAIGN_FORMAT_MISMATCH | 400 | The media category of reference {category} does not match the parent campaign format {format} |
REFERENCE_NOT_ALLOWED_FOR_TEXT_AD_CREATIVE | 400 | Reference is not allowed for text ad creative |
SINMAIL_INVALID_INMAIL_CONTENT | 400 | InMail content cannot be set to {value} for creative {key} because it does not exist |
SPONSORED_JOB_POSTING_NON_UGC_REFERENCE | 400 | Reference {value} is invalid as Sponsored job posting cannot be assigned with non UGC URN reference |
SPONSORED_UPDATE_JOB_POSTING_NON_JOB_REFERENCE | 400 | Reference {value} is invalid as Sponsored update job posting cannot be assigned with non JOB reference |
SPONSORED_UPDATE_JOB_POSTING_NON_SHARING_CONTENT | 400 | Sponsored update job posting creative cannot be attributed as non-shareable |
SPONSORED_VIDEO_NON_SHAREABLE_CONTENT | 400 | Sponsored Video creative cannot be attributed as non-shareable |
SPONSORED_VIDEO_NON_UGC_REFERENCE | 400 | Reference {value} is invalid as Sponsored Video creatives must have Urn Relation type as UGC |
SPONSORED_VIDEO_NON_VIDEO_REFERENCE | 400 | Reference {value} is invalid as Sponsored Video creative cannot be assigned with non VIDEO reference |
SPOTLIGHT_NOT_ASSOCIATED_WITH_VALID_PIPELINE_BUILDER_URL | 400 | Creative {field} should have a valid pipeline builder url |
SSU_NON_ACTIVITY_REFERENCE | 400 | Reference {value} is invalid as SSU creatives must have reference type as ACTIVITY except for IMAGE Story Items |
TRANSITION_CONDITIONALLY_NOT_ALLOWED | 400 | {field1} transition is not allowed from {beforeValue} to {afterValue} if {field2} is not set to {value2} |
TRANSITION_NOT_ALLOWED | 400 | {field} transition is not allowed from {beforeValue} to {afterValue} |
UGC_EXCEEDING_IMAGE_LIMIT | 400 | Media cannot be set to {value} as Image UGCs should have exactly one image to be sponsor |
UGC_INVALID_FEED_DISTRIBUTION | 400 | Feed distribution {value} is invalid as UGC content should set NONE feed distribution for dark post, MAIN_FEED for organic posts, and CONTAINER_ONLY for container posts |
UGC_INVALID_SHARE_MEDIA_CATEGORY | 400 | UGC only allows share media category of type ARTICLE, CAROUSEL, IMAGE, RICH, VIDEO, JOB, DOCUMENT and URN, Share Media Category {value} is not permitted |
UGC_INVALID_VISIBILITY_SETTING | 400 | This UGC reference {value} ad needs to be public to be sponsored, current visibility is set to {visibility} |
UGC_NON_SHARING_CONTENT_ERROR | 400 | Reference {value} is invalid as UGC content cannot be attributed as non-shareable |
UGC_RESHARE_CANNOT_BE_SPONSORED | 400 | Reference {value} cannot be sponsored as sponsoring a reshared UGC post is not allowed |
UNAUTHORIZED_ACCESS_TO_CHANGE_THE_REVIEW | 403 | Unauthorized access to change the review |
UNSAFE_HREF | 400 | Click Uri {value} contains either malicious content or poses safety concerns |
VIDEO_INVALID_HEIGHT | 400 | Video height value {value} must be between {minHeight} and {maxHeight} |
VIDEO_LENGTH_TOO_LONG | 400 | Video length value {value} seconds cannot be higher than {maxLength} seconds |
VIDEO_LENGTH_TOO_SHORT | 400 | Video length value {value} seconds cannot be lower than {minLength} seconds |
VIDEO_UNSUPPORTED_ASPECT | 400 | Video must have aspect ratio value {value} between {minRatio} and {maxRatio} |
VIDEO_UNSUPPORTED_WIDTH | 400 | Video width value {value} must be between {minWidth} and {maxWidth} |
WHITEPAPER_DOWNLOAD_CAMPAIGN_AD_FORM_MISMATCH | 400 | Campaign type and ad form type have to be both Whitepaper Download or both |
Feedback
Submit and view feedback for