Ad platforms detect identical creatives on five layers: exact cryptographic hashes for byte-identical files, perceptual hashes for visually similar images, EXIF metadata for authenticity signals, visual embeddings that group creatives by content, and behavioral signals across accounts. The first three are file-level and deterministic; the last two survive any file edit.
Exact hashing: the byte-identical check
The cheapest check a platform runs on upload: compute a cryptographic hash — SHA-256, MD5 or similar — of the file and look it up. Two files with identical bytes produce identical hashes. Collision found, duplicate confirmed.
A cryptographic hash is a one-way fingerprint of a byte stream: feed in any file, get back a fixed-length string that changes completely if a single bit of the input changes. Two practical consequences follow:
- Renaming does nothing. Filenames aren't hashed; content is.
final_v2_REALLYFINAL.jpgandcopy(14).jpgwith the same bytes are the same file to the platform. - Any re-encode defeats it. Re-saving a JPEG at a different quality, or shifting dimensions by a single pixel, produces a new byte stream and therefore a new hash. Exact hashing is trivially beaten — which is why no platform relies on it alone.
Why keep it at all? Because it's nearly free. Hashing a file costs microseconds, so it works as the first filter in front of the more expensive checks: catch the lazy re-upload instantly, spend compute on perceptual and visual analysis only when the bytes are new.
Perceptual hashing: similar pixels, similar hash
Perceptual hashing exists precisely because exact hashes are fragile. A perceptual hash is a short fingerprint derived from what an image looks like, so visually identical images produce nearly identical fingerprints even when their bytes differ.
The classic recipe — pHash and its cousins aHash and dHash share the skeleton:
- Shrink the image to a tiny grid — 8×8 or 32×32 pixels — and convert it to grayscale. Detail and color disappear; structure survives.
- Reduce each cell to one bit: brighter or darker than the grid's average. (DCT-based pHash compares frequency coefficients against their median instead; same idea, one step more math.)
- Concatenate the bits into a fingerprint — 64 bits in the common versions.
- Compare fingerprints by Hamming distance: how many bits differ. Two images within a small distance — typically single digits — are treated as the same image.
This pipeline survives exactly the tricks buyers try first: recompression, resizing, format conversion, small color shifts. A JPEG re-saved ten times still lands within a few bits of itself. What moves a copy out of the match zone is enough pixel-level change, spread across the image — micro-noise, a small rotation, a slight crop. That is precisely what file-level uniquification applies; the working process is in the creative uniquification guide.
Thresholds and bit-lengths vary by implementation, and no platform publishes its own, so treat the exact numbers as illustrative. The mechanism itself is standard — the same family of algorithms powers reverse image search.
Metadata: the file's passport
Every image file can carry EXIF metadata: device model, ISO, exposure, timestamps, sometimes GPS coordinates, and a software field recording what produced the file.
Anti-fraud and moderation systems read this layer for two things. Exact weighting isn't public anywhere, so treat this as directional:
- Inconsistency. A file's metadata tells a story about where it came from. An export straight from a design tool carries a software field saying so; an authentic phone photo carries a device model and shooting data. In most networks, design-tool metadata on ad uploads is normal — but files whose story contradicts their use tend to score worse than files whose story holds together.
- Absence. Stripped metadata is its own signal. Real photos taken on real phones carry a full EXIF block. A file with none reads as processed, because processing is usually what removes it.
This is why a serious uniquification pass doesn't just delete the original EXIF — it writes a fresh, realistic one: a phone device model, a plausible ISO, coordinates from a city. The goal is a file that behaves like an authentic photo, not a file that behaves like a sanitized export.
Beyond the file: visual and behavioral signals
The last two layers don't care about your file at all.
Visual embeddings. Modern platforms pass images through neural networks that map what the image depicts into a vector; similar visuals land close together in that space. Meta's Andromeda is the visible example: creatives get grouped by visual similarity into a shared Entity ID, and impressions are shared across the group. Two files with zero bytes in common — different hash, different perceptual hash, different EXIF — still land in one Entity ID if they depict the same thing. This layer cannot be beaten by file edits, by construction. It moves only when the visual moves — a new background, different text, a swapped object.
Behavioral signals. Platforms also watch how files move, not just what they contain. Patterns that typically draw attention in most networks: the same fingerprint appearing across many unrelated accounts, repeated re-uploads of a file that was recently rejected, bursts of identical uploads arriving together. None of this is a public, scored rulebook — treat it as directional. But it explains two things buyers learn the hard way: why "just re-upload it" after a rejection tends to make things worse, and why duplicate files across accounts do more than throttle delivery. The escalation path is covered in why ad accounts get banned for duplicate creatives.
What defeats what: the cheat sheet
| Detection layer | What it reads | Beaten by | Not beaten by |
|---|---|---|---|
| Exact hash (SHA-256/MD5) | Raw bytes | Re-encoding, ±1px dimension shift | Rename, re-upload |
| Perceptual hash (pHash/aHash/dHash) | Low-resolution image structure | Pixel mutations: micro-noise, small rotation/crop, ±2% color shifts | Recompression, resize, format change |
| EXIF metadata | Device, software, authenticity fields | Fresh realistic metadata | Stripping EXIF — absence is a signal |
| Visual embeddings / Entity ID | What the image depicts | Changing the visual itself, e.g. region-level regeneration | Any file-level mutation |
| Behavioral signals | Upload patterns across accounts | One file per destination; no rejected-file re-uploads | Technical edits of any kind |
Reading the table bottom-up explains most failed fixes. Buyers attack layer one or two when the problem sits at layer four or five: if Meta grouped your creatives into one Entity ID, no mutation pass helps — the fix is a different visual. If a rejected file keeps coming back, the fix is behavioral, not technical. And the classic "is it fatigue or duplication" confusion usually turns out to be a layer mix-up too; creative fatigue vs creative duplication separates the two.
Worth stating plainly: these layers are additive, not alternatives. A platform typically runs all five at once, each feeding its own verdict into grouping, delivery and moderation decisions. That's why single-variable fixes — a rename, a re-save, a stripped EXIF — keep disappointing people. They address one row of a five-row table.
FAQ
What is a perceptual hash, in one sentence?
A perceptual hash is a short fingerprint of an image's visual structure — computed by shrinking the image to a tiny grayscale grid and recording where each cell differs from the average — so visually similar images produce nearly identical fingerprints even when their bytes differ.
Can I beat detection by re-saving the image at lower quality?
That beats the exact hash and nothing else. Perceptual hashing is built to survive recompression — the low-resolution structure barely moves — and the metadata, visual and behavioral layers are unaffected.
Is stripping all metadata a good idea?
No. Empty metadata reads as processed: authentic photos carry device and shooting data, so a file with no EXIF stands out. Realistic replacement metadata is the stronger approach.
Does Meta's Entity ID grouping use perceptual hashing?
It operates at a different layer. Perceptual hashing compares pixel structure; Andromeda's Entity ID grouping compares what creatives depict. Pixel-mutated copies of one image — different pHash, different EXIF — still share an Entity ID because the visual content is unchanged.
Do all platforms use the same detection stack?
The layers described here — exact hash, perceptual hash, metadata, visual similarity, behavior — are the industry-standard set, but implementations and thresholds are proprietary and differ per platform. Treat the mechanics as reliable and the specific cutoffs as directional.
See the fingerprint before the platform does
One takeaway from the mechanics above: three of the five layers are file-level, deterministic, and cheap to fix — and that is the layer you control completely. The Creative Uniquifier rebuilds your creative at exactly those layers: new SHA-256, pixel mutations calibrated to move perceptual hashes, fresh realistic EXIF — up to 32 copies per job, free, no watermark, each with its recorded mutation recipe. It sits alongside four other free tools for media buyers on the /tools hub.
By the FictioFactori team — we run these tools in our own buying workflow. Last updated: July 29, 2026.