Inspiration

An ad carries cultural signals in every shot: the brands, the music, the clothes, the setting. Each one says something about who the ad is for. A creative team usually can't check those signals until the ad is finished and the money is spent. We wanted to test a cut against its intended audience before it runs.

What it does

Upload an ad and choose an audience. Culture Check:

  • finds the cultural cues in each shot
  • shows who each cue reaches by age and gender, using Qloo's taste graph
  • scores the whole video for six age groups
  • suggests replacements for cues that miss
  • writes a brief
  • answers follow-up questions by querying Qloo

A Real-world results page puts the app's judgement next to the reach Meta publishes for EU ads.

How we built it

Our open-source video library, vidra, splits the video into shots, describes the frames and transcribes the sound. A model merges those notes into a list of cues. Named things go to Qloo's search and kinds of thing go to its tags. A demographics call then returns each cue's audience. An analyst agent has five tools for follow-up questions, including re-scoring every cue for another audience.

The app is FastAPI and plain JavaScript, in one Docker container on Vercel. It stores no uploads: the browser holds the report and sends it back with each question.

Challenges

Real-world data. Meta's reach data looked like the ideal test, but reach mostly follows the advertiser's targeting. Only one pair of ads we tested was usable, too few to count.

Keeping the advertiser's brand. Told not to replace the advertised brand, the model did it anyway, swapping Ring for Yelp. A prompt rule failed, so the check moved into code.

Hosting. Vercel limits requests to 4.5 MB, and ads are larger. WebSockets looked like the fix but went silent partway through runs. Large videos now pass through private storage for a few seconds, and progress comes back as a streamed response.

What we learned

  • Use Qloo's cue data as measurement, and treat the whole-video score as a judgement.
  • Test a claim before relying on it, and publish the result either way.
  • If a rule matters, enforce it in code rather than in a prompt.

What's next

  • Recognise songs automatically.
  • Test on more ads with the same targeting.
  • Improve replacements for styles and settings.

Built With

Share this project:

Updates

Submission history