Carousel Ads

Carousel Ads, a format of Sponsored Content Campaigns, allows advertisers to display multiple images in succession in a single ad unit, each with its own description and destination link. Members can swipe through the carousel and interact with individual cards.

Advertisers can leverage the flexibility of carousel ads to tell compelling stories or showcase products and features interactively. You can use carousel ads to drive traffic to your website and collect quality leads through Lead Gen Forms.

Creating a carousel ad involves a few steps as documented below.

Steps:

  1. Upload 2 to 10 images using the Rich Media Shares Upload API. The recommended image size for carousel ads is 1080 x 1080. Images not conforming to this specification may still run, but with gray letterbox around them. This can create a less optimal member experience and impact performance.
  2. Create a Direct Sponsored Content Carousel Share.
  3. Create a Carousel Ad Campaign. See Ad Campaigns for complete documentation on creating campaigns.
  4. Create a Carousel Ad Creative. See Ad Creatives for complete documentation on creating creatives.

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.

If you are using legacy permissions, please refer to this page for requesting legacy permissions.

Creating carousel ad campaigns uses the same endpoint for creating any other type of campaign. The format field in the campaign's creation request body should be equal to CAROUSEL. We've included 2 sample requests below demonstrating carousel ads where the objective is either website traffic or lead generation.

POST https://api.linkedin.com/v2/adCampaignsV2

Sample Request

If your carousel ads' objective is to drive website traffic, specify WEBSITE_TRAFFIC in the objectiveType field as seen in the example below.

{
    "account": "urn:li:sponsoredAccount:123",
    "audienceExpansionEnabled": false,
    "costType": "CPC",
    "creativeSelection": "OPTIMIZED",
    "dailyBudget": {
        "amount": "18",
        "currencyCode": "USD"
    },
    "format": "CAROUSEL",
    "locale": {
        "country": "US",
        "language": "en"
    },
    "name": "Test Carousel Campaign",
    "objectiveType": "WEBSITE_TRAFFIC",
    "offsiteDeliveryEnabled": false,
    "runSchedule": {
        "end": 1556442299596,
        "start": 1555578299596
    },
    "targeting": {
        "includedTargetingFacets": {
            "interfaceLocales": [
                {
                    "country": "US",
                    "language": "en"
                }
            ],
            "locations": [
                "urn:li:country:us"
            ]
        }
    },
    "type": "SPONSORED_UPDATES",
    "unitCost": {
        "amount": "15",
        "currencyCode": "USD"
    }
}

Sample Request

For lead generation:

If your carousel ads' objective is to get lead submissions, specify LEAD_GENERATION in the objectiveType field as seen in the example below.

{
    "account": "urn:li:sponsoredAccount:123",
    "audienceExpansionEnabled": false,
    "costType": "CPC",
    "creativeSelection": "OPTIMIZED",
    "dailyBudget": {
        "amount": "18",
        "currencyCode": "USD"
    },
    "format": "CAROUSEL",
    "locale": {
        "country": "US",
        "language": "en"
    },
    "name": "Test Carousel Campaign",
    "objectiveType": "LEAD_GENERATION",
    "offsiteDeliveryEnabled": false,
    "runSchedule": {
        "end": 1556442299596,
        "start": 1555578299596
    },
    "targeting": {
        "includedTargetingFacets": {
            "interfaceLocales": [
                {
                    "country": "US",
                    "language": "en"
                }
            ],
            "locations": [
                "urn:li:country:us"
            ]
        }
    },
    "type": "SPONSORED_UPDATES",
    "unitCost": {
        "amount": "15",
        "currencyCode": "USD"
    }
}

A successful response returns a 201 Created HTTP status code and the Campaign ID in the X-LinkedIn-Id response header.

Creating carousel ad creatives uses the same endpoint for creating any other type of creative. The format field in the creative's creation request body should be equal to SPONSORED_UPDATE_CAROUSEL.

POST https://api.linkedin.com/v2/adCreativesV2

Sample Request

If the carousel ad's objective is website traffic, the request body only needs to reference the objects in the following example.

{
    "campaign": "urn:li:sponsoredCampaign:1234",
    "reference": "urn:li:share:5555",
    "status": "ACTIVE",
    "type": "SPONSORED_UPDATE_CAROUSEL",
    "variables": {
        "data": {
            "com.linkedin.ads.SponsoredUpdateCarouselCreativeVariables": {}
        }
    }
}

Sample Request

If the carousel ad's objective is lead generation, the request body must also have a callToAction field that provides an ad form and call to action labelType.

{
    "callToAction": {
        "labelType": "LEARN_MORE",
        "target": "urn:li:adForm:9999"
    },
    "campaign": "urn:li:sponsoredCampaign:1222",
    "reference": "urn:li:share:4444",
    "status": "ACTIVE",
    "type": "SPONSORED_UPDATE_CAROUSEL",
    "variables": {
        "data": {
            "com.linkedin.ads.SponsoredUpdateCarouselCreativeVariables": {}
        }
    }
}

A successful response returns a 201 Created HTTP status code and the Creative ID in the X-LinkedIn-Id response header.

You can fetch resources associated with carousel ads using the APIs to retrieve Ad Campaigns, Ad Creatives, and Shares.

Note

When you retrieve a carousel share, the response body contains both the entityLocation field (URL of the image) and the entity field (URN of the media). We recommend that you use the entity field because the entityLocation field is deprecated and will be removed eventually.

Resolve Content URNs by calling the Get Rich Media Summaries API and get the URLs. The ID for the Rich Media Summary can be derived from the Content URN, replacing "/" with "-". For example, if the content URN is urn:li:content:PNG/IMG/253331, the ID is PNG-IMG-253331.

Use projection to resolve Digital Media Asset URNs and get the appropriate URLs.

In addition to the standard sponsored content reporting metrics, you can retrieve metrics on each carousel card using the CARD_INDEX pivot with the adAnalyticsV2 API.

The following additional metrics are returned with adAnalyticsV2 for card level reporting:

  • cardClicks
  • viralCardClicks
  • cardImpressions
  • viralCardImpressions