Ad Fraud Intelligence API
Check caller-supplied ad clicks for automation signals, browser and device contradictions, timing, duplicate ids, velocity, referrer mismatch, fingerprint similarity, conversion disagreements, campaign outliers, repeated patterns, and an explainable risk score. All checks run locally on the request.
Look for automation indicators in caller-supplied HTTP and browser signals. An IP address is ignored. A User-Agent token is a string match, not proof of a bot.
Compare caller-supplied browser properties for contradictions. The User-Agent is not verified, and a timezone offset is not a location.
Compare caller-supplied device type, OS, model, screen, and architecture. No device identity is looked up.
Check caller-supplied click timestamps and dwell for impossible order or a fixed short gap. One fast click is a weak indicator, not a campaign pattern.
Find repeated click ids, gclids, and fbclids in the supplied batch and optional history. Nothing is stored between calls.
Count timestamped clicks inside a supplied window. A burst is a frequency calculation, not proof of automation. Clicks are not grouped by IP.
Compare a caller-supplied referrer, landing URL, and campaign source. URLs are not fetched. A family mismatch is a heuristic, not a verified referrer.
Compare caller-supplied canvas, WebGL, audio, and font hashes. Hashes are not computed here, and a match is not a device identity.
Compare caller-supplied clicks and conversions for time order, campaign mismatch, and repeated ids. An unmatched conversion is a missing link, not proof the click never happened.
Find impossible ratios and, when at least eight rows have clicks and impressions, click-through-rate outliers. An outlier is a statistic, not a fraud verdict.
Look for identical timestamps, a fixed gap, or identical coordinates across a supplied click collection. Fewer than five usable clicks is insufficient.
Sum a documented weight for each supplied click attribute. Missing data adds no points. The score is not a probability of fraud.