Ads Review Information (Legacy)

Warning

Deprecation Notice
The Marketing version 202304 (Marketing April 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 Ads Review Information API provides a programmatic way for LinkedIn partners to retrieve ad entities status such as Ad Lift Tests. You can check the review state, final decision, and metadata associated with granular information such as rejection reasons.

Note

This endpoint can only be used for fetching the review status of an ad entity. Update operations are not permitted. Currently this API only supports review of Ad Lift test entity.

Permissions

Permission Description
rw_ads Manage and read an authenticated member's ad accounts. Restricted to ad accounts in which the authenticated member has one of the following Ad Account roles.
  • ACCOUNT_BILLING_ADMIN
  • ACCOUNT_MANAGER
  • CAMPAIGN_MANAGER
  • CREATIVE_MANAGER
  • r_ads Read an authenticated member's ad accounts. Restricted to ad accounts in which the authenticated member has one of the following Ad Account roles.
  • ACCOUNT_BILLING_ADMIN
  • ACCOUNT_MANAGER
  • CAMPAIGN_MANAGER
  • CREATIVE_MANAGER
  • VIEWER
  • See Account Access Controls for more information on Ad Account roles.

    Schema

    The following tables show the schemas for the response fields.

    AdReviewInformation

    Review result for an ad entity.

    Field Name Type Description
    decisionInfo ReviewDecisionInformation Contains the final ad entity decision and additional decision metadata. Field is not present if a decision has not been made on the ad entity yet (e.g., if an ad entity is newly created and the review process has not yet completed). If stateInfo.state is IN_PROGRESS and decisionInfo is present, it means that a temporary decision has been made subject to change. If stateInfo.state is COMPLETED, then decisionInfo is always present and represents a final decision that does not change unless re-review is triggered.
    stateInfo ReviewStateInformation Contains the current review state and additional metadata about that state.

    ReviewDecisionInformation

    Final decision on an ad entity and associated metadata.

    Field Name Type Description
    decision string One of the following decisions can be taken upon an ad entity.
  • APPROVED
  • REJECTED
  • decisionReason ReviewRejectionMetadata Reason for current entity decision

    ReviewStateInformation

    Current review state of an ad entity and associated metadata

    Field Name Type Description
    state string Current entity review state. Possible values include:
  • IN_PROGRESS- Review is in progress
  • BLOCKED- Review is suspended because of external reasons(e.g., campaign ran out of budget).
  • COMPLETED- Review completed and a final review decision has been made on this entity
  • ReviewRejectionMetadata

    Reasons for review rejection

    Field Name Type Description
    customRejectionInformation optional Union of MessageRejectionInformation[], CardRejectionInformation[] The union of custom rejection information, like rejection reasons for a particular ad entity. For example, messageRejectionInformation for conversation ads. This field could be null indicating no custom information.
    rejectionReasons Array[] An array of reasons for rejecting ad entities. For more details, refer to the Rejection Reason list.

    Get AdsReviewInformation

    Get the AdsReviewInformation. API calls with insufficient read permission receive a 403 Forbidden response.

    The request must include a header for Restli Protocol 2.0.0 as X-Restli-Protocol-Version: 2.0.0. Restli 2.0 requires URNs in query params to be URL encoded. For example, urn:li:adLiftTest:1245678 would become urn%3Ali%3A adLiftTest t%3A1245678.

    Note

    Support for BATCH_GET is forthcoming.

    Request Syntax

    GET https://api.linkedin.com/v2/adsReviewInformation/($params:(contentVersion:(versionTag:{adReviewVersionTag})),urn:({adEntity}:{adEntityUrn}))
    

    Request Parameters

    Field Name Required Description
    adReviewVersionTag Yes Reviewed content version. Fetch this for your ad entity every time before calling this endpoint to avoid any stale information as the content version can change if the review flow is re-triggered. Fetching version tag for below entities :
  • Ad Lift Test - Invoke the /adLiftTests GET endpoint and use the contentReviewVersion field present in the response
  • adEntity Yes Name of the ad entity. For example, adLiftTest
    adEntityUrn Yes The ad entity URN. For example, urn:li:adLiftTest:123

    Example

    GET https://api.linkedin.com/v2/adsReviewInformation/$params:(contentVersion:(versionTag:1604052659511)),urn:(adLiftTest:urn%3Ali%3AadLiftTest%3A18725))
    

    Sample Responses

    Rejected Ad Entity

    {
       "decisionInfo":{
          "decision":"REJECTED",
          "decisionReason":{
             "rejectionReason":{
                "rejectionReasons":[
                   "INAPPROPRIATE_NAME"
                ]
             }
          }
       },
       "stateInfo":{
          "state":"COMPLETED"
       }
    }
    

    Ad Enitity in review

    {
       "stateInfo":{
          "state":"IN_PROGRESS"
       }
    }
    

    HTTP Error Codes

    HTTP Code Description
    400 Request failed validation checks
    401 Reader doesn’t have access to this ad entity
    403 Forbidden
    404 ReviewInformation not found for specified entity urn, entity version tuple
    422 Ad entity not found
    500 Internal Server Error