miinideckmiinideck
PricingUse casesBlog
Sign in
Tools

HTML5 banner ad preview tool and validator

Drop the ZIP you'd upload to the ad platform. It gets checked and rendered at its declared size, right here — nothing is uploaded.

Drop the creative here

The .zip you’d upload to the ad platform, or a single .html

Unpacked and rendered in your browser. The creative is not uploaded, stored, or logged.

The creative will render here, at the size it declares.

Drop a creative to see it render.

The creative will render here, at the size it declares.

Drop a creative to see it render.

Drop the creative here

The .zip you’d upload to the ad platform, or a single .html

Unpacked and rendered in your browser. The creative is not uploaded, stored, or logged.

How it works

Drop the creative and it unpacks in your browser, then renders in an isolated frame at the exact pixel size the file declares in its ad.size meta tag. That is the part a file tree cannot tell you: a 300×250 that was actually authored at 320×250 looks fine in a folder listing and wrong in a placement.

Alongside the render you get the three structural things Google's published HTML5 guidelines are explicit about — whether the ad.size meta tag is present and readable, whether a clickTag exists, and whether every referenced asset is genuinely inside the bundle. That last one is measured rather than guessed: the bundle is folded into a single self-contained document first, so anything still pointing at an absolute URL afterwards is, by definition, a dependency the ZIP does not carry.

Weight is reported as a fact, not a verdict — total size, file count, and which files are eating the budget. There is a box to type your own limit in, because the number differs by platform and by publisher, and a tool that hard-codes one is a tool that will be wrong the day someone changes theirs.

It all happens on your machine. The ZIP is read by your browser and drawn in a sandboxed frame; it is never sent to miinideck, never stored, never logged. Which also means there is no link yet — sending the preview to a client is a separate, deliberate step.

What this tool doesn’t do

  • It is a preview and a structural check, not a certification. Passing here does not mean a network will accept the creative — every platform has its own validator, and theirs is the one that counts. Run this first because it is instant, then run theirs.
  • It does not police weight against a published spec, on purpose: Google's own HTML5 guidelines document the ad.size and clickTag rules but do not publish a maximum ZIP size or file count, and the third-party numbers in circulation disagree with each other. You supply the budget; the tool does the arithmetic.
  • No backup-image generation, no bulk validation across a whole campaign set, no polite mockup of the creative inside a fake article page. Dedicated ad-ops platforms do all of that and do it well — this is the quick look before you get that far.
  • Anything that needs a server is out of scope here, as it is for any HTML5 creative: a banner is a self-contained bundle by definition.

Questions

How do I preview an HTML5 ad without uploading it to the ad platform?

Drop the ZIP into the panel above. Your browser unpacks it locally and draws it in an isolated frame at the size the creative declares, so you see the animation run the way a placement would show it — before the file has gone anywhere. Nothing is transmitted or stored, which matters when the creative is an unreleased campaign.

What is the ad.size meta tag and why does my ad need one?

It is how a creative tells the platform what dimensions it was built for. Google Ad Manager's HTML5 guidelines document the format as a meta tag named ad.size with content in the form width=[x],height=[y] — for example width=300,height=250. Without it, or with it malformed, the platform has no reliable way to match the creative to a slot. This tool reads the tag out of your entry HTML and renders at exactly those numbers, so a mismatch between what the file says and what it looks like is visible immediately.

Why does my creative render here but get rejected on upload?

Rendering and passing validation are different bars. This tool checks the structural things Google publishes — the ad.size tag, a clickTag, assets being inside the bundle — but each network layers its own rules on top: file-type allowlists, animation length, weight budgets, backup images, and policy review. Treat a clean result here as 'nothing obviously broken', not as approval, and run the platform's own validator before you commit a flight to it.

What does 'references point outside the bundle' mean?

It means the creative is loading something from the internet rather than from inside the ZIP — a font, an image, a library on a CDN. Google's guidelines are explicit that all referenced assets must be included in the ZIP with relative paths, so an external reference is usually a rejection or, worse, a creative that renders in your test and breaks in a placement. The tool finds them by folding the bundle into one self-contained document and then looking for anything still pointing at an absolute URL, so the list you get is what genuinely could not be resolved locally.

How big can an HTML5 ad be?

It depends on the platform, and that is not a dodge — Google Ad Manager's published HTML5 guidelines set out the ad.size and clickTag requirements but do not state a maximum ZIP size or file count, and the figures quoted in third-party guides disagree with one another. The number that binds you is the one in the spec sheet from whoever is running the placement. Put that number in the budget box above and the tool will tell you whether you are under it and which files to attack if you are not.

How do I send the preview to a client for approval?

Viewing and sharing are deliberately separate here — nothing is uploaded unless you ask. When you do want a link, miinideck hosts the same bundle at an unguessable URL that stays out of search by default, so a client or a publisher can open it in a browser with no account and no ZIP to unpack at their end. Without an account the link lasts 7 days and can take a password; sign in (free) to change the password later or keep one link from expiring.

Related

Getting HTML5 banner ads approvedThe review loop, without emailing a ZIP.ZIP bundle viewerFor a zipped site rather than a creative.What the client actually seesThe other end of the approval link.Sending the link before it's finishedReview rounds on one URL.
miinideck

HTML files, finally as links — for AI builders, agencies, and consultants. Default-noindex, default-private, default-yours.

Product

  • Pricing
  • Use cases
  • Free HTML hosting
  • Try it free

Resources

  • Blog
  • Free tools
  • Featured on
  • Report abuse

Legal

  • Privacy
  • Terms
Listed onmiinideck listed on Product Huntmiinideck listed on Faziermiinideck listed on TheSaaSDirmiinideck listed on AIToolHuntmiinideck listed on LaunchNest
© 2026 miinideckMade for people who don't want their work indexed.