The banner zip is correct for trafficking and wrong for approval. Here's why the review round is where ad creative loses time, and how to let the reviewer just watch the thing run.
Ad creative has a strange asymmetry in it. The making is precise work — weight budgets, frame timing, a CTA that has to land in the last second. The approving is a mess of downloads and "the third one, bottom right".
Nearly all of that mess comes from one decision that nobody actually made: sending the reviewer the same zip you send the ad server.
A banner bundle is a considered piece of engineering: an index.html, compiled JS and CSS, images squeezed to fit a network's kilobyte ceiling, all zipped so an ad server can ingest and weigh it in one move. For that reader — a machine — it's exactly right.
The approval reader is a person. Usually a busy one, often a client rather than a colleague, frequently on a phone between meetings. What they need is to see the creative move. What they receive is an archive.
So they download it. Unzip it into their downloads folder. Look at a directory containing index.html, a js folder, an img folder and a manifest. Double-click the HTML. Maybe it opens correctly and maybe the browser blocks a local script and they see a blank rectangle and conclude your banner is broken.
Four steps, and a failure mode that makes correct work look wrong. And that's the desktop path — on a phone, the sequence simply doesn't complete.
None of this is anyone's mistake. It's what happens when a format built for one audience gets handed to another because it's the file that was already sitting there.
The common workaround is to skip the zip and send a screen recording or an exported GIF. It's a real improvement and it has a hard ceiling.
A recording answers what does it look like. Most approval questions are about how does it behave:
A recording is your account of the creative, filmed at your pace on your screen. The reviewer is being asked to trust the account. When they approve based on it and something's off in the live version, that discovery happens after trafficking, which is the most expensive moment for it to happen.
Upload the same zip you'd traffic. The reviewer clicks and the creative runs at full size in their browser — animation, hover states, clickthrough — with nothing to unpack.
The move is small: keep the zip, change who unpacks it. Upload the bundle and let it be served as pages, so the reviewer receives a URL rather than an archive. Same asset, right audience.
What that fixes, in order of how much time it saves:
No unpacking. One click. The creative is on screen. This is most of the benefit and it arrives immediately.
It runs for real. Scripts execute, so the timeline animates, hover states fire, the clickthrough opens where it points. The reviewer is judging the creative rather than a report about it.
It works on a phone. Which is where a surprising share of approvals actually happen, and where the zip path was never viable.
True size. The creative renders at the dimensions you built it, so "the CTA is too small" is a real observation rather than an artefact of a scaled preview.
The mechanics are worth knowing because this is where it breaks. A bundle serves one entry page — the root index.html if there is one, otherwise the shallowest HTML file in the package. The two things that reliably go wrong are a zip that wraps everything inside a single named folder (every relative path gains a level) and assets referenced from the root with a leading slash. Zip the contents rather than the enclosing folder, keep paths relative, and the set behaves exactly as it did locally. This is the same set of gotchas that applies to any zipped bundle versus a hosted link.
The other half of the approval mess is how notes come back. Email produces sentences like "the third one, bottom right, the bit at the end" — which is a reasonable thing to write and a poor thing to act on, because it describes a moving image in prose.
Letting the reviewer pin a note directly onto the element they mean removes the translation step entirely. The note arrives attached to the thing it's about, which matters most for animation, where "the bit at the end" could be three different frames. If your process then feeds those notes back into the tool that built the creative, collecting them in a form you can hand straight back saves the retyping round as well.
Campaign creative is embargoed creative more often than not, and links leak in the most ordinary way possible: someone forwards one, and it still works six weeks later.
Three defaults worth having. The address should be unguessable and carry a no-index tag, so an unannounced campaign can't be crawled or stumbled into — that should be how it arrives, not a box you tick. Under a real embargo, add a password so holding the link isn't sufficient on its own. And set an expiry, because the actual failure isn't a stranger finding your banner; it's an approved-then-replaced cut that keeps opening for everyone who was ever sent it.
That last one is the underrated control. Sending a link before the work is final is a perfectly good way to work as long as the link keeps up — replace the file and the same address serves the current cut, so nobody is ever approving something you've moved past.
None of this makes a banner better. Timing, hierarchy and whether the idea survives at 160x600 are still the job.
What it does is stop the approval round from adding noise to a process that's already tight on time. The reviewer's first interaction with your work should be watching it run, not managing an archive — and when that's true, the notes you get back are about the creative, which is the only kind of note worth waiting for.
3D renders flattened to PNG. Floor plans frozen in PDF. Section toggles lost in screen recording. The HTML preview shape that keeps the interactivity alive for client review.
A training or coaching program delivered as a file works on day one and degrades from there — pinch-zooming on a phone, a client on last month's version, no way to fix a typo. Here's what changes when the program lives at a link instead.
Board members read the QBR on their phones over the weekend, then re-reference specific sections weeks later when drafting IC memos. The container shapes both halves of that cycle.
miinideck turns a single HTML file into an unguessable link with optional password and expiry. Default-private, never indexed.