Create and Manage Creatives

Warning

Deprecation Notice
The Marketing version 202303 (Marketing March 2023) and below has been sunset 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:

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/or r_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 the rw_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.
  • ACTIVE - Creative development is complete and the creative is available for review and can be served.
  • PAUSED - Creative development is complete and the creative is current, but should temporarily not be served.
  • DRAFT - Creative development is incomplete and may still be edited.
  • ARCHIVED - Creative development is complete, but creative should not be served and should be separated from non-archived creatives in any UI.
  • CANCELLED - The creative will be hidden when querying all creatives under a campaign and canceled creatives will be retrievable if the underlying posts are still valid/available.
  • PENDING_DELETION - Denotes that the creative has been requested to be deleted that is currently pending.
  • REMOVED - Denotes that the creative was deleted, but must remain fetchable due to the existence of performance data.
  • 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.
  • ACTIVE - Creative development is complete and the creative is available for review and can be served.
  • PAUSED - Creative development is complete and the creative is current, but should temporarily not be served.
  • DRAFT - Creative development is incomplete and may still be edited.
  • ARCHIVED - Creative development is complete, but creative should not be served and should be separated from non-archived creatives in any UI.
  • CANCELLED - The creative will be hidden when querying all creatives under a campaign and canceled creatives will be retrievable if the underlying posts are still valid/available.
  • PENDING_DELETION - Denotes that the creative has been requested to be deleted that is currently pending.
  • REMOVED - Denotes that the creative was deleted, but must remain fetchable due to the existence of performance data.
  • 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
  • PENDING - Creative is pending review and not serving.
  • APPROVED - Creative is approved for serving. It includes Creative that has been preapproved or auto approved by content model.
  • REJECTED - Creative is rejected. It includes the Creative that has been auto rejected by content model.
  • NEEDS_REVIEW - Creative has been rejected by content model or policy checker or returned by fallback case that auto approval did not make any decision.
  • 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 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

    GET https://api.linkedin.com/rest/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"
      }
    }
    

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

    • 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
    

    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
    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. Max is 1000.
    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

    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 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: field adFormUrn - The ad form that is a target destination for the callToAction 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 the callToAction 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 is PROCESSING_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 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 is PROCESSING_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: field adFormUrn - The ad form that is a target destination for the callToAction 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 the callToAction 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 is PROCESSING_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 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 is PROCESSING_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 in DRAFT 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 the callToAction button.
      • Field label - The label for the callToAction 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/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 is PROCESSING_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 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 is PROCESSING_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
    1. Prescription Drugs: Ads promoting prescription drugs are restricted and require prior authorization. Ads may only promote prescription drugs in the United States jurisdiction. Such ads must not target members under 18 years of age.
    2. Over-the-Counter: 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.
    3. Illicit or Recreational Drugs and related products: LinkedIn does not allow ads related to illicit or recreational drugs or any related products or services. Ads that promote illegal drugs, highs, herbal medicines and treatments, psychoactive effects of substances, or aids to pass drug tests are all prohibited.
    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 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 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 pharmacy or telehealth services are restricted and require prior authorization. Requirements for authorization include LegitScript certification and onboarding.
    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. Such ads must not target members under the age of 18, and can only target healthcare-related professionals.
    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.
    MISINFORMATION Ads promoting confirmed false or substantially misleading claims in violation of LinkedIn’s Professional Community Policies are prohibited.
    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_UK_FCA_FINANCIAL Ads promoting financial services or products targeting audiences in the United Kingdom but not authorized from UK Financial Conduct Authority.
    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. 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 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.
    PHISHING Phishing attempt and identity theft.
    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. 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.
    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