How to make styled native sponsored ads
Sponsored ads are similar to in-feed ads, but they're usually placed on a retail page. They still blend in with the content somewhat but they look more like recommendations instead of an actual product or service listing. You can use native templates to create sponsored ad items that are tailored to your needs.
If you'd rather have all the necessary code (HTML, JavaScript and CSS) in the template, you should make your sponsored 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.
You will learn:
- How to create a template for a styled sponsored ad. You can customize the sample code to fit your needs.
- How to create a styled sponsored ad item once you have a styled sponsored template.
How to create a styled sponsored ad template
This template will require the user to provide the URL to where the image creative is hosted when creating the sponsored ad item, as well as the URL to the page where the viewer will be taken when they click on the ad. There are also text fields for the header and the body text that need to be filled.
- Click Native Ad Templates in the left navigation menu to go to the Templates section.
- Click Add Native Ad Template in the Native Ad Templates table. The New Native Template window will appear.
- Click Styled. The New Native Ad Template page will appear.
- Name the template, then add a URL (Raw) variable for the destination URL, an image URL variable for the creative, and two Text variables (one for the header and one for the body text). In our sample code, we called these variables Sponsored Link, ImageURL, Header, and Description, respectively.
- Enter the code in the HTML Template (Styled) field, then click Save Changes.
Here's the code we used in our example:
<div class="sponsored-container">
<div href="[TRACKING_LINK]" target="_blank" class="sponsored-content-container">
<a href="[TRACKING_LINK]" target="_blank" class="sponsored-tracking-link" />
<img src="[%ImageURL%]" class="sponsored-image">
<div class="sponsored-text-container">
<p class="sponsored-header">[%Header%]</p>
<p class="sponsored-description">[%Description%]</p>
<p class="sponsored-link">[%Sponsored Link%]</p>
</div>
</div>
<div class="sponsored-close-button-container">
<span class="sponsored-close-button">×</span>
</div>
</div>
You can now use this template to create a styled sponsored ad ad item.
How to create a styled sponsored ad ad item
- Go to the section of the relevant zone (Your AdButler > Publishers > Your Publisher > Your Zone) or campaign (Your AdButler > Advertisers > Your Advertiser > Your Campaign).
- Click Add Ad Item in the Ad Items table. The Add Ad Item window will appear.
- Click Native (Styled). The New Ad Item page will appear.
- Select your sponsored ad styled native template in the Template dropdown menu.
- Fill in the rest of the fields as needed, including the URL, image URL, and text fields. If you entered a destination URL, you can test it by clicking Open Destination URL to the right of the field.
- Click Save Ad Item.
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>
<style>
.sponsored-container {
position: relative;
width: 425px;
height: 152px;
}
.sponsored-content-container {
--sponsored-content-height: 120px;
display: grid;
grid-template-columns: repeat(2, auto) 1fr;
grid-template-rows: var(--sponsored-content-height);
grid-gap: 24px;
font-family: Arial;
text-decoration: none;
padding: 16px;
}
// due to sanitization process for styled templates, link tags can't wrap everything
// instead we must place it inside the container and absolutely position it
.sponsored-tracking-link {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 2;
}
.sponsored-image {
height: var(--sponsored-content-height);
width: var(--sponsored-content-height);
border-radius: 10px;
}
.sponsored-text-container {
color: #000000;
display: grid;
grid-template-rows: 1fr repeat(3, auto) 1fr;
row-gap: 4px;
font-size: 14px;
}
.sponsored-header {
grid-row: 2/3;
font-size: 16px;
font-weight: bold;
margin-bottom: 4px;
}
.sponsored-description {
grid-row: 3/4;
}
.sponsored-link {
grid-row: 4/5;
}
p {
margin: 0;
}
.sponsored-close-button-container {
position: absolute;
top: 16px; /* match container top padding */
right: 5px;
cursor: pointer;
z-index: 3;
}
.sponsored-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="plc104339"></div>
<script type="text/javascript">
var AdButler = AdButler || {}; AdButler.ads = AdButler.ads || [];
var abkw = window.abkw || '';
var plc104339 = window.plc104339 || 0;
(function(){
var divs = document.querySelectorAll(".plc104339:not([id])");
var div = divs[divs.length-1];
div.id = "placement_104339_"+plc104339;
AdButler.ads.push({handler: function(opt){ AdButler.register(######, ######, [0,0], 'placement_104339_'+opt.place, opt); }, opt: { place: plc104339++, keywords: abkw, domain: 'servedbyadbutler.com', click: 'CLICK_MACRO_PLACEHOLDER' }});
})();</script>
<!-- Replace Zone Tags above here with your own -->
<script>
AdButler.ads.push(function () {
// To Edit 2: Update this class with your zone's class
var zoneClass = 'plc104339';
var wrapper = document.querySelector('.' + zoneClass);
wrapper.addEventListener(AdButler.EVENTS.LOAD, function (e) {
<!-- Below code makes the close button functional -->
var closeButton = document.querySelector('.' + zoneClass + ' .sponsored-close-button');
closeButton.addEventListener('click', function () {
document.querySelector('.' + zoneClass + ' .sponsored-container').style.display = 'none';
});
});
});
</script>
</body>
</html>