chevron_rightAd Tags
chevron_rightHTML5 Ads
chevron_rightVAST Tags
chevron_rightVideo Ads
chevron_rightAudio Ads
Ad Load Size Detector
Initial Load Detector
Host-initiated Subload Detector
Time to Visual Start Detector
Animation Duration Detector
Network Requests Detector
CPU Usage Tester
DOMContentLoaded Detector
Ad Size Validator
Has Video Detector
Memory Usage Detector
SSL-Compatibility Detector
Iframe Count Detector
Cookies Dropped Detector
Heavy Ad Intervention Test (HAI)
JavaScript Error Detector
Console Warning Detector
Mobile Friendly Tester
Creative Rendered Detector
Blocked by AdBlock Detector
Document.write() Detector
Creative Border Detector
Ad Server Vendor Detector
HTML5 Missing Asset Checker
Dialog and Modal Detector
Measurement Pixels Detector
Local Storage Detector
HTML Syntax Error Detector
Ad Tag Landing Page Checker
TCFv2 Support Checker
NSFW Detector for Ad Tags
Meta ad.size Detector
Click Through Checker
CSS/JS Minified Detector
Image Optimization Detector
External Asset Detector
Uses jQuery Detector
HTML5 Library Detector
Hosted File Size Detector
Zip File Count Detector
HTML5 Allowed File Type Detector
Backup Ad Detector
Ad Load Size Detector
Initial Load Detector
Host-initiated Subload Detector
Time to Visual Start Detector
Animation Duration Detector
Network Requests Detector
CPU Usage Tester
DOMContentLoaded Detector
Ad Size Validator
Has Video Detector
Memory Usage Detector
SSL-Compatibility Detector
Iframe Count Detector
Cookies Dropped Detector
Heavy Ad Intervention Test (HAI)
JavaScript Error Detector
Console Warning Detector
Creative Rendered Detector
Blocked by AdBlock Detector
Document.write() Detector
Creative Border Detector
HTML5 Missing Asset Checker
Dialog and Modal Detector
Measurement Pixels Detector
Local Storage Detector
HTML Syntax Error Detector
Ad Tag Landing Page Checker
VAST Ad System Detector
VAST CORS Header Detector
VAST Creative Count Detector
VAST SSL-Compatibility Tester
VAST Version Detector
VAST Wrapper Redirect Detector
VAST XML Content-Type Detector
VAST XML Load Time Detector
VAST HTTP Code Detector
VAST XML File Size Detector
Video Bit Depth Detector
Video Scan Type Detector
Video Letterboxing Detector
VAST Audio Channels Detector
VAST Audio Compression Detector
VAST Audio Sample Rate Detector
VAST Audio Codec Detector
VAST Audio Loudness Detector
VAST True Peak Detector
VAST Audio Bit Rate Detector
VAST Video Aspect Ratio Detector
VAST Video Dimensions Detector
VAST Video Duration Detector
VAST Video Bit Rate Detector
VAST Video Bit Rate Mode Detector
VAST Video Chroma Subsampling Detector
VAST Video Color Space Detector
VAST Video Frame Rate Detector
VAST Video File Size Detector
VAST Video Container Detector
VAST Video File Extension Detector
VAST Video Codec Checker
VAST MOOV Atom Location Detector
VAST Delivery Type Detector
VAST Skip Offset Detector
VAST Video Mime-Type Detector
Video Codec Checker
Video Bit Depth Detector
Video Letterboxing Detector
Aspect Ratio Detector
Video Dimension Detector
Video FPS Checker
MOOV Atom Position Detector
Video Color Space Detector
Video Chroma Subsampling Detector
Video Scan Type Detector
Audio Codec Detector
Audio Loudness Detector (LUFS)
Audio True Peak Detector
Audio Sample Rate Checker
Audio Channel Detector
Audio Compression Detector
Audio Bit Rate Detector
Video Container Format Detector
Video Bit Rate Detector
Bit Rate Mode Detector
File Size Detector
File Extension Detector
Video Duration Detector
Video Mime Type Detector
Audio Duration Detector
Audio Codec Detector
Audio Loudness Detector (LUFS)
Audio True Peak Detector
Audio Sample Rate Checker
Audio Channel Detector
Audio Compression Detector
Audio Bit Rate Detector
Audio File Extension Checker
Audio File Size Checker
Audio Mime-Type Detector
document_scanner
Ad Tag Tester
CPU/RAM usage, Dimensions, SSL...
document_scanner
HTML5 Ad Validator
Initial Load, Click Tags, Meta ad.size...
document_scanner
VAST Validator
Audio Loudness, Video Codecs, Dimensions...
document_scanner
Video Validator
MOOV Atoms, Audio Loudness, Bit Rates...
headset
Live Chat Online
Get instant answers to your questions
email
Contact Support
Reach out to see how AdValify can help
cloud
Network Status
See live network status updates
emoji_events
Customer Testimonials
Read what others have to say about AdValify
auto_stories
User Guide
Get started with AdValify in seconds
document_scanner
Creative QA Tests
CPU/RAM usage, Initial Load, SSL, etc.
emoji_events
Customer Testimonials
Read what others have to say about AdValify
api
API: Ad Tag Tester
API docs to validate ad tags
api
API: HTML5 Ad Validator
API docs to validate HTML5 ads
api
API: VAST Validator
API docs to validate VAST ads
open_in_new
GitHub PHP Class
PHP Ad Validator Class
public
Network Status
Live infrastructure status
AdValify.io Logo
AdValify.io
Ad Validation APIs

API Documentation

Automate and scale your complete ad validation workflow.

Make sure ads are FAST, error-free and comply with your ad specification before things go wrong.
Avast using AdValify.io to validate adsWideout using AdValify.io to validate adsGroupM using AdValify.io to validate adsAidem using AdValify.io to validate adsLeaf Group using AdValify.io to validate adsCox Media using AdValify.io to validate ads
These companies already automate their QA workflow.

Scan HTML5 Ads

Endpoint

post
/v3/scanZip



Parameters

data
string, required
The complete Zip file in base64-encoded format.
spec_id
int, optional
The ID of an ad specification set against which you want to validate the creative. Defaults to 0 (IAB guidelines).
workspace_id
int, optional
The ID of the workspace in which you want to store the results.
name
string, optional
The file name of the HTML5 Zip. Will be added to the JSON result, allowing you to keep track of which creative you scanned.


Response
200
400
401
429

animation_duration
int
The time it took for all pixels to stop moving, after the first pixel was painted on the screen. In milliseconds. If the creative animation did not finish when the timeout kicked in, this value will equal -1.
blocked_by_adblock
boolean
Whether or not the tag will likely be blocked by ad blockers.
console
array
All errors and warnings generated while loading the creative.
cookies
array
All cookies that were dropped by the creative, either set via JavaScript or via an HTTP header.
cpu_usage
int
The CPU usage, in milliseconds.
creative_rendered
boolean
Equals true in case something was painted on the screen, false otherwise.
dialogs
array
Any dialog message the creative shows as a pop-up. Generally created by alert() and confirm().
dimensions
array
The detected width and height of the creative.
dom_content_loaded
int
The time it took for the DOMContentLoaded event to fire, in milliseconds.
file_structure
array
Contains the file structure of the Zip, including the name, type and file size.
has_backup_ad
boolean
Equals true when a backup ad has been found in the Zip folder.
has_border
boolean
Whether or not the creative has a contrasting border.
has_external_assets
boolean
Whether or not the creative loads assets from outside the Zip. Keep this at a minimum to reduce additional DNS lookups, connections, etc.
has_video
boolean
Whether or not the creative plays video content.
html5_library
string
The detected HTML5 library used to create the ad (GreenSock, GWD, CreateJS...)
iframes
int
The number of iframes added to the DOM. This should be kept at a minimum to reduce memory usage.
job_id
string
A unique ID assigned to the scan.
landing_page
array
An object with various information about the landing page that opened upon clickthrough.
local_storage
array
All key/value pairs stored in window.localStorage.
memory_usage
int
The amount of RAM memory used, in bytes.
meta
array
Meta-data about the scan, like the CPU used, the time it took to complete the scan, the server location, etc.
meta_ad_size
boolean
Whether or not the index file has a <meta name="ad.size" content="width=X,height=X"> line, as per IAB standards.
minified
boolean
Whether or not all CSS and JavaScript files were minified. Returns false if at least one file was found where more than 5% savings were possible, true otherwise.
mobile_friendly
boolean
Whether or not the creative will display fine on a mobile device. Equals true if the creative is either responsive or less than 300 pixels wide.
network
array
All network requests and their responses, including a full echo of the HTTP headers. Provides SSL certificate information too.
name
string
The name of the creative (copied from the payload).
tips_and_updatesscan_results
object
An object containing the full scan results, including the number of passed/failed tests. The tests array contains the result of each test performed.
screenshot
array
A screenshot of the creative, in both high-res and thumbnail format. The url points to the location where the screenshot can be found.
ssl
boolean
An object with information about the creative's SSL-compliancy. Insecure URLs loaded over http:// will be listed here.
time_to_visual_start
int
The time it took for something to the painted on the screen. In milliseconds. If nothing was displayed at all, this value will equal -1.
uses_document_write
boolean
Whether or not the creative uses the JS document.write() function. Synchronous code should be avoided.
uses_jquery
boolean
Whether or not the creative uses the jQuery library to create the ad.
zip
array
An object with a URL pointing to the index file, which can be used to dispay the creative in an iframe. Use the url to download the original Zip file that was scanned.
cURL
curl "https://{your_name}.api.advalify.io/v3/scanZip"
  -H "X-ApiKey: TCm2Hd_rT4pRNvSZ2cGYCJ6... (example)"
  -X POST
  -d '{
    "data": "QmFzZTY0IG9mIHppcCBmaWxlIGhlcmU=..."
  }'
Example Response
{
     "animation_duration": 3420,
     "blocked_by_adblock": false,
     "console": {
         "errors": ["Error: ReferenceError: somefunction is not defined"],
         "warnings": []
    },
     "cookies": [{
         "domain": ".doubleclick.net",
         "expires": 1646483650.085365,
         "httpOnly": true,
         "name": "IDE",
         "path": "/",
         "priority": "Medium",
         "sameSite": "None",
         "secure": true,
         "session": false,
         "size": 70,
         "value": "AHWqTUlqh0OPFbGUeGXQqkXebE_Tf9xEs0i7fspXWBfoQHL0p3ooP5Iv-vx7JYmWKsA"
    }],
     "cpu_usage": 66,
     "creative_rendered": true,
     "dialogs": [],
     "dimensions": {
         "height": 90,
         "width": 728,
         "text": "90x728"
    },
     "dom_content_loaded": 162,
     "file_structure": [{
         "bytes": 3922,
         "name": "front_city.png",
         "type": "image"
    },
     {
         "bytes": 11860,
         "name": "index.html",
         "type": "html"
    },
     {
         "bytes": 6510,
         "name": "google_logo.png",
         "type": "image"
    }],
     "has_backup_ad": true,
     "has_border": false,
     "has_external_assets": false,
     "has_video": false,
     "html5_library": "GreenSock",
     "iframes": 1,
     "job_id": "7febf-e5693-1b71c-78616",
     "landing_page": {
         "click_through": {
             "type": "clickTag"
        },
         "screenshot": {
             "bytes": 21624,
             "mime_type": "image/png",
             "url": "https://try.cdn.advalify.io/img/9k30d-9k30d-06c63-6185f-5tp7csxb.png",
            
        },
         "tab": "new",
         "title": "Google",
         "url": "https://www.google.com",
         "working": true
    },
     "local_storage": [],
     "memory_usage": 2400256,
     "meta": {
         "api_version": "v3",
         "cpu": "AMD 16-Core EPYC 7302P",
         "creative_type": "zip",
         "device": "Desktop",
         "language": "en-US",
         "ram": "128GB",
         "scan_duration": "1.871964",
         "server_location": "ams",
         "timestamp": 1612789956,
         "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
    },
     "meta_ad_size": false,
     "minified": true,
     "missing_assets": [],
     "mobile_friendly": false,
     "name": "HTMl5-file.zip",
     "network": {
         "load_size": {
             "host_initiated_subload": 0,
             "initial_load": 35690,
             "total": 35690
        },
         "measurement_pixels": 0,
         "responses": [{
             "bytes": 11860,
             "headers": {
                 "content-encoding": "br",
                 "content-type": "text/html",
                 "date": "Mon, 08 Feb 2021 13:12:34 GMT",
                 "last-modified": "Sat, 18 Apr 2020 18:08:16 GMT"
            },
             "is_pixel": false,
             "method": "GET",
             "resource_type": "document",
             "server_ip": "127.0.0.1",
             "ssl": true,
             "ssl_info": {
                 "protocol": "TLS 1.3",
                 "validFrom": 1607455037,
                 "validTo": 1922815037
            },
             "status": 200,
             "status_text": "",
             "timing": 169,
             "url": "https://www.advalify.io/tmp/7febf-e5693-1b71c-78616.zip/index.html"
        }]
    },
     "scan_results": {
         "failed": 2,
         "passed": 19,
         "report_url": "https://share.advalify.io/c2450-f8e87-71c8a-bf12f",
         "tests": {
             "load_size": {
                 "test": "load_size",
                 "name": "Load Size: Total",
                 "data_type": "int",
                 "unit": "bytes",
                 "expected": 524288,
                 "expected_text": "less than or equal to 524288 bytes",
                 "actual": 0,
                 "operator": "<",
                 "result": "passed"
            }
        }
    },
     "screenshot": {
         "highres": {
             "bytes": 132,
             "color": "#d8ecfe",
             "mime_type": "image/png",
             "url": "https://try.cdn.advalify.io/img/qa-report-983243-29cbfuzn4mhk.png"
        },
         "thumbnail": {
             "bytes": 538,
             "color": "#d8ecfe",
             "mime_type": "image/jpg",
             "url": "https://try.cdn.advalify.io/img/qa-report-983243-xz5rs8mc3yuk.jpg"
        }
    },
     "ssl": {
         "compliant": true,
         "insecure_urls": []
    },
     "time_to_visual_start": 230,
     "uses_document_write": false,
     "uses_jquery": false,
     "zip": {
         "index": "https://try.cdn.advalify.io/img/9k30d-79707058-4c143f0c-9k30d-b34cb-ab3eb-znjdp3q6.zip/500 error/Sample HTML5 Leaderboard creative/Sample-HTML5-Leaderboard-creative/index_720x90.html",
         "url": "https://try.cdn.advalify.io/img/9k30d-79707058-4c143f0c-9k30d-b34cb-ab3eb-f28vtd57.zip"
    }
}
Giovanni uses the API
to enfore compliance at scale
Giovanni Sollazzo
Giovanni Sollazzo
starstarstarstarstar
Founder & Chairman, AIDEM Technologies