Hooks, offers and formats of any ad, without AI guesswork

What can be read from an ad reliably with rules and measurement, what needs a model, and how AdLib's features endpoint returns hooks, offers, urgency, video length, cuts and on-screen text with evidence.

The AdLib team · · 3 min read

Every ad intelligence tool now tags ads with AI: hook types, angles, emotions, personas. The tags are useful when they are right and costly when they are not, because nobody can check them. A tag that says "urgency" without saying where is a claim, not data.

We took the opposite route for AdLib's creative features: everything that can be read reliably without a model is read without one, and every result shows its evidence.

What rules can read

A surprising amount of what creative strategists compare is in the text and the file itself:

Feature How Evidence in the result
Hook First sentence of the primary text The sentence
Question hook The first sentence ends with a question mark The sentence
Prices and discounts Patterns for currencies, percentages, "save" phrases "-30%", "€19,99"
Urgency Phrase lists: "today only", "nur heute", "dernière chance" … {"rule": "today only", "text": "Today only"}
Social proof "customers", "reviews", "5-star", "Testsieger" … the matched words
Guarantee, free offer, free shipping, novelty Phrase lists in seven languages the matched words
Emojis, hashtags, capitals Counted the numbers
Landing page Domain, path, UTM parameters the URL parts

Phrase rules miss things a human would see, and they never invent anything. When a rule fires, you can see why.

What measurement can read

Video ads carry their format in the file. With ffprobe and ffmpeg we measure:

  • Aspect ratio and orientation. 9:16, 4:5, 1:1 or 16:9, so you can see which formats a competitor favours per platform.
  • Length and audio. Whether the video has a sound track at all, which separates silent motion graphics from voice-over and talking-head ads.
  • Hard cuts. Scene changes above a threshold, as a count and per minute. A Netflix trailer ad we tested had 17 cuts in 18 seconds, almost one per second.

What OCR can read, and where we stop

Much of an ad's message is written on the image: the offer, the price, the claim. Tesseract reads it locally, at no model cost, and reports a confidence per word. That is the part where reliability matters most, so we set strict gates:

  • a word needs at least 75% confidence and three characters (or a digit, for prices);
  • an image's text is kept only if at least two such words remain.

On a static Netflix ad the result was "STORIES YOU CAN'T MISS PLANS START ?149/MONTH": the rupee sign came out as a question mark, the words are right. On the first frame of a fast trailer, OCR found only fragments, and the gates dropped them. No text is better than invented text.

What still needs a model

Some features cannot be read with rules:

  • Spoken words in a video need speech-to-text.
  • Visual formats like talking head, UGC or product demo need image understanding.
  • Angles and personas are interpretations, not facts in the file.

When we add these, they will come as separate fields with the model version, the evidence (a transcript line, a frame) and a confidence, so they can be checked like the rest.

Try it

Shell
curl "https://api.adlibapi.com/v1/ads/meta:1435611275210253/features" \
  -H "X-API-Key: $ADLIB_API_KEY"

Each call costs 2 credits and is stored per ad version, so asking again is free for us and cheap for you. The docs list every field.

Questions people ask

Does AdLib use AI to tag ads?
Not for the features endpoint. Text tags come from fixed phrase and pattern rules and quote the exact text they matched, media properties are measured with ffprobe and ffmpeg, and on-image text is read with tesseract OCR.
What is the hook of an ad?
The opening that should stop the scroll. For the text of an ad, AdLib returns its first sentence and whether it is a question. Spoken hooks in videos need a transcript, which is not part of the rule-based features.
How accurate is the on-image text?
Tesseract reports a confidence per word. AdLib keeps only words read with at least 75% confidence and drops an image's text when fewer than two such words remain, so you get no text rather than wrong text.
What does the features endpoint cost?
2 credits per ad. Results are stored per ad version, so a repeat call answers from storage; calls where nothing could be analysed are free.