Share with
your colleagues!

Ad validation dictionary and glossary

Written by Roy
Apr 5, 2022 • 22 min read
PDF Version
Download instantly chevron_right Knowledge Base chevron_right
Ad Validation
PDF Version
Download instantly

Host-initiated subload, document.write(), CPU usage... What kind of things do you check when validating ads?

Here's a list of commonly used data points in ad validation.

Ad validation checks for Ad Tags and HTML5 Ads

Data pointDescriptionScanner
Load Size: Total The total load size of all network responses after loading the creative.
Load Size: Initial The total load size of all network responses before the DOMContentLoaded event.
Load Size: Subload The total load size of all network responses after the DOMContentLoaded event.
Time to Visual Start The time it took for something to the painted on the screen.
Animation Duration The time it took for all pixels to stop moving, after the first pixel was painted on the screen.
Network Requests The total number of network requests after loading the creative.
CPU Usage The total CPU time devoted to loading the ad.
DOMContentLoaded The time it took for the DOMContentLoaded event to fire.
Dimensions The detected width and height of the creative.
Has Video Whether or not the creative plays video (even muted).
Memory Usage The amount of RAM the ad claimed when fully loaded.
SSL-Compatibility Whether or not all requests were made over TLS
Iframe Count The number of iframes created by the ad.
Cookies Dropped The number of cookies dropped by the ad.
Heavy Ad Intervention Removed by Chrome's HAI, based on an educated guess.
Console Errors Errors thrown while loading the ad. Usually JavaScript errors.
Console Warnings Console warnings thrown while loading the ad.
Creative Rendered Returns true if something was painted on the screen.
Blocked by AdBlock Probability to be blocked by ad blockers.
Uses document.write() Based on the detection of synchronous JS calls.
Creative Border High-contrasting border, based on image edge detection.
Missing Assets Requests to non-existing assets, resulting in 404s.
Dialogs and Modals Detection of JavaScript's confirm() and alert().
Measurement Pixels Pixels sent using IMG, XHR and sendBeacon.
Local Storage Items set in window.localStorage after loading the ad.
Syntax Errors Syntax errors in the HTML code.
Landing Page Working Checks if the landing page works on click-through.

Extra tests for HTML5 Ads

Data pointDescriptionScanner
Meta tag ad.size Presence of the meta tag ad.size to define the dimensions.
Click Through Determines how a click-through is handled. Valid types are click_tag, exit_event, hard_coded or none.
CSS/JS Minified Whether or not all CSS/JS files have been minified by removing non-essential white space and line breaks.
Images Optimized Whether or not all images have been optimized by crunching without quality loss.
External Assets Requests to third-party servers, not hosted by the publisher.
Uses jQuery Detection of jQuery used in HTML5 ads.
HTML5 Library Library detection, based on AdValify's database with fingerprints.
Hosted File Size The total size of all files the ad server has to host, after unpacking the zip archive.
Hosted File Count The total number of files and folders inside the zip archive.
File Types Allowed This test will pass if only allowed file types are present in the Zip archive (html, js, css, jpg, png, etc).
Backup Ad Found This test will pass if a backup ad has been found inside the Zip folder.

Ad validation points for VAST Video Ads

Data pointDescriptionScanner
Ad System As reported by the VAST document.
CORS Header Based on the HTTP header of the XML document.
Creative Count As reported by the VAST document.
SSL-Compatibility Returns true if all assets were loaded over TLS/SSL.
VAST Version As reported by the VAST document.
Contains VPAID A boolean indicating whether or not the tag contains VPAID.
Wrapper Redirects Based on internal VAST wrapper redirects (not 302's).
XML Content-Type Based on the HTTP response header of the XML file.
XML Load Time Time it took to download the XML file.
XML HTTP Code Based on the HTTP response header of the XML file.
XML File Size The total size of the XML file.
Video Bit Depth Detected video bit depth.
Video Scan Type The scan type of the video.
Video Letterboxing Detects if the video is letterboxed (black bars).
Audio Channels Detected number of audio channels.
Audio Compression Detected audio compression.
Audio Sample Rate Detected audio sample rate from the video.
Audio Codec Detected audio codec from the video.
Audio Loudness Detected audio loudness from the video.
Audio True Peak Detected audio true peak.
Audio Bit Rate Detected audio bit rate.
Video Aspect Ratio Detected aspect ratio from the video.
Video Dimensions Detected dimensions from the video.
Video Duration Detected video duration in seconds.
Video Bit Rate Detected video bit rate, including audio.
Video Bit Rate Mode Detected video bit rate mode.
Video Chroma Subsampling The chroma subsampling of the video.
Video Color Space The color space of the video.
Video Frame Rate Detected video frame rate.
File Size File size of the video.
File Format Detected video container format.
File Extension File extension of the video.
Video Codec Detected video codec.
MOOV Atom Location Should be in the beginning for direct playback.
Delivery Type As reported by the VAST document.
Skip Offset As reported by the VAST document.
Video Mime-Type Based on the HTTP response header of the video.

This is a non-exhaustive list of data points. I'd appreciate if you could let me know any test that is missing here - I'll add it to this list for completion sentiment_satisfied_alt

Perform all tests in a couple of seconds?

No time to check each test manually? Use these free online scanners to validate Ad Tags, HTML5 Ads or VAST tags. Here's a screenshot of what the result looks like. Scanners provided by

Free Ad Tag Tester Online

Automated scans using APIs

Increase your workflow by scanning hundreds of ads automatically. First, download this PHP class from Github:

Then, run these lines of code:

$AdValify = new AdValify();
$result_tag = $AdValify->scanTag("This is an ad tag...");
$result_zip = $AdValify->scanZip("Binary Zip data here...");
$result_vast = $AdValify->scanVAST("URL pointing to VAST document...");

The result will be an array, which you can use further down in your logic. Check out the complete API Documentation for a list of all data points collected by the scanner.

Download this article as PDF?

No time to read the whole article? Download a free PDF version of this article for later:


To link to this article, please use:

External Resources

More from