document_scanner
Ad Tag Tester
CPU/RAM usage, Dimensions, SSL...
document_scanner
HTML5 Ad Validator
Initial Load, Click Tags, Meta ad.size...
document_scanner
Video Validator
MOOV Atoms, Audio Loudness, Bit Rates...
document_scanner
Banner Ad Validator
Dimensions, Aspect ratio, SFW, Creative Border...

Scan VAST Tags

Endpoint

post
/v3/scanVAST



Parameters

data
string, required
The VAST URL in base64-encoded format, pointing to a valid VAST XML document.
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 name of the VAST tag. Will be added to the JSON result, allowing you to keep track of which creative you scanned.


Response
200
400
401
429

ad_system
string
The name of the VAST ad server, if detected successfully. Remains blank otherwise.
ad_title
string
The title of the VAST ad, as provided by the advertiser.
cors
boolean
Whether or not the CORS header for the VAST document was set correctly.
creatives
array
An array with data points collected from the VAST tag. See the response object for more details.
click_through - the final URL when clicked on the video.
duration - the duration of the video as reported.
skip_offset - the skip offset in seconds, if set.
mediafiles - see here below.
creatives[].mediafiles
array
An array with data points collected from the media file. See the response object for more details.
attributes - the VAST attributes, as reported.
audio_wave - an image of the sound wave of the video.
download_speed - download speed of the video in MB/s.
file_info.audio - audio bit rate, codec, loudness in LUFS, sample rate.
file_info.container - video format, mime-type and the MOOV atom position (for MP4).
file_info.video - aspect ratio, bit rate, codec, dimensions, real duration, frame rate and much more.
file_size - the file size of the video in bytes.
film_strip - multiple JPG screenshots of the video.
http_code - the HTTP code returned while downloading.
poster - a high-resolution JPG poster of the video.
url - the location of the video, to be downloaded.
job_id
string
A unique ID assigned to the scan.
meta
array
Meta-data about the scan, like the CPU used, the time it took to complete the scan, the server location, etc.
pixels
array
An array of impression pixel URLs that were fired.
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. It's organized using the subarrays xml and creative_X_mediafile_Y.
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.
type
string
The type of the VAST document, like inline.
vast_version
string
The VAST version (2.0 - 4.1).
wrapper_redirects
int
The number of VAST wrapper redirects using VASTAdTagURI.
xml
string
Details about the XML document returned, like the HTTP code, load time, content-type and its content.
cURL
curl "https://{your_name}.api.advalify.io/v3/scanVAST"
  -H "X-ApiKey: TCm2Hd_rT4pRNvSZ2cGYCJ6... (example)"
  -X POST
  -d '{
    "data": "aHR0cHM6Ly93d3cuZG9tYWluLmNvbS92YXN0LnhtbA=="
  }'
Example Response
{
     "ad_system": "Some Ad Server",
     "ad_title": "VAST Ad",
     "cors": true,
     "creatives": [{
         "click_through": {
             "url": "https://www.google.com"
        },
         "duration": "00:01:00",
         "mediafiles": [{
             "attributes": {
                 "bitrate": 1063,
                 "delivery": "progressive",
                 "height": 720,
                 "maintainaspectratio": "true",
                 "scalable": "true",
                 "type": "video/mp4",
                 "width": 1280
            },
             "audio_wave": {
                 "bytes": 10007,
                 "mime_type": "image/png",
                 "url": "https://try.cdn.advalify.io/img/zbs22_zbs22-beed1-d0083_3stdhrq2.png"
            },
             "download_speed": 12,
             "file_info": {
                 "audio": {
                     "bit_rate": 129,
                     "codec": "AAC LC",
                     "loudness": {
                         "lra": 3.4,
                         "lufs": -8.1
                    },
                     "sample_rate": 44.1
                },
                 "container": {
                     "format": "MPEG-4",
                     "mime_type": "video/mp4",
                     "moov_atom_position": "beginning"
                },
                 "video": {
                     "aspect_ratio": "16:9",
                     "bit_depth": 8,
                     "bit_rate": 1063,
                     "codec": "H.264",
                     "definition": "HD",
                     "dimensions": "1280x720",
                     "duration": 60,
                     "frame_rate": 24,
                     "height": 720,
                     "letterboxing": false,
                     "width": 1280
                }
            },
             "file_size": 8990721,
             "film_strip": {
                 "bytes": 31110,
                 "mime_type": "image/jpg",
                 "url": "https://try.cdn.advalify.io/img/zbs22_zbs22-beed1-d0083_bwrpdfk3.jpg"
            },
             "http_code": 200,
             "poster": {
                 "bytes": 47768,
                 "mime_type": "image/jpg",
                 "url": "https://try.cdn.advalify.io/img/zbs22_zbs22-beed1-d0083_h3nkf4qz.jpg"
            },
             "url": "https://www.domain.com/w3dqw_h9889k_34170d4b.mp4"
        }],
         "skip_offset": 5
    }],
     "job_id": "zbs22-beed1-d0083",
     "meta": {
         "api_version": "v3",
         "cpu": "AMD 16-Core EPYC 7302P",
         "creative_type": "vast",
         "device": "Desktop",
         "language": "en-US",
         "ram": "128GB",
         "scan_duration": "4.597198",
         "server_location": "ams",
         "timestamp": 1627332055,
         "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Google Chrome 92.0.4515.107 Safari/537.36"
    },
     "name": "https://www.domain.com/vast.xml",
     "pixels": {
         "impression": ["https://www.domain.com/data?data=eyJ0aW1lIjoxNjI3MzMyMDUxLCJ0eXBlIjoiaW1wIiwieklEIjoyOTY5Njk4NjEsImNJRCI6IjM4MTk0ODg2NSIsImNySUQiOiI2OTI5MDQwMTEiLCJ0aWVyIjoiMiIsImFkdHlwZSI6InZhc3QiLCJhZGZvcm1hdCI6IiIsImRvbWFpbiI6ImNyZWF0aXZlcWEuaW8iLCJjcl9vcHRfZ3JvdXAiOiJjb250cm9sIiwic3NsIjoieWVzIiwiY29vcmQiOiI1MiM1IiwidmFsdWUiOjAsIl8iOjU0MTkxOX0.-738f09b4"]
    },
     "scan_results": {
         "failed": 2,
         "passed": 19,
         "report_url": "https://share.advalify.io/c2450-f8e87-71c8a-bf12f",
         "tests": {
             "creative_0_mediafile_0": {
                 "audio_loudness": {
                     "actual": -23.9,
                     "data_type": "float",
                     "expected": "-26#-22",
                     "expected_text": "between -26 and -22 LUFS",
                     "name": "Audio Loudness",
                     "operator": "><",
                     "result": "passed",
                     "unit": "LUFS"
                },
                
            }
        }
    },
     "screenshot": {
         "highres": {
             "bytes": 47768,
             "color": "#767a83",
             "mime_type": "image/jpg",
             "url": "https://try.cdn.advalify.io/img/zbs22_zbs22-beed1-d0083_km58bn7r.jpg"
        },
         "thumbnail": {
             "bytes": 2486,
             "color": "#767a83",
             "mime_type": "image/jpg",
             "url": "https://try.cdn.advalify.io/img/zbs22_zbs22-beed1-d0083_dstnqvrp.jpg"
        }
    },
     "ssl": {
         "compliant": true,
         "non_secure_urls": []
    },
     "type": "inline",
     "vast_url_base64": "aHR0cHM6Ly90cnkuZW5naW5lLmFkZ2xhcmUubmV0Lz8yOTY5Njk4NjE=",
     "vast_version": "3.0",
     "wrapper_redirects": 0,
     "xml": {
         "content_type": "text/xml",
         "data_base64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPFZBU1QgdmVyc2lvbj0iMy4wIj4KICA8QWQgaWQ9ImFkZ2xhcmVfMzgxOTQ4ODY1Ij4KICAgIDxJbkxpbmU+CiAgICAgIDxBZFN5c3RlbT5BZEdsYXJlIEFkIFNlcnZlcjwvQWRTeXN0ZW0+CiAgICAgIDxBZFRpdGxlPlZBU1QgQWQ8L0FkVGl0bGU+CiAgICAgIDxJbXByZXNzaW9uIGlkPSIzODE5NDg4NjUiPjwhW0NEQVRBW2h0dHBzOi8vdHJ5LmVuZ2luZS5hZGdsYXJlLm5ldC9kYXRhP2RhdGE9ZXlKMGFXMWxJam94TmpJM016TXlNRFV4TENKMGVYQmxJam9pYVcxd0lpd2lla2xFSWpveU9UWTVOams0TmpFc0ltTkpSQ0k2SWpNNE1UazBPRGcyTlNJc0ltTnlTVVFpT2lJMk9USTVNRFF3TVRFaUxDSjBhV1Z5SWpvaU1pSXNJbUZrZEhsd1pTSTZJblpoYzNRaUxDSmhaR1p2Y20xaGRDSTZJaUlzSW1SdmJXRnBiaUk2SW1OeVpXRjBhWFpsY1dFdWFXOGlMQ0pqY2w5dmNIUmZaM0p2ZFhBaU9pSmpiMjUwY205c0lpd2ljM05zSWpvaWVXVnpJaXdpWTI5dmNtUWlPaUkxTWlNMUlpd2lkbUZzZFdVaU9qQXNJbDhpT2pVME1Ua3hPWDAuLTczOGYwOWI0XV0+PC9JbXByZXNzaW9uPgogICAgICA8Q3JlYXRpdmVzPgogICAgICAgIDxDcmVhdGl2ZSBzZXF1ZW5jZT0iMSI+CiAgICAgICAgICA8TGluZWFyIHNraXBvZmZzZXQ9IjAwOjAwOjA1Ij4KICAgICAgICAgICAgPER1cmF0aW9uPjAwOjAxOjAwPC9EdXJhdGlvbj4KICAgICAgICAgICAgPFZpZGVvQ2xpY2tzPgogICAgICAgICAgICAgIDxDbGlja1Rocm91Z2g+PCFbQ0RBVEFbaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbV1dPjwvQ2xpY2tUaHJvdWdoPgogICAgICAgICAgICAgIDxDbGlja1RyYWNraW5nPjwhW0NEQVRBW2h0dHBzOi8vdHJ5LmVuZ2luZS5hZGdsYXJlLm5ldC9jP2RhdGE9ZXlKMGFXMWxJam94TmpJM016TXlNRFV4TENKNlNVUWlPakk1TmprMk9UZzJNU3dpWTBsRUlqb2lNemd4T1RRNE9EWTFJaXdpWTNKSlJDSTZJalk1TWprd05EQXhNU0lzSW1SdmJXRnBiaUk2SW1OeVpXRjBhWFpsY1dFdWFXOGlMQ0pqY2w5dmNIUmZaM0p2ZFhBaU9pSmpiMjUwY205c0lpd2lhWEJvWVhOb0lqb2laVEkzWXpBMk1Ea2lMQ0p5WldabGNtVnlJam9pYUhSMGNITWxNMEVsTWtZbE1rWjNkM2N1WTNKbFlYUnBkbVZ4WVM1cGJ5VXlSblpoYzNRdGRtRnNhV1JoZEc5eUlpd2lYeUk2TlRjd05qUTNmUS4uLWIzZDFiZGI0JmxvZz0xXV0+PC9DbGlja1RyYWNraW5nPgogICAgICAgICAgICA8L1ZpZGVvQ2xpY2tzPgogICAgICAgICAgICA8TWVkaWFGaWxlcz4KICAgICAgICAgICAgICA8TWVkaWFGaWxlIHdpZHRoPSIxMjgwIiBoZWlnaHQ9IjcyMCIgZGVsaXZlcnk9InByb2dyZXNzaXZlIiB0eXBlPSJ2aWRlby9tcDQiIGJpdHJhdGU9IjEwNjMiIHNjYWxhYmxlPSJ0cnVlIiBtYWludGFpbkFzcGVjdFJhdGlvPSJ0cnVlIj48IVtDREFUQVtodHRwczovL3RyeS5jZG4uYWRnbGFyZS5uZXQvdDhkZDYwOTI4L2ltZy93M2Rxd19oOTg4OWtfMzQxNzBkNGIubXA0XV0+PC9NZWRpYUZpbGU+CiAgICAgICAgICAgIDwvTWVkaWFGaWxlcz4KICAgICAgICAgIDwvTGluZWFyPgogICAgICAgIDwvQ3JlYXRpdmU+CiAgICAgIDwvQ3JlYXRpdmVzPgogICAgPC9JbkxpbmU+CiAgPC9BZD4KPC9WQVNUPgo=",
         "file_size": 1432,
         "http_code": 200,
         "load_time": 0
    }
}
Giovanni uses the API
to enfore compliance at scale
Giovanni Sollazzo
Giovanni Sollazzo
starstarstarstarstar
Founder & Chairman, AIDEM Technologies