How to make styled native banderole ads

In online advertising, banderole ads are large banner ads that stay on the page as the viewer scrolls. They are usually placed near the bottom of the page, and can be as wide as the page itself. The ad can be collapsed into a bar on the edge of the viewable area after a preset period or if the viewer clicks on the ad. Clicking on the bar reverts the ad to its default form.

You can use native templates to create banderole ad items that are tailored to your needs.

A sample banderole ad

A sample banderole ad closed

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 banderole ad using a styled native ad template. This type of native template has only the HTML code. You must add the necessary JavaScript code and style element directly to your website to display the ad properly.

If you'd rather have all the necessary code (HTML, JavaScript and CSS) in the template, you should make your animated wallpaper ad using a custom 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 styled banderole ad. You can customize the sample code to fit your needs.
  2. How to create a styled banderole ad item once you have a styled banderole template.

How to create a styled banderole ad template

This template will require the user to provide the URL to where the image creative is hosted when creating the banderole ad item.

  1. Click Native Ad Templates in the left navigation menu to go to the Templates section.
  2. Click Add Native Ad Template in the Native Ad Templates table. The New Native Template window will appear.
  3. Click Styled. The New Native Ad Template page will appear.

Selecting a native template type

  1. Name the template then add an image URL variable for the image that will be in the ad. In our sample code, we called this variable ImageURL.

Creating a styled native banderole 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 (Styled) field, then click Save Changes.

Here's the code we used in our example:

<div class="banderole-container">
    <div class="banderole-image-container">
        <a target="_blank" href="[TRACKING_LINK]" class="banderole-image">
            <img src="[%ImageURL%]">
        </a>
        <div class="banderole-close-button-container">
            <span class="banderole-close-button">×</span>
        </div>
    </div>
    <div class="banderole-expand-button">
        <i class="banderole-expand-button-icon fa fa-arrow-left"></i>
    </div>
</div>

You can now use this template to create a styled banderole ad item.

Back to top

How to create a styled banderole ad item

  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).
Styled native ad items can be assigned only to Native zones, with or without custom rendering enabled.
  1. Click Native (Styled). The New Ad Item page will appear.

Creating a native (styled) ad item

  1. Select your banderole styled native ad template in the Template dropdown menu.
  2. Fill in the rest of the fields as needed, including the image URL. 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 banderole styled native ad item in AdButler

At this point, you have finished setting up the ad item on the AdButler interface. You must now add the JavaScript and style element needed to display this ad properly directly to your website. Here's the sample code that we used in our example. You must replace the zone tags and zone class in the code with your own zone tags and zone class.

<!DOCTYPE html>
<html lang="en">
    <head>
        <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
        <style>
            .banderole-container {
                position: fixed;
                bottom: 0;
                right: 0;
                width: 100%;
                background-color: rgba(0, 0, 0, 0.25);
                transition: right 2s ease-in-out;
            }

            .banderole-image-container {
                position: relative;
                width: 728px;
                height: 90px;
                margin: 0 auto;
            }

            .banderole-image {
                position: absolute;
                top: 0;
                left: 0;
                width: 728px;
                height: 90px;
            }

            .banderole-expand-button {
                opacity: 0;
                transition: opacity 1s;
                position: absolute;
                top: calc(50% - 25px);
                left: -75px;
                width: 50px;
                height: 50px;
                background: grey;
                cursor: pointer;
                display: flex;
                align-items: center;
                justify-content: center;
            }

            .banderole-expand-button-icon {
                font-size: 28px;
                color: #ffffff;
            }

            .banderole-close-button-container {
                position: absolute;
                top: 3px;
                right: 3px;
                cursor: pointer;
            }

            .banderole-close-button {
                width: 21px;
                text-align: center;
                display: inline-block;
                color: #ffffff;
                font-size: 18px;
                background: #000000;
                border-radius: 21px;
                user-select: none;
            }
        </style>
    </head>
    <body>
        <!-- To Edit 1: Replace Zone Tags below here with your own -->
        <script type="text/javascript">if (!window.AdButler){(function(){var s = document.createElement("script"); s.async = true; s.type = "text/javascript"; s.src = 'https://servedbyadbutler.com/app.js'; var n = document.getElementsByTagName("script")[0]; n.parentNode.insertBefore(s, n);}());}</script>
        <div class="plc104321"></div>
        <script type="text/javascript">
            var AdButler = AdButler || {}; AdButler.ads = AdButler.ads || [];
            var abkw = window.abkw || '';
            var plc104321 = window.plc104321 || 0;
            (function(){
                var divs = document.querySelectorAll(".plc104321:not([id])");
                var div = divs[divs.length-1];
                div.id = "placement_104321_"+plc104321;
                AdButler.ads.push({handler: function(opt){ AdButler.register(######, ######, [0,0], 'placement_104321_'+opt.place, opt); }, opt: { place: plc104321++, keywords: abkw, domain: 'servedbyadbutler.com', click: 'CLICK_MACRO_PLACEHOLDER' }});
            })();</script>
        <!-- Replace Zone Tags above here with your own -->

        <script>
            var bannerPreviouslyCollapsed = false;

            function collapseBanner() {
                bannerPreviouslyCollapsed = true;
                document.querySelector('.banderole-container').style.right = '-100%';
                setTimeout(
                    () => {
                        document.querySelector('.banderole-expand-button').style.visibility= 'visible';
                        document.querySelector('.banderole-expand-button').style.opacity = '1';
                    },
                    // timeout is matches the transition time on the banderole, so the
                    // expand button appears once banderole is completely off-screen
                    2000
                );
            }

            function expandBanner() {
                document.querySelector('.banderole-container').style.right = '0';
                // hide button immediately instead of transitioning the opacity
                document.querySelector('.banderole-expand-button').style.visibility= 'hidden';
                document.querySelector('.banderole-expand-button').style.opacity = '0';
            }

            setTimeout(() => {
                if (!bannerPreviouslyCollapsed) {
                    collapseBanner()
                }
            }, 10000);

            AdButler.ads.push(function () {
                // To Edit 2: Update this class with your zone's class
                var zoneClass = 'plc104321';
                var wrapper = document.querySelector('.' + zoneClass);
                wrapper.addEventListener(AdButler.EVENTS.LOAD, function (e) {
                    // makes the close button function
                    var closeButton = document.querySelector('.' + zoneClass + ' .banderole-close-button');
                    if (closeButton) {
                        closeButton.addEventListener('click', function () {
                            collapseBanner();
                        })
                    }

                    // makes the expand button function
                    var closeButton = document.querySelector('.' + zoneClass + ' .banderole-expand-button');
                    if (closeButton) {
                        closeButton.addEventListener('click', function () {
                            expandBanner();
                        })
                    }
                });
            });
        </script>
    </body>
</html>

Back to top


Can't find what you're looking for?

Send us an email

hello@adbutler.com

Visit the blog

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