Table of Contents
Frequently recuring issues with easyHTML banners
Here we discuss the most frequently recurring issues regarding teh easyHTML banner template, the possible source of the issue, and recommended solutions. The full specification can be accessed here:
No images are visible / The banner is not visible
Issue: Using folders in relative links
In case after upload the images in the banner banner do not show up, is most like due to the fact, that the banner searches for the resources in sub directories, like in this example:
<img src="images/cica.png" />
Solution
While all resources will be placed inside the same folder after upload, the URLs have to be changed like the following example:
<img src="cica.png" />
Usage of AdServer variables
Sometimes the banner is developed with the usage of previous Markup or HTML banner specification. In these cases resource URLs are refered like below:
<img src="[file: cica.png]" />
Solution
Because the AdServer is unable to modify the files of an easyHTML banner, we have to change the AdServer variables to local (without folders) relative path:
<img src="cica.png" />
Two windows are opened on click
Issue: The usage of two uncompatible code snipets
This issue manifests by opening two windows on clicking the banner. One is moste likely is the correct landing page, and the URL of the other end in /undefined
, and is most likely blank.
A possible reason is that two suggested code snipets are mixed up - Javascript and HTML.
For example:
<a id="clickTAG" href="" target="_blank">KATT</a> <script> document.getElementById('clickTAG').onclick = function () { window.open(goa.clickTAG, goa.clickTARGET); } </script>
Solution
Because in the example above clickTAG
is an anchor
tag, it will be clickable in itself. If we combine this element with the JS example snippet, we tell the browser to open a web page on click, onto an element that already opens a new page. So in the end we open two windows.
If we use an anchor
element, we need to insert the matching code instead of the above, from the following link:
The banner is not clickable / It redirects to a wrong site
Issue: The goa-helper.js is missing
The goa-helper.js
manages the URLs and other variables for the banner, as it parses the query parameters, and compiles an object of them. The banner can read the clickTAG from there.
Solution
The goa-helper.js
has to be included in the beginning of the banner, usualy in the end of the head
tag, with the code snippet from the following page:
http://dev.adverticum.com/creatives:ehtml-en#including_goa-helperjs
Issue: Usage of AdServer variables
Sometimes the banner is developed with the usage of previous Markup or HTML banner specification. In these cases CT URLs are refered like below:
<a id="clickTAG" href="[cthref]" target="[target]">KATT</a>
Solution
Because the AdServer is unable to modify the files of an easyHTML banner, we have to change the AdServer variables to local (without folders) relative path:
Issue: Codes used in wrong order
Sometimes the codes are not inserted int the order specified, rather the script
comes before the referred element, so the code order is swaped compared to the documentation.
Example:
<script> (function(){ var cT = document.getElementById('clickTAG'); cT.href = goa.clickTAG; cT.target = goa.clickTARGET; })(); </script> <a id="clickTAG" href="" target="">CT</a>
Solution
While the above code referrs to the element with the ID clickTAG
, but the element itself is only after this, when the browser starts to execute the code, it will throw an errer, because the referred element is simply not created by then.
The solution for this is to use the right order, which can be found on the link beneath:
Error: The anchor tag (<a>) responsible for the linking is not containing the banner
For example:
<a id="clickTAG" href="" target=""></a> <div id="bannerContainer"> <!-- HTML code --> </div> <!-- Javascript for click handling --> <script> (function(){ var cT = document.getElementById('clickTAG'); cT.href = goa.clickTAG; cT.target = goa.clickTARGET; })(); </script>
HTML solution
The <a> tag defines a hyperlink, which is used to link one page to another, and only the area between the opening <a>tag and the closing </a> tag will be clickable. So if we would like to make the whole banner clickable we have to implement the anchor around the container of the banner.
Example:
<a id="clickTAG" href="" target=""> <div id="bannerContainer"> <!-- HTML code --> </div> </a> <!-- Script for clicks --> <script> (function(){ var cT = document.getElementById('clickTAG'); cT.href = goa.clickTAG; cT.target = goa.clickTARGET; })(); </script>
CSS solution
If we have an anchor tag implemented in our code in one line but we want to make the whole banner clickable, instead of moving the anchor we can use CSS to modify its appearance. We just have to set its width and height attributes to match the width and height of the banner. After that we have to give the anchor tag a high z-index value. It will force the browsers to click it instead of the other parts of the creative.
Example: (Let's assume that our banner's 300×300):
<div id="bannerContainer"> <!-- HTML code --> <a id="clickTAG" href="" target="" style="width:300px;height:300px;z-index:999;"></a> <!-- HTML code --> </div> <!-- Script for clicks --> <script> (function(){ var cT = document.getElementById('clickTAG'); cT.href = goa.clickTAG; cT.target = goa.clickTARGET; })(); </script>
Issue: Usage of Gemius specifications
In some cases, the banner is created by the Gemius specification, but are given to run in our AdServer. In these cases, the following code is present:
var parsed = (document.location.href.split('#')[1]||'').split('&'); var params = parsed.reduce(function (params, param) { var param = param.split('='); params[param[0]] = decodeURIComponent(param.slice(1).join('=')); return params; }, {}); // change link href document.getElementById('clickTAG').href = params.clickTag;
Solution
While this code is similar to what the goa-helper.js
does, we only need a little modification, to make CTs work. In the second line of the code, the '#'
has to be replaced with '?'
, because the easyHTML banner recieves the clickTAG URL among others, as query parameters.
var parsed = (document.location.href.split('?')[1]||'').split('&'); var params = parsed.reduce(function (params, param) { var param = param.split('='); params[param[0]] = decodeURIComponent(param.slice(1).join('=')); return params; }, {}); // change link href document.getElementById('clickTAG').href = params.clickTag;