|
|
|
HTML5 Ad Validator (Zip)
Check Initial Load, CPU/RAM usage, Click Tags, Meta ad.size and much more!

Scan any type of creative
HTML5 Zips, Ad Tags, Video, VAST or banners. Just drag & drop and get a detailed report.
Analyze more than 25 data points in a couple of seconds — much faster than you could ever have done manually.

Customizable Ad Specifications
Not every publisher adheres to the IAB guidelines. Customize when a test should pass or fail.
For example, when a creative is > 300KB or the load time is >1 second. Create different ad specs if you have multiple media channels.



Visualize Data Flows
Depending on local laws, publishers may be required to store data on servers in Europe.
Visualize to which geographical locations data is sent. Get an alert when data leaves the European Union.

Auto-fix Issues
No need to get back to media agencies to fix common issues with HTML5 banners.
Auto-fix issues like initial load or CSS/JS minification, and use the optimized version during the creative's flight.



Todo-list to keep you organized
Did you have to reject a campaign due to assets not complying with your ad specs?
Add a todo-list to the creative with issues that have to be solved before it can go live. Collaborate with your team members.

Discuss QA issues in one single place
Discuss issues with team members in one place. No more troubleshooting screenshots by email!
Let a responsible team member approve the ad before it goes live.


Powerful REST API
Do you have hundreds of creatives to scan every day? Send ads to the API and get a detailed QA report in JSON format.
Great if your company uses proprietary ad server software. Simply reject creatives from being served if they don't comply with your ad specs.

HTML5 Banner Validation Checks
Meta tag ad.sizeDetects the presence of the meta tag ad.size in the index.html file. This meta tag can be used to automatically detect the size of the creative by ad server vendors. Some publishers require it to streamline their ad operations. |
Click TagDetects if the creatives uses IAB's clickTag standard in order for third parties to be able to track clicks. Without a clickTag, third parties may not be able to track clicks. Publishers commonly require them. |
CSS/JS MinifiedWhether or not all CSS/JS files have been minified by removing non-essential white space and line breaks. Minification may yield great reductions in file size. Less bytes means faster loading times. |
Images OptimizedWhether or not all files have been optimized by crunching without quality loss. Image optimization may yield great reductions in file size. Less bytes means faster loading times. |
External AssetsDetermines if the creative makes calls to external servers, to load shared libraries for example. Some publisher require ads to have all necessary files bundled in the Zip archive. |
Uses jQueryDetermines if the creative loads the jQuery library. jQuery is a relative big library. It adds up to the overall file size and CPU time. Most part of the library will likely not even be used. |
HTML5 LibraryDetects the HTML5 library used, like GreenSock, CreateJS or GWD. Just nice for you to know :) |
Hosted File SizeThe total size of all files the ad server has to host, after unpacking the zip archive. With thousands of creatives to host, ad server vendors may apply a limit to the hosted file size. |
File Types AllowedThis test will pass if only allowed file types are present in the Zip archive (html, js, css, jpg, png, etc). Ad server vendors who don't sanitize files after extraction may have their security at risk. Imagine if the Zip archive contains a .PHP file (or any other server-side script). |
Load Size: TotalThe total load size of all network responses after loading the creative. Keeping the load size at a minimum improves the user-experience and reduces page load time. |
Load Size: InitialThe total load size of all network responses before the DOMContentLoaded event. Keeping the load size at a minimum before the publisher's page has loaded improves the user-experience. |
Load Size: SubloadThe total load size of all network responses after the DOMContentLoaded event. Keeping the load size at a minimum improved the user-experience, thought the subload is of less importance. |
Network RequestsThe total number of network requests after loading the creative. Keeping the number of HTTP requests at a minimum improves page load. |
CPU UsageThe total CPU time devoted to loading the ad. Heavy ads are one of the reasons why people are using ad blockers. CPU cycles drain batteries on mobile phones. |
DOMContentLoadedThe time it took for the DOMContentLoaded event to fire. Ads that fire the DOMContentLoaded event late stay in a 'loading' state. |
DimensionsThe detected with and height of the creative. You want to make sure the dimensions match standard size ad units. |
Has VideoWhether or not the creative plays video (even muted). Videos are generally heavy assets. You may want to be aware of it. |
Memory UsageThe amount of RAM the ad claimed when fully loaded. Ads are displayed in iframes, which essentially is a tiny web page. Excessive memory usage may have a negative user experience, especially on mobile phones. |
SSL-CompatibilityWhether or not all requests were made over TLS We're in 2022, and secure connections are everywhere. If the ad uses unsecure connections (http://), it can't be loaded on a secure page. |
Iframe CountThe number of iframes created by the ad. Iframes are essentially tiny web pages. Some ad tech vendors use iframes to send measurement pixels, as it allows to run JavaScript to gather extra information about the user. Each iframe however requires some extra RAM. |
Cookies DroppedThe number of cookies dropped by the ad. Third party cookies are on the brink of becoming extinct. And dropping cookies without user-consent in the EU may not be a great idea. |
Heavy Ad InterventionThis test tells you if the ad will be removed in Google Chrome browsers due to its Heavy Ad Intervention (HAI). Chrome has a built-in mechanism to remove ads that consume too much resources (RAM and CPU). Ads that are removed after a couple of seconds still count as an impression, but the CTR would be near zero. |
Console ErrorsJavaScript errors thrown while loading the ad. Errors may prevent the ad from being displayed at all. |
Console WarningsConsole warnings thrown while loading the ad. Although warnings may not be that severe, it's best to be aware of them in order to avoid potential issues. |
Creative RenderedThis test will pass if the ad was successfully loaded. Blank ads are usually an indication the campaign was (geo)targeted. Or disabled. Or the ad failed to load due to errors or missing assets. |
Blocked by AdBlockDetermines if the ad will be blocked by most common ad blockers. Ad blockers not only lead to a missed opportunity, it also fuels discrepancies between ad systems. |
Uses document.write()Detect usage of document.write() JavaScript calls. It's a synchronous function that blocks page render. Nothing else can be done in parallel, and consequently the impact on user-experience can be considerable. |
Creative BorderDetects if the creative has a high-contrasting border. Imagine the publisher's page background is blue, and the creative is blue as well. Then where does the ad start and end? It should be unambigous for the user that the image is an ad. |
Missing AssetsThis test logs all requests to non-existing assets, resulting in 404s. Missing assets are usually not intentional. It can prevent the ad from being displayed correctly. |
Dialogs and ModalsDetects if the creative uses JavaScript's confirm() and alert() functions. Some bad ads may throw modals that users have to click away. You certainly don't want those on your page. |
Measurement PixelsAll measurement pixels sent using IMG, XHR and sendBeacon. Each pixel may transfer user information to a third party server. They also increase the total number of HTTP requests. |
Local StorageAll items set in window.localStorage after loading the ad The localStorage API let developers store information in the user's browser. It can be anything, from user identifiers to personally identifiable information (PII). Something you may want to be aware of. |
Syntax ErrorsThis test checks if the HTML code contains syntax errors. Syntax errors may lead to non-working ads. |
