How to make custom native filmstrip ads

In online advertising, a filmstrip is a vertical or portrait-aligned rectangular ad that cycles through several images, similar to a carousel. You can easily create this in AdButler using native ad templates and native ad items.

A sample filmstrip ad

This feature requires the Enhanced Ads add-on. For more information on adding add-ons to your subscription, read How to change your subscription.

In this guide, we're going to create a simple filmstrip ad using a custom native ad template. This type of native template has all the code - HTML, JavaScript, and style element - necessary to display the ad properly.

If you'd rather sanitize the template and have only HTML inside it, you should make your filmstrip ad using a styled native ad template instead. For more information on the differences between custom native ads and styled native ads, read About native ad templates.

Templates for custom native ad items are not compatible with styled native ad items, and vice-versa.

You will learn:

  1. How to create a template for a custom filmstrip ad. You can customize the sample code to fit your needs.
  2. How to create a custom filmstrip ad item once you have a custom filmstrip template.

How to create a custom filmstrip ad template

This template will require the user to provide the URLs to where the image creatives are hosted when creating the filmstrip ad item.

  1. Click Templates in the left navigation menu. The Templates section will appear.
  2. Click Native Ad Templates. The Native Ad Templates subsection will appear.
  3. Click Add Native Ad Template. The New Native Template window will appear.
  4. Click Custom Rendering/API. The New Native Ad Template page will appear.

Selecting a native template type

  1. Name the template then add an image URL variable for each image that will be in the ad. In our sample code, we have three image URL variables: ImageURL, ImageURL2, and ImageURL3.
For templates that have multiple variables such as this one, you can drag the icon on the far left of each variable field up or down to reorder your variables.

Creating a custom native filmstrip ad template in AdButler

You can save variables and use them in other templates. After adding a variable, click on the three dots at the far right of the variable fields then click Save Variable as Template. To use a saved variable, click Add Saved Variable while creating a native template.
  1. Enter the code in the HTML Template (Custom Rendering) field, then click Save Changes.

Here's the code we used in our example:

<!DOCTYPE html>
        <link href="" rel="stylesheet">
            .filmstrip-container {
                width: 300px;
                height: 600px;
                position: relative;

            .slide {
                display: none;
                animation-name: fade;
                animation-duration: 1.5s;

            .slide:first-of-type {
                display: block;

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

            .prev, .next {
                cursor: pointer;
                position: absolute;
                width: auto;
                left: calc(50% - 21px);
                padding: 12px;
                color: white;
                font-weight: bold;
                font-size: 18px;
                transition: 0.6s ease;
                user-select: none;

            .prev {
                top: 0px;
                border-radius: 0 3px 3px 0;

            .next {
                bottom: 0px;
                border-radius: 3px 0 0 3px;

            .prev:hover, .next:hover {
                background-color: rgba(0, 0, 0, 0.8);

            .filmstrip-close-button-container {
                position: absolute;
                top: 15px;
                right: 15px;
                cursor: pointer;

            .filmstrip-close-button {
                width: 21px;
                text-align: center;
                display: inline-block;
                color: #ffffff;
                font-size: 18px;
                background: #000000;
                border-radius: 21px;
                user-select: none;
        <div class="filmstrip-container">
            <div class="slide">
                <a target="_blank" href="[TRACKING_LINK]">
                    <img src="[%ImageURL%]">
            <div class="slide">
                <a target="_blank" href="[TRACKING_LINK]">
                    <img src="[%ImageURL2%]">
            <div class="slide">
                <a target="_blank" href="[TRACKING_LINK]">
                    <img src="[%ImageURL3%]">
            <a class="prev" onclick="changeSlide(-1)">
                <i class="fa fa-chevron-up"></i>
            <a class="next" onclick="changeSlide(1)">
                <i class="fa fa-chevron-down"></i>
            <div class="filmstrip-close-button-container">
                <span class="filmstrip-close-button" onclick="closeButton()">×</span>

            var slides;
            var currentSlideIndex = 0;

            function changeSlide(addToIndex) {
                var prevSlideIndex = currentSlideIndex;
                currentSlideIndex += addToIndex;

                if (!slides) {
                    slides = document.querySelectorAll(".slide");

                if (currentSlideIndex > slides.length - 1) {
                    currentSlideIndex = 0

                if (currentSlideIndex < 0) {
                    currentSlideIndex = slides.length - 1;

                slides[prevSlideIndex].style.display = "none";
                slides[currentSlideIndex].style.display = "block";

            function closeButton() {
                document.querySelector('.filmstrip-container').style.display = 'none';

You can now use this template to create a custom filmstrip ad item.

Back to top

How to create a custom filmstrip ad item

You can place images of any dimension within a filmstrip, but the container itself is 300 x 600 px. That means images with a 1:2 aspect ratio are best for filmstrips because they will fill the entire container, ensuring that only one image will be visible at a time, as shown in the example at the top of this guide.
  1. Go to the section of the relevant zone (Your AdButler > Publishers > Your Publisher > Your Zone) or campaign (Your AdButler > Advertisers > Your Advertiser > Your Campaign).
Custom native ad items can be assigned only to Standard zones or to Native zones. For Standard zones, the zone size must be set to Dynamic. For Native zones, the Enable Custom Rendering option must be turned on. Both the zone size and the custom rendering option can be configured only when creating a zone and cannot be changed afterward.
  1. Click Add Ad Item in the Ad Items table. The Add Ad Item window will appear.
  2. Click Native (Custom Rendering/API). The New Ad Item page will appear.

Creating a native (custom rendering/API) ad item

  1. Set the ad item's size.
  • If the ad item or its campaign will be assigned to a Standard zone, you must set the ad item's size to Dynamic.

  • If the ad item or its campaign will be assigned to a Native zone, you must enter the ad item's exact size. You can do this either by selecting Preset Size and then selecting the matching width and height values from the dropdown menu, or selecting Custom Size then entering the values in the fields that appear.

  1. Select your filmstrip custom native template in the Template dropdown menu.
  2. Fill in the rest of the fields as needed, including the image URLs. If you entered a destination URL, you can test it by clicking Open Destination URL to the right of the field.
  3. Click Save Ad Item.

Creating a filmstrip custom native ad item in AdButler

Back to top

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.