CreativeQA.io
APIs for Quality Assurance
settings_ethernet
Ad Tag Tester
settings_system_daydream
HTML5 Validator
photo_camera_back
HTML5 Backup Ads
view_compact
HTML5 Ad Preview
play_circle_outline
VAST Inspector
video_settings
Video Analyzer
flare
HTML5 Optimizer
landscape
Image Cruncher

VAST Validator & Inspector

30 Quality Assurance tests for VAST Video Ads

Enter your VAST URL to start the scanner.

Like Google VAST Inspector
More or less...




feedbackSend Feedback
toggle_off OFF
Ongoing Monitoring
 
share
Share Link
insights
PDF Report
more_vert
More

Quality Assurance Report

stop
Ad System
AdGlare Ad Server
expand_more
fiber_manual_record
CORS Header
Yes
expand_more
fiber_manual_record
Creative Count
1
expand_more
fiber_manual_record
Impression Tracking
Yes
expand_more
fiber_manual_record
SSL-Compliant
Yes
expand_more
fiber_manual_record
VAST Version
3.0
expand_more
fiber_manual_record
Wrapper Redirects
0
expand_more
fiber_manual_record
XML Content-Type
text/xml
expand_more
fiber_manual_record
XML File Size
1.4 KB
expand_more
fiber_manual_record
XML HTTP Code
200
expand_more
fiber_manual_record
XML Load Time
0 ms
expand_more
emoji_peopleHelp your friends and colleagues to save time too. Tell them about CreativeQA.io :)
content_copy
Copy URL
get_app
Download

Media File (MP4)

60 sec play_circle_outline Skip Ad
5 sec
skip_next
fiber_manual_record
Audio Codec
AAC LC
expand_more
fiber_manual_record
Audio Sample Rate
44.1 kHz
expand_more
fiber_manual_record
Download Speed
78 MB/s
expand_more
warning
File Size
10.2 MB
expand_more
fiber_manual_record
MOOV Atom Position
beginning
expand_more
fiber_manual_record
Skip Offset
5 sec
expand_more
fiber_manual_record
Video Aspect Ratio
16:9
expand_more
fiber_manual_record
Video Bit rate
1.3 Mbps
expand_more
fiber_manual_record
Video Codec
H.264
expand_more
fiber_manual_record
Video Definition
HD
expand_more
fiber_manual_record
Video Dimensions
1280x720
expand_more
warning
Video Duration
60 sec
expand_more
fiber_manual_record
Video Mime-Type
video/mp4
expand_more

Event Tracking

Event URL
content_paste
No data to display

Impression Pixel

https://try.engine.adglare.net/data?data=eyJ0aW1lIjoxNjE5NTE5MTYyLCJ0eXBlIjoiaW1wIiwieklEIjoyOTY5Njk4NjEsImNJRCI6IjM4MTk0ODg2NSIsImNySUQiOiI2OTI5MDQwMTEiLCJ0aWVyIjoiMiIsImFkdHlwZSI6InZhc3QiLCJhZGZvcm1hdCI6IiIsImRvbWFpbiI6ImNyZWF0aXZlcWEuaW8iLCJjcl9vcHRfZ3JvdXAiOiJvcHRpbWl6ZWQiLCJzc2wiOiJ5ZXMiLCJjb29yZCI6IjUyIzUiLCJ2YWx1ZSI6MCwiXyI6NTgzMDU5fQ..-485224b1
content_copy
Copy XML

VAST Tag XML

Share with anyone

get_app
Download
menu_book
API Docs
vpn_key
API Key

How it was made?

<?php
include('CreativeQA-API.php');
$CQA = new CreativeQA();
$array = $CQA->scanVAST("https://www.domain.com/vast.xml");
var_dump($array);
JSON Response (API v3.0)
{
    "account_id": "user_NQhwYcQ2dx",
    "ad_system": "AdGlare Ad Server",
    "ad_title": "VAST Ad",
    "cors": true,
    "creatives": [{
        "click_through": {
            "url": "https:\/\/www.google.com"
        },
        "duration": "00:01:00",
        "mediafiles": [{
            "attributes": {
                "bitrate": 1292,
                "delivery": "progressive",
                "height": 720,
                "maintainaspectratio": "true",
                "scalable": "true",
                "type": "video\/mp4",
                "width": 1280
            },
            "audio_wave": {
                "bytes": 10127,
                "mime_type": "image\/png",
                "url": "https:\/\/try.cdn.creativeqa.net\/img\/85kkw_85kkw-cd3e2-d3e3d_ft3g4m5k.png"
            },
            "download_speed": 78,
            "file_info": {
                "audio": {
                    "bit_rate": 126,
                    "codec": "AAC LC",
                    "lufs": -8,
                    "sample_rate": 44.1
                },
                "container": {
                    "format": "MPEG-4",
                    "mime_type": "video\/mp4",
                    "moov_atom_position": "beginning"
                },
                "video": {
                    "aspect_ratio": "16:9",
                    "bit_rate": 1292,
                    "codec": "H.264",
                    "definition": "HD",
                    "dimensions": "1280x720",
                    "duration": 60,
                    "frame_rate": 24,
                    "height": 720,
                    "width": 1280
                }
            },
            "file_size": 10673456,
            "film_strip": {
                "bytes": 31303,
                "mime_type": "image\/jpg",
                "url": "https:\/\/try.cdn.creativeqa.net\/img\/85kkw_85kkw-cd3e2-d3e3d_dg2mtbxs.jpg"
            },
            "http_code": 200,
            "poster": {
                "bytes": 50252,
                "mime_type": "image\/jpg",
                "url": "https:\/\/try.cdn.creativeqa.net\/img\/85kkw_85kkw-cd3e2-d3e3d_n82xjmqc.jpg"
            },
            "tests": {
                "audio_codec": {
                    "actual": "AAC LC",
                    "data_type": "string",
                    "expected": "AAC, AAC LC",
                    "message": "The audio codec was AAC LC.",
                    "name": "Audio Codec",
                    "result": "passed",
                    "unit": ""
                },
                "audio_sample_rate": {
                    "actual": 44.1,
                    "data_type": "int",
                    "expected": "44.1, 48",
                    "message": "The audio sample rate was 44.1 kHz.",
                    "name": "Audio Sample Rate",
                    "result": "passed",
                    "unit": "kHz"
                },
                "download_speed": {
                    "actual": 78,
                    "data_type": "int",
                    "expected": ">1",
                    "message": "The download speed was 78 MB\/s.",
                    "name": "Download Speed",
                    "result": "passed",
                    "unit": "MB\/s"
                },
                "skip_offset": {
                    "actual": 5,
                    "data_type": "int",
                    "expected": "5, 10, 15, 30",
                    "message": "The skip offset was 5.",
                    "name": "Skip Offset",
                    "result": "passed",
                    "unit": "sec"
                },
                "video_aspect_ratio": {
                    "actual": "16:9",
                    "data_type": "string",
                    "expected": "16:9",
                    "message": "The aspect ratio was 16:9.",
                    "name": "Video Aspect Ratio",
                    "result": "passed",
                    "unit": ""
                },
                "video_bit_rate": {
                    "actual": 1292,
                    "data_type": "int",
                    "expected": "<3500",
                    "message": "The video bitrate was 1292 Kbps.",
                    "name": "Video Bit rate",
                    "result": "passed",
                    "unit": "Kbps"
                },
                "video_codec": {
                    "actual": "H.264",
                    "data_type": "string",
                    "expected": "H.264",
                    "message": "The video codec was H.264.",
                    "name": "Video Codec",
                    "result": "passed",
                    "unit": ""
                },
                "video_definition": {
                    "actual": "HD",
                    "data_type": "string",
                    "expected": "NHD, HD, FHD, 4K",
                    "message": "The video codec was HD.",
                    "name": "Video Definition",
                    "result": "passed",
                    "unit": ""
                },
                "video_dimensions": {
                    "actual": "1280x720",
                    "data_type": "string",
                    "expected": "320x180, 480x270, 640x360, 1280x720, 1920x1080",
                    "message": "The video dimensions were 1280x720.",
                    "name": "Video Dimensions",
                    "result": "passed",
                    "unit": ""
                },
                "video_duration": {
                    "actual": 60,
                    "data_type": "int",
                    "expected": "5, 6, 10, 15, 20, 30",
                    "message": "The video duration was 60.",
                    "name": "Video Duration",
                    "result": "failed",
                    "unit": "sec"
                },
                "video_file_size": {
                    "actual": 10673456,
                    "data_type": "int",
                    "expected": "<10485760",
                    "message": "The video file size was 10673456 bytes.",
                    "name": "File Size",
                    "result": "failed",
                    "unit": "bytes"
                },
                "video_mime_type": {
                    "actual": "video\/mp4",
                    "data_type": "string",
                    "expected": "video\/mp4, video\/webm",
                    "message": "The mime-type was video\/mp4.",
                    "name": "Video Mime-Type",
                    "result": "passed",
                    "unit": ""
                },
                "video_moov_atom_position": {
                    "actual": "beginning",
                    "data_type": "string",
                    "expected": "beginning",
                    "message": "The MOOV atom was found in the beginning of the file.",
                    "name": "MOOV Atom Position",
                    "result": "passed",
                    "unit": ""
                }
            },
            "url": "https:\/\/try.cdn.adglare.net\/tc9f2d433\/img\/w3dqw_n7tvas_b5e309ee.mp4"
        }],
        "skip_offset": 5
    }],
    "job_id": "85kkw-cd3e2-d3e3d",
    "meta": {
        "api_version": "v3.0",
        "cpu": "AMD 16-Core EPYC 7302P",
        "creative_type": "vast",
        "device": "Desktop",
        "language": "en-US",
        "ram": "128GB",
        "scan_duration": "10.193227",
        "server_location": "ams",
        "timestamp": 1619519172,
        "ua": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Google Chrome 90.0.4430.93 Safari\/537.36"
    },
    "pixels": {
        "impression": ["https:\/\/try.engine.adglare.net\/data?data=eyJ0aW1lIjoxNjE5NTE5MTYyLCJ0eXBlIjoiaW1wIiwieklEIjoyOTY5Njk4NjEsImNJRCI6IjM4MTk0ODg2NSIsImNySUQiOiI2OTI5MDQwMTEiLCJ0aWVyIjoiMiIsImFkdHlwZSI6InZhc3QiLCJhZGZvcm1hdCI6IiIsImRvbWFpbiI6ImNyZWF0aXZlcWEuaW8iLCJjcl9vcHRfZ3JvdXAiOiJvcHRpbWl6ZWQiLCJzc2wiOiJ5ZXMiLCJjb29yZCI6IjUyIzUiLCJ2YWx1ZSI6MCwiXyI6NTgzMDU5fQ..-485224b1"]
    },
    "score": 100,
    "screenshot": {
        "highres": {
            "bytes": 50252,
            "color": "#767a83",
            "mime_type": "image\/jpg",
            "url": "https:\/\/try.cdn.creativeqa.net\/img\/85kkw_85kkw-cd3e2-d3e3d_pgkwxvhn.jpg"
        },
        "thumbnail": {
            "bytes": 2500,
            "color": "#767a83",
            "mime_type": "image\/jpg",
            "url": "https:\/\/try.cdn.creativeqa.net\/img\/85kkw_85kkw-cd3e2-d3e3d_ndjqhcrv.jpg"
        }
    },
    "ssl": {
        "compliant": true,
        "non_secure_urls": []
    },
    "tests": {
        "ad_system": {
            "actual": "AdGlare Ad Server",
            "data_type": "string",
            "expected": "ignore",
            "message": "This VAST tag was generated by AdGlare Ad Server.",
            "name": "Ad System",
            "result": "ignored",
            "unit": ""
        },
        "cors": {
            "actual": true,
            "data_type": "boolean",
            "expected": "true",
            "message": "The CORS header was set correctly.",
            "name": "CORS Header",
            "result": "passed",
            "unit": ""
        },
        "creative_count": {
            "actual": 1,
            "data_type": "int",
            "expected": ">=1",
            "message": "This VAST tag contains 1 video creative.",
            "name": "Creative Count",
            "result": "passed",
            "unit": ""
        },
        "impression_tracking": {
            "actual": true,
            "data_type": "boolean",
            "expected": "true",
            "message": "One or more impression pixels have been found.",
            "name": "Impression Tracking",
            "result": "passed",
            "unit": ""
        },
        "ssl_compliant": {
            "actual": true,
            "data_type": "boolean",
            "expected": "true",
            "message": "All assets have been loaded over https, including pixels.",
            "name": "SSL-Compliant",
            "result": "passed",
            "unit": ""
        },
        "vast_version": {
            "actual": "3.0",
            "data_type": "string",
            "expected": "2.0, 3.0, 4.0, 4.1",
            "message": "The document was declared as VAST version 3.0.",
            "name": "VAST Version",
            "result": "passed",
            "unit": ""
        },
        "wrapper_redirects": {
            "actual": 0,
            "data_type": "int",
            "expected": "<=3",
            "message": "The tag has 0 wrapper redirects.",
            "name": "Wrapper Redirects",
            "result": "passed",
            "unit": ""
        },
        "xml_content_type": {
            "actual": "text\/xml",
            "data_type": "string",
            "expected": "text\/xml, application\/xml",
            "message": "The content-type header of the XML document was text\/xml.",
            "name": "XML Content-Type",
            "result": "passed",
            "unit": ""
        },
        "xml_file_size": {
            "actual": 1436,
            "data_type": "int",
            "expected": "<51200",
            "message": "The file size of the XML document was 1436 bytes.",
            "name": "XML File Size",
            "result": "passed",
            "unit": "bytes"
        },
        "xml_http_code": {
            "actual": 200,
            "data_type": "int",
            "expected": "200",
            "message": "The HTTP status code was 200.",
            "name": "XML HTTP Code",
            "result": "passed",
            "unit": ""
        },
        "xml_load_time": {
            "actual": 0,
            "data_type": "int",
            "expected": "<1000",
            "message": "It took 0 ms to download the XML document.",
            "name": "XML Load Time",
            "result": "passed",
            "unit": "ms"
        }
    },
    "type": "inline",
    "vast_version": "3.0",
    "wrapper_redirects": 0,
    "xml": {
        "content_type": "text\/xml",
        "data_base64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPFZBU1QgdmVyc2lvbj0iMy4wIj4KICA8QWQgaWQ9ImFkZ2xhcmVfMzgxOTQ4ODY1Ij4KICAgIDxJbkxpbmU+CiAgICAgIDxBZFN5c3RlbT5BZEdsYXJlIEFkIFNlcnZlcjwvQWRTeXN0ZW0+CiAgICAgIDxBZFRpdGxlPlZBU1QgQWQ8L0FkVGl0bGU+CiAgICAgIDxJbXByZXNzaW9uIGlkPSIzODE5NDg4NjUiPjwhW0NEQVRBW2h0dHBzOi8vdHJ5LmVuZ2luZS5hZGdsYXJlLm5ldC9kYXRhP2RhdGE9ZXlKMGFXMWxJam94TmpFNU5URTVNVFl5TENKMGVYQmxJam9pYVcxd0lpd2lla2xFSWpveU9UWTVOams0TmpFc0ltTkpSQ0k2SWpNNE1UazBPRGcyTlNJc0ltTnlTVVFpT2lJMk9USTVNRFF3TVRFaUxDSjBhV1Z5SWpvaU1pSXNJbUZrZEhsd1pTSTZJblpoYzNRaUxDSmhaR1p2Y20xaGRDSTZJaUlzSW1SdmJXRnBiaUk2SW1OeVpXRjBhWFpsY1dFdWFXOGlMQ0pqY2w5dmNIUmZaM0p2ZFhBaU9pSnZjSFJwYldsNlpXUWlMQ0p6YzJ3aU9pSjVaWE1pTENKamIyOXlaQ0k2SWpVeUl6VWlMQ0oyWVd4MVpTSTZNQ3dpWHlJNk5UZ3pNRFU1ZlEuLi00ODUyMjRiMV1dPjwvSW1wcmVzc2lvbj4KICAgICAgPENyZWF0aXZlcz4KICAgICAgICA8Q3JlYXRpdmUgc2VxdWVuY2U9IjEiPgogICAgICAgICAgPExpbmVhciBza2lwb2Zmc2V0PSIwMDowMDowNSI+CiAgICAgICAgICAgIDxEdXJhdGlvbj4wMDowMTowMDwvRHVyYXRpb24+CiAgICAgICAgICAgIDxWaWRlb0NsaWNrcz4KICAgICAgICAgICAgICA8Q2xpY2tUaHJvdWdoPjwhW0NEQVRBW2h0dHBzOi8vd3d3Lmdvb2dsZS5jb21dXT48L0NsaWNrVGhyb3VnaD4KICAgICAgICAgICAgICA8Q2xpY2tUcmFja2luZz48IVtDREFUQVtodHRwczovL3RyeS5lbmdpbmUuYWRnbGFyZS5uZXQvYz9kYXRhPWV5SjBhVzFsSWpveE5qRTVOVEU1TVRZeUxDSjZTVVFpT2pJNU5qazJPVGcyTVN3aVkwbEVJam9pTXpneE9UUTRPRFkxSWl3aVkzSkpSQ0k2SWpZNU1qa3dOREF4TVNJc0ltUnZiV0ZwYmlJNkltTnlaV0YwYVhabGNXRXVhVzhpTENKamNsOXZjSFJmWjNKdmRYQWlPaUp2Y0hScGJXbDZaV1FpTENKcGNHaGhjMmdpT2lJM056UTNaVGMzWmlJc0luSmxabVZ5WlhJaU9pSm9kSFJ3Y3lVelFTVXlSaVV5Um5kM2R5NWpjbVZoZEdsMlpYRmhMbWx2SlRKR2RtRnpkQzEyWVd4cFpHRjBiM0lpTENKZklqbzFOams0TXpGOS1iMjE5YWM5NCZsb2c9MV1dPjwvQ2xpY2tUcmFja2luZz4KICAgICAgICAgICAgPC9WaWRlb0NsaWNrcz4KICAgICAgICAgICAgPE1lZGlhRmlsZXM+CiAgICAgICAgICAgICAgPE1lZGlhRmlsZSB3aWR0aD0iMTI4MCIgaGVpZ2h0PSI3MjAiIGRlbGl2ZXJ5PSJwcm9ncmVzc2l2ZSIgdHlwZT0idmlkZW8vbXA0IiBiaXRyYXRlPSIxMjkyIiBzY2FsYWJsZT0idHJ1ZSIgbWFpbnRhaW5Bc3BlY3RSYXRpbz0idHJ1ZSI+PCFbQ0RBVEFbaHR0cHM6Ly90cnkuY2RuLmFkZ2xhcmUubmV0L3RjOWYyZDQzMy9pbWcvdzNkcXdfbjd0dmFzX2I1ZTMwOWVlLm1wNF1dPjwvTWVkaWFGaWxlPgogICAgICAgICAgICA8L01lZGlhRmlsZXM+CiAgICAgICAgICA8L0xpbmVhcj4KICAgICAgICA8L0NyZWF0aXZlPgogICAgICA8L0NyZWF0aXZlcz4KICAgIDwvSW5MaW5lPgogIDwvQWQ+CjwvVkFTVD4K",
        "file_size": 1436,
        "http_code": 200,
        "load_time": 0
    }
}

Metadata

Scan UI/APIUI on CreativeQA.io
Server LocationAmsterdam (NLD)
CPUAMD 16-Core EPYC 7302P
Memory128GB
Unix Timestamp1619519172 - 50 days ago
Scan Duration10.19 seconds
Creative TypeVAST XML
User-AgentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Google Chrome 90.0.4430.93 Safari/537.36
DeviceDesktop
Languageen-US
API Versionv3.0
Developers

Seamless integration with any platform

Use the JSON API to automatically scan VAST Tags via your own platform.

MORE FREE TOOLS FROM CREATIVEQA.IO

Made with favorite by Ad Ops.

HTML5 Ad Validator

Check the initial load size, click tags, CPU usage, missing assets and much more! A must-have for HTML5 designers.

Ad Tag Validator

Check third-party ad tags for load speed, 3p cookies, memory usage, SSL-compatibility, mobile friendliness and much more! A great tool for publishers.

HTML5 Ad Optimizer

Image compression and JS/CSS minification to speed up ad loading. Download your ZIP with all assets optimized and the file structure maintained.

HTML5 Ad Preview Tool

Stack all HTML5 ads on a single page for preview and evaluation. Forget email attachments. Upload your HTML5 Zip ads and send the whole ad set in one link.

HTML5 Backup Ads

Still taking screenshots manually? Simply upload your HTML5 Zip and choose the best image from 6 different shots. How cool is that!

Image Cruncher

Lossless compression and optimization to speed up ad loading. Shave off bytes that don't matter. Reducing file size means faster ads.