Create and Manage Creatives
Warning
Deprecation Notice
The Marketing Version 202310 (Marketing October 2023) and earlier versions (excluding 202306 and 202307) have been sunset. Additionally, the unversioned APIs will 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. |
name | No | string | The name of the creative that can be set by advertiser; primarily used to make it easier to reference a Creative and to recall its purpose. |
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. |
Call to Action Label Types
Type | Description |
---|---|
APPLY | Call To Action button on the creative shows 'Apply now'. |
DOWNLOAD | Call To Action button on the creative shows 'Download'. |
VIEW_QUOTE | Call To Action button on the creative shows 'Get Quote'. |
LEARN_MORE | Call To Action button on the creative shows 'Learn More'. |
SIGN_UP | Call To Action button on the creative shows 'Sign Up'. |
SUBSCRIBE | Call To Action button on the creative shows 'Subscribe'. |
REGISTER | Call To Action button on the creative shows 'Register'. |
REQUEST_DEMO | Call To Action button on the creative shows 'Request Demo'. |
JOIN | Call To Action button on the creative shows 'Join'. |
ATTEND | Call To Action button on the creative shows 'Attend'. |
UNLOCK_FULL_DOCUMENT | Call To Action button on the creative shows 'Unlock Full Document'. |
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 non-connected-television video file sizing. For connected television video specification, refer to Connected Television Video Ads Specifications for more information.
- Length: Three seconds to 30 minutes
- File size: Between 75kb and 500MB
- 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
.
Note
Starting from the 202410 version, the new name
field for creatives will override the legacy dscName
field when displaying a creative's name in Campaign Manager. However, both names can still be accessed via their respective API endpoints: /creatives
and /adDirectSponsoredContents
.
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",
"dscName" : "legacy name field"
},
"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",
"name": "new name field"
}
}
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,
"name": "the sample creative name",
"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
Note
From 202401 version and above, we have moved from index based pagination to cursor based pagination for our search APIs.
Cursor based Pagination for search APIs
The creatives API implements cursor based pagination using the pageSize and pageToken parameters for search method. The max allowed pageSize is 100.
- pageSize governs the number of requested entities.
- pageToken is used to get the next set of results.
- nextPageToken is returned in metadata field of the search response.
- This should be passed in pageToken query parameter in the request to get the next page of results.
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
, 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
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 |
leadgenCreativeCallToActionDestinations | adFormUrn[] default=[] | Search values associated with the creative leadgenCallToAction destination |
sortOrder | SortOrder default=ASCENDING | Sort mode by creative ID for matching records |
pageSize | no | Specifies the number of entities to be returned. The default is 100. |
pageToken | no | Unique key representing the last entity of the response. This is to be used to fetch the next set of entities. If less than pageSize entities are returned in the current response, pageToken will be null |
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 |
Sample Request
The following example describes a search for all creatives associated with a list of creative IDs. The id
results are in ascending 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
{
"metadata": {
"nextPageToken": "DgGerr1iVQreCJVjZDOW_grcp63nueBDipsS4DJpvJo"
},
"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"
}
}
]
}
API Call to get the next set of results would use the nextPageToken passed in the response above.
GET https://api.linkedin.com/rest/adAccounts/520866471/creatives?creatives=List(urn%3Ali%3AsponsoredCreative%3A119962155)&q=criteria&sortOrder=ASCENDING&pageToken=DgGerr1iVQreCJVjZDOW_grcp63nueBDipsS4DJpvJo
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
buttonname
: The name of the creative that can be set by advertiser.
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/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
}
}
}
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 | 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 | Affiliate Advertising: LinkedIn does not allow affiliate ads and related programs. |
ALCOHOL | 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 | 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 | 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 | 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 | Counterfeit goods: LinkedIn does not allow ads that sell or promote counterfeit goods. |
CRYPTOCURRENCY | 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 | Data collection & 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. |
DECEPTIVE_BEHAVIOR | Deceptive Behavior: Behavior like cloaking or unicode manipulation. |
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 | Excessive capitalization: Do not use excessive capitalization in your ad, with the exception of valid acronyms and trademarks. |
EXCESSIVE_CONTACT_INFORMATION | 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 from the landing page URL. |
EXCESSIVE_NEGATIVE_RESPONSE | Excessive negative response: Ensure that your ad does not continue the conversation after the member has declined your offer. |
FAKE_DOCUMENT | 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 | Gambling and sweepstakes: LinkedIn does not allow ads related to gambling or sweepstakes. 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 | 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 | Hacking, cracking, and circumvention: 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 | Hate speech and discrimination: 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 | Health matters: Ads promoting unrealistic or misleading claims about health improvements, including related to diet and weight loss, are prohibited. Ads promoting unhealthy or unsafe behaviors, such as excessive consumption of an item, are also prohibited. LinkedIn reserves the right to restrict advertising related to any health matter. |
ILLICIT_OR_RECREATIONAL_DRUGS_AND_RELATED_PRODUCTS | Illicit or Recreational Drugs and Related Products: LinkedIn does not allow ads promoting the sale or use of illicit or recreational drugs, or any related products or services. Ads promoting illegal drugs, highs, herbal medicines and treatments, psychoactive effects of substances, or aids to pass drug tests are prohibited. |
IMPLIED_AFFILIATION | Implied affiliation: Do not imply you or your product is affiliated with or endorsed by others without their permission. |
INAPPROPRIATE_LANGUAGE_OR_IMAGE | Inappropriate language or image: Please use appropriate and acceptable language and images in your ad. Do not use language or images that could be 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 | Inappropriate name: For Sponsored InMails, 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 Sponsored InMail. |
INCONSISTENT_DISPLAY_AND_LANDING_PAGE_URLS | 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 | Job Posting Inactive: This ad promotes a job posting that has been deleted, closed, is in draft, etc. Ensure your ad promotes an active job posting. |
LEGITSCRIPT_APPROVAL_MISSING | Authorization Required: Ads promoting pharmacy or telehealth services are restricted and require prior authorization. Requirements for authorization include LegitScript certification and onboarding. |
LINKEDIN_MENTIONED_IN_AD_TEXT | LinkedIn in ad: 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 | Loans & financial services: Ads for loan and financial services must fulfill a specific set of requirements. |
MALICIOUS_SOFTWARE_OR_BROWSER | Malicious Software/Browser: Do not use an ad to promote, install or distribute viruses, worms, spyware, malware or other malicious software. Software should only be installed with the permission of the user and should be readily removable by the user. |
MEDICAL_DEVICES_AND_TREATMENTS | Medical Devices and Medical Treatments: Ads for medical devices and medical treatments, including clinical trials, are restricted. Such ads must not target members under the age of 18, and can only target healthcare-related professionals. |
MISINFORMATION | Misinformation: Ads promoting confirmed false or substantially misleading claims in violation of LinkedIn’s Professional Community Policies are prohibited. |
MISLEADING_CLAIMS | Misleading claims: Your product or service must accurately match the text of your ad - don't lie, don't exaggerate and don't 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 | 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 | Missing privacy policy: The landing page associated with the URL for your privacy policy is missing the actual privacy policy statement. Please note a privacy policy is required if using a Lead Gen Form. |
MISSING_UK_FCA_FINANCIAL | UK FCA Authorisation: Ads promoting financial services or products targeting audiences in the United Kingdom may come from UK Financial Conduct Authority authorised advertisers only. Learn more. |
MISSING_URL_FOR_WEBSITE_OBJECTIVE | Missing URL: You must include URL links associated with the ad creative when your campaign objective is website visits or website conversion. |
NON_MATCHING_LANGUAGES | Non-matching languages: The language of your creative should match the language on the site and the language you are targeting. |
NON_STANDARD_TEXT | 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 | Non-functional 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 | Occult pursuits: LinkedIn does not allow ads for fortune telling, dream interpretations and individual horoscopes. |
OFFENSIVE_LANGUAGE | Offensive language: LinkedIn does not allow ads that use language that could be considered offensive by any reasonable viewer. |
OFFENSIVE_TO_GOOD_TASTE | 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 was acceptable, is no longer appropriate given current events. |
OFFER_NOT_FOUND | 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 | Over-the-counter drugs: Ads promoting over-the-counter drugs are restricted and require prior authorization. Ads may only promote over-the-counter drugs in jurisdictions where it is legal and must adhere to all applicable laws and regulations. Such ads must not target members under 18 years of age. Ads targeting jurisdictions outside the United States or Canada may target healthcare-related professionals only. |
PHARMACY_AND_TELEHEALTH | Pharmacy and Telehealth: Ads promoting pharmacy or telehealth services are restricted and require prior authorization. Requirements for authorization include LegitScript certification. Ads may only promote pharmacy and telehealth services in the following jurisdictions: the United States. Such ads must not target members under 18 years of age. Learn more. |
PHISHING | Phishing: Do not use ads to promote websites that trick users into providing personal or other information. |
POP_UP_OR_POP_UNDER | Pop-up or pop-under: Do not send members to a landing page that generates a pop-up or pop-under. |
PRESCRIPTION_DRUGS | Prescription drugs: Ads promoting prescription drugs are restricted and require prior authorization. Ads may only promote prescription drugs in the following jurisdictions: the United States and Canada. Such ads must not target members under 18 years of age. Learn more. |
PROHIBITED_DATING_SERVICES | 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 | Political: 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 | 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 | Resale of event tickets: LinkedIn does not allow ads for resale of event tickets. |
RINGTONES_AND_INAPPROPRIATE_VIDEO_GAMES | Ringtones and video games: LinkedIn does not allow ads for downloadable ring tones and/or video games with inappropriate content, such as violence or adult content. |
SCAMS | Fraud and Deception: Ads must not be fraudulent or deceptive. |
SOLICITATION_OF_FUNDS | 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 | Incomplete ad: Your ad appears to be a test ad. Please resubmit when the ad is final. |
TEST_TAKING_SERVICES | 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 | Tobacco products or cigarettes: LinkedIn does not allow ads related to cigarettes, pipes, cigars, tobacco, e-cigarettes, and related products. |
UNCLEAR_BILLING_PRACTICES | 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 refunds and termination. |
UNDISCLOSED | Type for hiding the internal rejection reasons caused by fraud content. |
UNSUPPORTED_COMPETITIVE_CLAIMS | Unsupported competitive claims: Do not make deceptive or inaccurate claims about competitive products or services. |
UNSUPPORTED_LANGUAGE | Unsupported language: LinkedIn does not currently support the language used in your creative. |
WEAPONS_AND_FIREWORKS | Weapons, firearms, ammunition, fireworks, or any other violent products or services: 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 |
CTV_VIDEO_UNSUPPORTED_BITRATE | 400 | CTV video bitrate value {value} must be greater than {minBitRate}. Note: Applicable only from versions 202408 and above. |