How to make carousel ads

A carousel ad combines multiple videos, images, or a combination of both that viewers can scroll through. It's often used to showcase several products at once, or to list a product's features.

An example of a carousel ad

You can make carousel ads in AdButler using native ad templates and native ad items. For this guide, we're going to make a carousel ad with three images, each one with a different destination URL. You're free to add other variables in your template and customize your overlay in your code.

How to create a carousel native ad template

  1. Click Templates in the left navigation menu to go to the Templates section.
  2. Click Create New in the Native Ad Templates table. The New Native Ad Template page will appear.
  3. Name your template then add the variables as needed. To follow this guide, add three Image URL and three URL variables. Name them as shown in the image in step 4 so that they'll fit our sample code.
  4. Enter the code in the HTML/Script field, then click Save template.

Creating a carousel ad native template

Here's the code we used in our example:

* {box-sizing: border-box}
body {font-family: Verdana, sans-serif; margin:0}
.mySlides {display: none}
img {vertical-align: middle;}

/* Slideshow container */
.slideshow-container {
  max-width: 1000px;
  position: relative;
  margin: auto;

/* Next & previous buttons */
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  padding: 16px;
  margin-top: -22px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.6s ease;
  border-radius: 0 3px 3px 0;
  user-select: none;

/* Position the "next button" to the right */
.next {
  right: 0;
  border-radius: 3px 0 0 3px;

/* On hover, add a black background color with a little bit see-through */
.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);

/* Caption text */
.text {
  color: #f2f2f2;
  font-size: 15px;
  padding: 8px 12px;
  position: absolute;
  bottom: 8px;
  width: 100%;
  text-align: center;

/* Number text (1/3 etc) */
.numbertext {
  color: #f2f2f2;
  font-size: 12px;
  padding: 8px 12px;
  position: absolute;
  top: 0;

/* The dots/bullets/indicators */
.dot {
  cursor: pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;

.active, .dot:hover {
  background-color: #717171;

/* Fading animation */
.fade {
  -webkit-animation-name: fade;
  -webkit-animation-duration: 1.5s;
  animation-name: fade;
  animation-duration: 1.5s;

@-webkit-keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}

@keyframes fade {
  from {opacity: .4} 
  to {opacity: 1}

/* On smaller screens, decrease text size */
@media only screen and (max-width: 300px) {
  .prev, .next,.text {font-size: 11px}

<div class="slideshow-container">

<div class="mySlides fade">
  <div class="numbertext">Advertisement 1</div>
  <a href="[TRACKING_LINK][%Destination 1%]" target="_blank"><img src="[%Image 1%]" style="width:100%"></a>

<div class="mySlides fade">
  <div class="numbertext">Advertisement 2</div>
  <a href="[TRACKING_LINK][%Destination 2%]" target="_blank"><img src="[%Image 2%]" style="width:100%"></a>

<div class="mySlides fade">
  <div class="numbertext">Advertisement 3</div>
  <a href="[TRACKING_LINK][%Destination 3%]" target="_blank"><img src="[%Image 3%]" style="width:100%"></a>

<a class="prev" onclick="plusSlides(-1)">❮</a>
<a class="next" onclick="plusSlides(1)">❯</a>


<div style="text-align:center">
  <span class="dot" onclick="currentSlide(1)"></span> 
  <span class="dot" onclick="currentSlide(2)"></span> 
  <span class="dot" onclick="currentSlide(3)"></span> 

var slideIndex = 1;

function plusSlides(n) {
  showSlides(slideIndex += n);

function currentSlide(n) {
  showSlides(slideIndex = n);

function showSlides(n) {
  var i;
  var slides = document.getElementsByClassName("mySlides");
  var dots = document.getElementsByClassName("dot");
  if (n > slides.length) {slideIndex = 1}    
  if (n < 1) {slideIndex = slides.length}
  for (i = 0; i < slides.length; i++) {
      slides[i].style.display = "none";  
  for (i = 0; i < dots.length; i++) {
      dots[i].className = dots[i].className.replace(" active", "");
  slides[slideIndex-1].style.display = "block";  
  dots[slideIndex-1].className += " active";

You can add additional Image URLs and Destination URLs to this example. Simply add the variables then add the following code for each image to the DIV elements, where X is the variable's number in your carousel.
<div class="mySlides fade">
  <div class="numbertext">Advertisement X</div>
  <a href="[TRACKING_LINK][%Destination X%]" target="_blank"><img src="[%Image X%]" style="width:100%"></a>
For each image that you want to add to this example, you also need to add the dot that indicates the position of the image in the carousel. Add the following code under <div style="text-align:center">, where X is the variable's number in your carousel.
<span class="dot" onclick="currentSlide(X)"></span> 

How to create a carousel native ad item

  1. Go to the dashboard of the relevant zone (Your AdButler > Publishers > Your Publisher > Your Zone) or campaign (Your AdButler > Advertisers > Your Advertiser > Your Campaign).
We recommend assigning native ad items to dynamic zones.
  1. Click Add New in the Ad Items table. The Add Ad Item window will appear.
  2. Click Native. The New Ad Item page will appear.
  3. Select your native ad template in the Template dropdown menu.
  4. Fill in the rest of the fields as needed, then click Save Ad Item.
Read About ad items for more on AdButler's ad item types and their parameters.

Creating a carousel ad item

Can't find what you're looking for?

Send us an email

Visit the blog

For more ad serving tips, industry news and AdButler insights.