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 point
Description
Scanner
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 point
Description
Scanner
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
This test checks the total size of all files within the ZIP package that will be served when the ad is displayed.
Hosted File Count
The total number of files and folders inside the zip archive.
Index File Check
This test will pass there's an index.html file in the root of the directory.
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 point
Description
Scanner
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.
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 AdValify.io
include("AdValify.php");
$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: