A rich media ad can be a template too. A rich media set makes one HTML5 bundle per sheet row — a ZIP you upload to an ad server — with that row's text, images, and click-through baked in.
Availability: personalized creative sets are rolling out to teams gradually. If you do not see Personalize with data on the rich media ad's page, your team does not have it yet. Contact support to ask for access.
| Static set | Rich media set | |
|---|---|---|
| One ad is | One row in one size (a JPEG) | One row, as a responsive HTML5 bundle covering every size |
| Sizes on the review | The sizes you pick | Responsive (every size) |
| Quote line | Renders | Bundle builds |
| Text fit check | Yes — ads can need review | Copy fits in the ad itself (see Keep long values in their box); a row too long for a Flag for review element needs review |
| Save to library / Edit a copy | Yes | No — download or export the bundle |
Open the rich media ad from the brand's Rich Media list (/home/brands/{brandId}/rich-media/{generationId}). In the left panel's Assets tab, give each element that should change a variable with its { } chip — the headline, the price, the product image, the link. Save the ad.
The stage previews the current row: the saved ad with that row's values, running in a sandbox that loads only the ad's own files. The ad itself is not changed. Step through rows, or open the Preview grid and pick a row.

Most of the ad's own images reach the preview through the app, so an image whose link redirects to another site usually still shows, as it will in the bundle. Some keep loading from their original link instead, and may not show in the preview if that link redirects — the bundle still includes them:
http:// links, and links to private or internal addressesVideos cannot come from the sheet yet. A video variable keeps the template's clip, and the bar says so.
A row's text is often longer than the design's — a long product name, a price with a prefix. So that it never pushes the button or other elements around, each text, button, and image you bind to a column gets a fit, and its box is locked at the size it has in the editor. The ad then adapts the content to the box at every size it is shown: text shrinks, down to a smallest size, and images fill or fit their box.
Text that is still too long at its smallest size is cut off with an ellipsis — or, for prices, offers, and legal copy, flagged: a row whose value is too long goes to Needs review before it ships. Binding chooses for you; change it in the element's Fit properties under If it doesn't fit.
Before you run the set, the stage warns about columns with values longer than their box holds, and Longest values previews the longest value of each column in the whole sheet. See Fit long values in their box for every option and what binding sets.
Every click-through in a bundle goes to one place: the row's landing_url.
landing_url to a column to give each row its own landing page. Links must start with https, mailto, or tel.var clickTag = "…" with that URL — the usual IAB convention — so an ad server can replace it with its own tracking URL.clickTag is empty.HTML5 ads have a single click-through link, which always comes from the landing_url column. If the ad's link is connected to another column (say product_url), the editor warns that each row's product link won't be used, and the set can't be made until you connect the link to landing_url instead.
A bundle is self-contained. When the set is prepared, every script, stylesheet, font, and image the template loads is downloaded once and packed into each bundle. A finished bundle makes no network requests except its click-through.
So some templates cannot be bundled. The review then skips them with a reason:
| The template… | What to do |
|---|---|
| Loads a frame, redirects the page, uses a relative link, or loads a script that is not from a public library CDN | Remove it from the template |
| Points to another site outside its click-through — a plain link, a form, or an attribute | Remove it, or make it the ad's link |
| Plays video or audio from another site | Remove the media |
| Loads too many files, or its files add up to too much (the message gives the limit) | Use fewer or smaller images, fonts, or scripts |
| Loads a script, stylesheet, or font that cannot be downloaded | Check the link, or remove it |
Fix the template, save it, then choose Refresh quote on the set's review.
Choose Review set in Personalize with data. The review works as for a static set — see Review and approve a set. The Ads line reads like 40 HTML5 bundles: one per row, covering every size.
On the set page, each row shows an HTML5 bundle tile that Covers 6 sizes. From its … menu (or Preview in Table view):
A very large bundle shows This bundle is too large to preview here. Download it instead.

Export downloads a ZIP that holds each row's bundle as its own ZIP, ready to upload to an ad server, plus a CSV manifest of row keys, files, landing URLs, and ad names. See Export a set.