How do I find every ad that shows a specific product?
Search the video frames, since the product usually appears only in the picture. Cut each ad into scenes, turn every scene into an embedding, and compare those embeddings against a few reference photos of the product. Then read the packaging text and the voiceover as a second check, so a lookalike does not slip in. The result is a list of ads with the scene and timestamp where the product appears, which you can open at the right second instead of watching every ad.
File names, campaign names and DAM tags find the ads someone remembered to label. They miss the product that shows up in the background of a lifestyle spot, the ad that was renamed for a new market, and everything made before anyone agreed on a tagging scheme.
Why can't I just search our DAM or ad account for it?
Because nothing there describes what is on screen at the level you need. Ad platforms know the campaign, the spend and the copy. A DAM knows the file name, the folder and whatever tags were added. Automatic tagging in most DAMs assigns general labels such as "bottle" or "skincare", and while some let you train custom tags, a tag still describes the whole file rather than the second the product appears.
So a search for the product finds the ads that were written or tagged about it. An ad where the product is on screen for three seconds, never named, is invisible to all of those systems.
What methods work, and what does each one miss?
| Method | What it catches | Where it fails | Effort |
| Search names, campaigns and tags | Ads someone labelled with the product | Anything unlabelled, renamed, or where the product is incidental | Minutes, if the metadata exists |
| Search the ad copy and transcript | Ads that name the product in text or voiceover | Ads that show the product without saying it | Low, once audio is transcribed |
| Read on-screen text (OCR) | Packaging, price cards and supers that print the product name | Small, blurred or angled packaging; products without readable text | Moderate |
| Visual search with reference photos | Ads where the product is visible, named or not | Very small or heavily occluded products; lookalikes without a second check | Moderate, then fast per query |
| Detect the product as an object, then compare the crop | Small products in busy frames that a whole-frame comparison misses | Needs a detector that finds the product's general category | Higher |
| Watch every ad | Everything | Does not scale past a few hundred ads | Very high |
How does visual search for a product in video work?
The pipeline has four steps, whichever tools you use.
1. Cut each ad into scenes. A scene-cut detector splits the video where the shot changes, and long shots get split on a fixed interval as well. A scene is the unit you want back: it has a start and end time, and one thumbnail represents it. 2. Embed every scene. An image or multimodal embedding model turns each scene's frames into a vector, a list of numbers where visually similar content ends up close together. 3. Embed your reference photos. Use several: the front of the pack, an angle, the product in a hand, and each packaging version that ran. One studio shot on white rarely matches how the product looks in a real ad. 4. Rank scenes by similarity to the reference photos, and return the ad, the scene and its timestamps.
When the product is small in the frame, a whole-scene embedding is dominated by everything else in the shot. The fix is to find objects first, using an open-vocabulary detector that can locate "a bottle" or "a sneaker" from a text prompt, and compare each cropped object against the reference photos instead of the whole frame.
How do I tell our product from a lookalike or a competitor's?
Visual similarity alone confuses products that share a shape and a colour, and that is common within a category. Three habits keep the results honest:
What does it cost to search a whole ad archive this way?
Indexing is a one-time cost per ad, and searching afterwards is cheap. The cost is driven by how many minutes of video you process, which for ads is small because each creative is short. At Mixpeek's published rate of $0.05 per minute of video processed, 10,000 ads averaging 30 seconds is 5,000 minutes, or $250 to index, before storage and queries. For how the other line items add up, see what it costs to make a video library searchable.
How do I do this with Mixpeek?
Mixpeek's Creative DNA template deploys this pipeline over an ad archive in one click. Each creative sits in a bucket with its ad id, brand and optional copy. The multimodal extractor cuts every ad into scenes and embeds them, and a separate collection holds the ad copy. The scene retriever takes a plain-language description such as "someone holding the product up to the camera" and returns ranked scenes with the ad, brand, start time and end time. Because the scene embedding is multimodal, a retriever can also take a product photo as the query. The Creative DNA solution page shows how a performance-video agency uses it across its library.
Your videos stay in your own object storage, and the index points back to them, so nothing is copied into a separate video platform.
Related: why video search returns the wrong scene, why image search returns lookalikes instead of the exact item, why video search misses words that appear on screen, the best AI video tagging tools and AI platforms for advertising technology.
Frequently Asked Questions
How do I find which of our ads show a particular product?
Cut the ads into scenes, embed each scene, and compare them with several reference photos of the product. Confirm matches with the packaging text or the voiceover. You get the ads and the timestamps where the product appears, including ads where it was never named or tagged.
Can I search our ad library with a photo of the product?
Yes, if the scenes are indexed with an image or multimodal embedding model. The photo is embedded the same way and compared with every scene. Use several photos from different angles, and one per packaging version, because a single studio shot on white rarely matches how the product looks in an ad.
Why do DAM tags miss ads that show our product?
Tags describe the whole file and depend on someone adding them. A product that appears briefly, or in the background, or in an ad made before the tagging scheme existed, is not in the tags, so a tag search never returns it.
How do I stop similar products from showing up in the results?
Require a second signal before you trust a match: the product name read from the packaging, a logo match, or the name spoken in the voiceover. Set the similarity cut-off from a hand-labelled sample of your own scenes rather than a default, and send matches with only a visual signal to review.