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
Automated
ad validation
 

Creative QA Tests

See which data points AdValify collect to ensure compliance with your ad specs.

Display Ads

Load Size: TotalvisibilityLive Demo

Keeping the load size at a minimum improves the user-experience and reduces page load time.

Load Size: InitialvisibilityLive Demo

Keeping the load size at a minimum before the publisher's page has loaded improves the user-experience.

Load Size: SubloadvisibilityLive Demo

Keeping the load size at a minimum improved the user-experience, thought the subload is of less importance.

Network RequestsvisibilityLive Demo

Keeping the number of HTTP requests at a minimum improves page load.

CPU UsagevisibilityLive Demo

Heavy ads are one of the reasons why people are using ad blockers. CPU cycles drain batteries on mobile phones.

DOMContentLoadedvisibilityLive Demo

Ads that fire the DOMContentLoaded event late stay in a 'loading' state.

DimensionsvisibilityLive Demo

You want to make sure the dimensions match standard size ad units.

Has VideovisibilityLive Demo

Videos are generally heavy assets. You may want to be aware of it.

Memory UsagevisibilityLive Demo

Ads are displayed in iframes, which essentially is a tiny web page. Excessive memory usage may have a negative user experience, especially on mobile phones.

SSL-CompatibilityvisibilityLive Demo

We're in 2022, and secure connections are everywhere. If the ad uses unsecure connections (http://), it can't be loaded on a secure page.

Iframe CountvisibilityLive Demo

Iframes are essentially tiny web pages. Some ad tech vendors use iframes to send measurement pixels, as it allows to run JavaScript to gather extra information about the user. Each iframe however requires some extra RAM.

Cookies DroppedvisibilityLive Demo

Third party cookies are on the brink of becoming extinct. And dropping cookies without user-consent in the EU may not be a great idea.

Heavy Ad InterventionvisibilityLive Demo

Chrome has a built-in mechanism to remove ads that consume too much resources (RAM and CPU). Ads that are removed after a couple of seconds still count as an impression, but the CTR would be near zero.

Console ErrorsvisibilityLive Demo

Errors may prevent the ad from being displayed at all.

Console WarningsvisibilityLive Demo

Although warnings may not be that severe, it's best to be aware of them in order to avoid potential issues.

Mobile FriendlyvisibilityLive Demo

Ads that are too large on a mobile page may disrupt the layout. It doesn't improve the UX either.

Creative RenderedvisibilityLive Demo

Blank ads are usually an indication the campaign was (geo)targeted. Or disabled. Or the ad failed to load due to errors or missing assets.

Blocked by AdBlockvisibilityLive Demo

Ad blockers not only lead to a missed opportunity, it also fuels discrepancies between ad systems.

Uses document.write()visibilityLive Demo

It's a synchronous function that blocks page render. Nothing else can be done in parallel, and consequently the impact on user-experience can be considerable.

Creative BordervisibilityLive Demo

Imagine the publisher's page background is blue, and the creative is blue as well. Then where does the ad start and end? It should be unambigous for the user that the image is an ad.

3PAS VendorvisibilityLive Demo

This test is just for your information - nice to know.

Missing AssetsvisibilityLive Demo

Missing assets are usually not intentional. It can prevent the ad from being displayed correctly.

Dialogs and ModalsvisibilityLive Demo

Some bad ads may throw modals that users have to click away. You certainly don't want those on your page.

Measurement PixelsvisibilityLive Demo

Each pixel may transfer user information to a third party server. They also increase the total number of HTTP requests.

Local StoragevisibilityLive Demo

The localStorage API let developers store information in the user's browser. It can be anything, from user identifiers to personally identifiable information (PII). Something you may want to be aware of.

Syntax ErrorsvisibilityLive Demo

Syntax errors may lead to non-working ads.

Landing Page WorkingvisibilityLive Demo

If users click on the ad but won't be redirected to the advertiser's landing page, this may be due to an error.

format_quote
Dylan Coetzee
starstarstarstarstar
Digital Marketing Director, OmniaMed Communications

HTML5 creatives

Meta tag ad.sizevisibilityLive Demo

This meta tag can be used to automatically detect the size of the creative by ad server vendors. Some publishers require it to streamline their ad operations.

Click TagvisibilityLive Demo

Without a clickTag, third parties may not be able to track clicks. Publishers commonly require them.

CSS/JS MinifiedvisibilityLive Demo

Minification may yield great reductions in file size. Less bytes means faster loading times.

Images OptimizedvisibilityLive Demo

Image optimization may yield great reductions in file size. Less bytes means faster loading times.

External AssetsvisibilityLive Demo

Some publisher require ads to have all necessary files bundled in the Zip archive.

Uses jQueryvisibilityLive Demo

jQuery is a relative big library. It adds up to the overall file size and CPU time. Most part of the library will likely not even be used.

HTML5 LibraryvisibilityLive Demo

Just nice for you to know :)

Hosted File SizevisibilityLive Demo

With thousands of creatives to host, ad server vendors may apply a limit to the hosted file size.

File Types AllowedvisibilityLive Demo

Ad server vendors who don't sanitize files after extraction may have their security at risk. Imagine if the Zip archive contains a .PHP file (or any other server-side script).

Load Size: TotalvisibilityLive Demo

Keeping the load size at a minimum improves the user-experience and reduces page load time.

Load Size: InitialvisibilityLive Demo

Keeping the load size at a minimum before the publisher's page has loaded improves the user-experience.

Load Size: SubloadvisibilityLive Demo

Keeping the load size at a minimum improved the user-experience, thought the subload is of less importance.

Network RequestsvisibilityLive Demo

Keeping the number of HTTP requests at a minimum improves page load.

CPU UsagevisibilityLive Demo

Heavy ads are one of the reasons why people are using ad blockers. CPU cycles drain batteries on mobile phones.

DOMContentLoadedvisibilityLive Demo

Ads that fire the DOMContentLoaded event late stay in a 'loading' state.

DimensionsvisibilityLive Demo

You want to make sure the dimensions match standard size ad units.

Has VideovisibilityLive Demo

Videos are generally heavy assets. You may want to be aware of it.

Memory UsagevisibilityLive Demo

Ads are displayed in iframes, which essentially is a tiny web page. Excessive memory usage may have a negative user experience, especially on mobile phones.

SSL-CompatibilityvisibilityLive Demo

We're in 2022, and secure connections are everywhere. If the ad uses unsecure connections (http://), it can't be loaded on a secure page.

Iframe CountvisibilityLive Demo

Iframes are essentially tiny web pages. Some ad tech vendors use iframes to send measurement pixels, as it allows to run JavaScript to gather extra information about the user. Each iframe however requires some extra RAM.

Cookies DroppedvisibilityLive Demo

Third party cookies are on the brink of becoming extinct. And dropping cookies without user-consent in the EU may not be a great idea.

Heavy Ad InterventionvisibilityLive Demo

Chrome has a built-in mechanism to remove ads that consume too much resources (RAM and CPU). Ads that are removed after a couple of seconds still count as an impression, but the CTR would be near zero.

Console ErrorsvisibilityLive Demo

Errors may prevent the ad from being displayed at all.

Console WarningsvisibilityLive Demo

Although warnings may not be that severe, it's best to be aware of them in order to avoid potential issues.

Creative RenderedvisibilityLive Demo

Blank ads are usually an indication the campaign was (geo)targeted. Or disabled. Or the ad failed to load due to errors or missing assets.

Blocked by AdBlockvisibilityLive Demo

Ad blockers not only lead to a missed opportunity, it also fuels discrepancies between ad systems.

Uses document.write()visibilityLive Demo

It's a synchronous function that blocks page render. Nothing else can be done in parallel, and consequently the impact on user-experience can be considerable.

Creative BordervisibilityLive Demo

Imagine the publisher's page background is blue, and the creative is blue as well. Then where does the ad start and end? It should be unambigous for the user that the image is an ad.

Missing AssetsvisibilityLive Demo

Missing assets are usually not intentional. It can prevent the ad from being displayed correctly.

Dialogs and ModalsvisibilityLive Demo

Some bad ads may throw modals that users have to click away. You certainly don't want those on your page.

Measurement PixelsvisibilityLive Demo

Each pixel may transfer user information to a third party server. They also increase the total number of HTTP requests.

Local StoragevisibilityLive Demo

The localStorage API let developers store information in the user's browser. It can be anything, from user identifiers to personally identifiable information (PII). Something you may want to be aware of.

Syntax ErrorsvisibilityLive Demo

Syntax errors may lead to non-working ads.

format_quote
Stefan von Gartzen
starstarstarstarstar
Senior Adtech Specialist, Motor Presse Stuttgart

VAST Video Ads

Ad SystemvisibilityLive Demo

It's not actually important, but it's just nice to know with who you're dealing with. Some publishers have a restricted list of ad server technology partners with whom they are doing business with.

CORS HeadervisibilityLive Demo

Without a proper CORS header, the browser won't be able to load the XML document. In that case, the video ads won't load and is considered a big configuration mistake.

Creative CountvisibilityLive Demo

If no creatives are returned, the ad server either targets the campaign to a subset of users, or the campaign is no longer active. Note that the creative count does not reflect the number of media files. A creative can have multiple media files for the player to choose from.

SSL-CompatibilityvisibilityLive Demo

Non-secure http:// pages are almost gone these days. It's imperative your VAST URL loads over a secure TLS connection (https). If not, browsers will refuse to download the XML document and consequently no ad will be played.

VAST VersionvisibilityLive Demo

The video player on the publisher's side may only be capable of handling certain versions of the VAST specification. This test allows you to double-check if the correct version has been chosen.

Wrapper RedirectsvisibilityLive Demo

Multiple parties may want to track metrics of the campaign (publishers, networks, agencies). By wrapping tags, each can add their own measurement pixels. Wrappers however increase latency and should be kept at a minimum.

XML Content-TypevisibilityLive Demo

It's good practice to set the correct content-type header, depending on the type of content the server sends back. In case of XML, the content-type should be text/xml.

XML Load TimevisibilityLive Demo

Servers that are under load or mis-configured may send the XML file in multiple parts, which results in additional download time. The faster the XML document is loaded, the faster the video can play.

XML HTTP CodevisibilityLive Demo

This tells the video player if the XML document was received correctly. That doesn't necessarily mean a video ad is available — think about geotargeting or frequency capping. Campaigns that are no longer active may return a 404.

XML File SizevisibilityLive Demo

Users on slow networks may have to wait some time before the XML file has been downloaded. During that time, no video can be played. This has a negative impact on user-experience.

Impression LoggingvisibilityLive Demo

Impression logging is imperative in order to track how many VAST ads are served. Note that this doesn't necessarily mean the video has been played, as this is measured using the 'start' event tracker.

Audio ChannelsvisibilityLive Demo

Videos with more than 2 audio channels are commonly meant for (home) cinemas. For video ads, it may just be too much.

Audio CompressionvisibilityLive Demo

Lossless algorithms preserve the original audio data so the sound is exactly the same after compression. Lossy algorithms remove parts of the audio information, but encodes it in a way we barely hear a difference. Lossy compression is preferred as it results in less file size with a negligible loss in quality.

Audio Sample RatevisibilityLive Demo

A sample rate that is too low results in poor audio quality. Higher samples rates result in better quality, but also comes with a higher file size.

Audio CodecvisibilityLive Demo

In order to play, the browser or device must support the codec to decode the video. AAC (Advanced Audio Coding) or AAC-LC (low complexity) are supported by almost all browsers and devices. If you're serving the video with a different codec, make sure your targeted device supports it.

Audio LoudnessvisibilityLive Demo

The audio loudness can be set high or low while creating the video. If the video ad is much louder than the original video content that was being played before the ad, this may not be appreciated by the user. YouTube, NetFlix and Apple Music all have maximum LUFS levels to maintain a good user-experience.

Audio True PeakvisibilityLive Demo

Imagine a video of nature: a river with some butterflies — just some soft meditation sounds. Then there's an explosion. LUFS levels are determined by averaging the video's loudness over time. It may have been in an acceptable range in this example. The true peak however detects the explosion, as it was the loudest part of the video.

Audio Bit RatevisibilityLive Demo

Higher bit rates result in better sound quality, as more audio data can be stored per second. It's however a trade-off between file size and quality.

Video Aspect RatiovisibilityLive Demo

On the web page of app where the video will be played, the ad unit will likely expect a video that matches the placeholder's aspect ratio. You want to avoid playing portrait videos in a landscape container, as it may be considered a bad user-experience.

Video DimensionsvisibilityLive Demo

Serving a video in a non-standard size may lead to letterboxing by the video player: black bars usually at the top and bottom of the video. While technically the video will play fine, it may not be a great user-experience.

Video DurationvisibilityLive Demo

Publishers commonly have restrictions regarding the duration of videos. Videos taking too long may abandon users. Too short and it may be difficult to transmit the message.

Video Bit RatevisibilityLive Demo

Higher bit rates result in better video/audio quality, as more data can be stored per second. It's however a trade-off between file size and quality.

Video Bit Rate ModevisibilityLive Demo

Contant bit rates means that the amount of data your device has to load every second remains the same. It's therefore more reliable on slow networks. Variable bit rates result in higher quality, but the data stream will not be contant. If bandwidth is not an issue, variable bit rates are generally preferred.

Video Chroma SubsamplingvisibilityLive Demo

Chroma subsampling takes advantage of the human's visual system's lower acuity for color differences than for black/white. Savely removing information that we can't notice saves bytes, resulting in lower file sizes.

Video Color SpacevisibilityLive Demo

YUV encodes a video taking human perception into account, allowing for reduced bandwidth and file size. It's doesn't make sense to show colors you can't see anyway, as compared to RGB.

Video Frame RatevisibilityLive Demo

A low frame rate results in a video appearing choppy or jerky. Higher frame rates are a pleasure to the eye, but comes with a higher file size.

File SizevisibilityLive Demo

Higher file sizes require users to have a higher bandwidth. To avoid buffering or stalling, the file size (bytes) divided by the video duration (seconds) should not exceed the user's bandwidth (in Mbps).

File FormatvisibilityLive Demo

In order to play the video, the browser or device must understand the container format to find out where the video and audio parts are located. MPEG-4 is supported by almost all browsers and devices. If you're serving the video in a different format, make sure your targeted device supports it. For example, serve videos in QuickTime formats only to Apple users.

File ExtensionvisibilityLive Demo

Publishers commonly have a restricted number of video file types they accept.

Video CodecvisibilityLive Demo

In order to play, the browser or device must support the codec to decode the video. H.264 is supported by almost all browsers and devices. If you're serving the video with a different codec, make sure your targeted device supports it.

MOOV Atom LocationvisibilityLive Demo

In order for the video to start playing, the MOOV atom has to be read first. If that atom is located at the end of the file, the whole file has to be downloaded before playback can begin. On slow networks, users may have to wait a couple of seconds depending on the size of the video. For the video to start playing immediately, the MOOV atom has to be placed at the beginning of the file.

Delivery TypevisibilityLive Demo

With progressive delivery, the video is actually downloaded to the user's device. It starts playing as soon as the necessary data is available. Streaming delivery requires a streaming server that only sends the part of the video that is currently watched. For most use cases, progressive delivery is the standard. If you're working with CTV or live-streams, the delivery type should be set to streaming.

Skip OffsetvisibilityLive Demo

If the publisher requires a skip offset, this test makes sure it has been configured correctly.

Video Mime-TypevisibilityLive Demo

The mime type should correspond with the actual file format. This test makes sure MP4 files have a video/mp4 mime-type, and similarly WebM a video/webm mime-type.

Video Ads

Video CodecvisibilityLive Demo

In order to play, the browser or device must support the codec to decode the video. H.264 is supported by almost all browsers and devices. If you're serving the video with a different codec, make sure your targeted device supports it.

Video Aspect RatiovisibilityLive Demo

On the web page of app where the video will be played, the ad unit will likely expect a video that matches the placeholder's aspect ratio. You want to avoid playing portrait videos in a landscape container, as it may be considered a bad user-experience.

Video DimensionsvisibilityLive Demo

Serving a video in a non-standard size may lead to letterboxing by the video player: black bars usually at the top and bottom of the video. While technically the video will play fine, it may not be a great user-experience.

Video Frame RatevisibilityLive Demo

A low frame rate results in a video appearing choppy or jerky. Higher frame rates are a pleasure to the eye, but comes with a higher file size.

MOOV Atom LocationvisibilityLive Demo

In order for the video to start playing, the MOOV atom has to be read first. If that atom is located at the end of the file, the whole file has to be downloaded before playback can begin. On slow networks, users may have to wait a couple of seconds depending on the size of the video. For the video to start playing immediately, the MOOV atom has to be placed at the beginning of the file.

Video Color SpacevisibilityLive Demo

YUV encodes a video taking human perception into account, allowing for reduced bandwidth and file size. It's doesn't make sense to show colors you can't see anyway, as compared to RGB.

Video Chroma SubsamplingvisibilityLive Demo

Chroma subsampling takes advantage of the human's visual system's lower acuity for color differences than for black/white. Savely removing information that we can't notice saves bytes, resulting in lower file sizes.

Audio CodecvisibilityLive Demo

In order to play, the browser or device must support the codec to decode the video. AAC (Advanced Audio Coding) or AAC-LC (low complexity) are supported by almost all browsers and devices. If you're serving the video with a different codec, make sure your targeted device supports it.

Audio LoudnessvisibilityLive Demo

The audio loudness can be set high or low while creating the video. If the video ad is much louder than the original video content that was being played before the ad, this may not be appreciated by the user. YouTube, NetFlix and Apple Music all have maximum LUFS levels to maintain a good user-experience.

Audio True PeakvisibilityLive Demo

Imagine a video of nature: a river with some butterflies — just some soft meditation sounds. Then there's an explosion. LUFS levels are determined by averaging the video's loudness over time. It may have been in an acceptable range in this example. The true peak however detects the explosion, as it was the loudest part of the video.

Audio Sample RatevisibilityLive Demo

A sample rate that is too low results in poor audio quality. Higher samples rates result in better quality, but also comes with a higher file size.

Audio ChannelsvisibilityLive Demo

Videos with more than 2 audio channels are commonly meant for (home) cinemas. For video ads, it may just be too much.

Audio CompressionvisibilityLive Demo

Lossless algorithms preserve the original audio data so the sound is exactly the same after compression. Lossy algorithms remove parts of the audio information, but encodes it in a way we barely hear a difference. Lossy compression is preferred as it results in less file size with a negligible loss in quality.

Audio Bit RatevisibilityLive Demo

Higher bit rates result in better sound quality, as more audio data can be stored per second. It's however a trade-off between file size and quality.

File FormatvisibilityLive Demo

In order to play the video, the browser or device must understand the container format to find out where the video and audio parts are located. MPEG-4 is supported by almost all browsers and devices. If you're serving the video in a different format, make sure your targeted device supports it. For example, serve videos in QuickTime formats only to Apple users.

Video Bit RatevisibilityLive Demo

Higher bit rates result in better video/audio quality, as more data can be stored per second. It's however a trade-off between file size and quality.

Video Bit Rate ModevisibilityLive Demo

Contant bit rates means that the amount of data your device has to load every second remains the same. It's therefore more reliable on slow networks. Variable bit rates result in higher quality, but the data stream will not be contant. If bandwidth is not an issue, variable bit rates are generally preferred.

File SizevisibilityLive Demo

Higher file sizes require users to have a higher bandwidth. To avoid buffering or stalling, the file size (bytes) divided by the video duration (seconds) should not exceed the user's bandwidth (in Mbps).

File ExtensionvisibilityLive Demo

Publishers commonly have a restricted number of video file types they accept.

Video DurationvisibilityLive Demo

Publishers commonly have restrictions regarding the duration of videos. Videos taking too long may abandon users. Too short and it may be difficult to transmit the message.

Video Mime-TypevisibilityLive Demo

The mime type should correspond with the actual file format. This test makes sure MP4 files have a video/mp4 mime-type, and similarly WebM a video/webm mime-type.

Try AdValify with your team

Get instant access to the platform — see how it works.