{"id":5729,"date":"2026-06-11T10:23:10","date_gmt":"2026-06-11T10:23:10","guid":{"rendered":"https:\/\/adex.com\/blog\/?p=5729"},"modified":"2026-06-11T10:23:11","modified_gmt":"2026-06-11T10:23:11","slug":"threat-scoring-ad-networks-brand-safety","status":"publish","type":"post","link":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/","title":{"rendered":"How Threat Scoring Works in Ad Networks: A Brand Safety Risk Assessment Guide"},"content":{"rendered":"\n<p>When advertisers talk about brand safety, they usually mean keeping their ads away from harmful content. The real risk is often quieter, though. It can be a fraudulent click from a script running in a data center, or an ad impression served to a hidden browser window, or a traffic source that looks fine on the surface but fails every behavioral check underneath.<\/p>\n\n\n<div class=\"block__bord\"><div class=\"block__bord_desc\"><p>Threat scoring is how modern ad fraud detection platforms assign a risk level to every impression, click, session, or domain before it can cause damage. It\u2019s a model that takes in dozens of signals at once and produces a score that tells a network, an advertiser, or a verification vendor: how risky is this?<\/p>\n<\/div><\/div>\n<style>\n.block__bord { margin: 32px 0; padding: 1.25em 2.375em;\tborder-radius: 24px; background: rgba(0, 220, 200, 0.20); }\n.block__bord_desc {font-size: 16px !important;font-weight: 400 !important;color: #606060 !important;}\n<\/style>\n\n\n\n<p>This guide explains how these models work, what signals they rely on, and where they fall short.<\/p>\n\n\n<div class=\"toc\"><h4 class=\"toc__title\" id=\"contents\">Contents<\/h4><ul class=\"toc__list\"><li class=\"toc__list_item\"><a href=\"#what-is-a-threat-score-in-advertising\">What Is a Threat Score in Advertising?<\/a><\/li><li class=\"toc__list_item\"><a href=\"#the-signals-that-go-into-a-threat-score\">The Signals That Go Into a Threat Score<\/a><\/li><li class=\"toc__list_item\"><a href=\"#givt-and-sivt-two-levels-of-invalid-traffic\">GIVT and SIVT: Two Levels of Invalid Traffic<\/a><\/li><li class=\"toc__list_item\"><a href=\"#how-domain-and-publisher-risk-scores-work\">How Domain and Publisher Risk Scores Work<\/a><\/li><li class=\"toc__list_item\"><a href=\"#the-brand-safety-floor-and-suitability-framework-explained\">The Brand Safety Floor and Suitability Framework Explained<\/a><\/li><li class=\"toc__list_item\"><a href=\"#garm-brand-safety-floor-and-suitability-framework-four-risk-tiers-with-content-categories\">GARM Brand Safety Floor and Suitability Framework \u2014 four risk tiers with content categories<\/a><\/li><li class=\"toc__list_item\"><a href=\"#what-happens-when-traffic-gets-flagged\">What Happens When Traffic Gets Flagged<\/a><\/li><li class=\"toc__list_item\"><a href=\"#how-to-customize-risk-thresholds-for-your-campaigns\">How to Customize Risk Thresholds for Your Campaigns<\/a><\/li><li class=\"toc__list_item\"><a href=\"#adex-default-scoring-thresholds-signal-types-with-their-default-risk-levels-and-when-to-adjust-them\">Adex default scoring thresholds \u2014 signal types with their default risk levels and when to adjust them<\/a><\/li><li class=\"toc__list_item\"><a href=\"#the-real-limits-of-threat-scoring\">The Real Limits of Threat Scoring<\/a><\/li><li class=\"toc__list_item\"><a href=\"#faq\">FAQ<\/a><\/li><li class=\"toc__list_item\"><a href=\"#wrapping-up\">Wrapping Up<\/a><\/li><\/ul><\/div><style>\n.toc {}\n.toc__title {\n      font-size: 32px;\n    line-height: 40px;\n    font-weight: 700;\n}\n.toc__list_item {\n    color: #FE645A !important;\n}\n.toc__list_item:not(:last-child){\n    margin-bottom: 5px;\n}\n.toc__list_item a {\n    font-size: 18px;\n    line-height: 24px;\n    color: #FE645A;\n    font-weight: 600;\n}\n.toc__list_item a:hover {\n    text-decoration: underline;\n}\n@media (max-width: 1023px) {.toc__title {font-size: 24px;line-height: 32px;}}\n<\/style>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"key-takeaways\">Key Takeaways:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Threat scoring combines behavioral, technical, and contextual signals to assign a risk level to traffic and ad placements.<\/li>\n\n\n\n<li>GIVT (General Invalid Traffic) and SIVT (Sophisticated Invalid Traffic) are the two main categories of bad traffic, and they require different detection approaches.<\/li>\n\n\n\n<li>The same signal, such as a VPN (Virtual Private Network) connection, can be high-risk in one context and perfectly normal in another.<\/li>\n\n\n\n<li>Risk thresholds are configurable. A platform that lets you adjust what counts as &#8220;alert&#8221; traffic gives you far more control than one with fixed rules.<\/li>\n\n\n\n<li>No scoring model catches everything. Some sophisticated fraud is designed to pass detection, which makes layered defense necessary.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-a-threat-score-in-advertising\">What Is a Threat Score in Advertising?<\/h2>\n\n\n\n<p>A threat score is a number that summarizes how likely a piece of traffic, a placement, or a domain is to harm a campaign. The harm can take several forms: wasted budget on non-human traffic, an ad shown on a page that violates brand standards, or a click that never had a real user behind it.<\/p>\n\n\n\n<p>Unlike a simple blocklist (where a domain is either banned or allowed), a threat score is a spectrum. A traffic source might score low risk across most signals but trigger a warning for a specific behavior. That nuance is what makes scoring more useful than binary filtering, especially at scale.<\/p>\n\n\n<div class=\"block__bord\"><div class=\"block__bord_desc\"><p>Most scoring systems operate across three broad tiers: clean traffic, suspicious traffic that needs closer inspection, and traffic that should be blocked or redirected. The labels vary by platform, but the logic is the same across all of them.<\/p>\n<\/div><\/div>\n<style>\n.block__bord { margin: 32px 0; padding: 1.25em 2.375em;\tborder-radius: 24px; background: rgba(0, 220, 200, 0.20); }\n.block__bord_desc {font-size: 16px !important;font-weight: 400 !important;color: #606060 !important;}\n<\/style>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"the-signals-that-go-into-a-threat-score\">The Signals That Go Into a Threat Score<\/h2>\n\n\n\n<p>Threat scores are built by combining many inputs, and the weight of each input depends on what the model has learned and what the advertiser&#8217;s risk tolerance is set to.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Behavioral signals look at how a user interacts with a page: mouse movement patterns, scroll depth, time on site, and whether click timing follows a human rhythm or a mechanical one. These signals are strong evidence of real human presence, but they also take longer to collect than technical checks.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Technical signals are faster to evaluate: IP (Internet Protocol) address reputation, device fingerprint, user agent string, browser type, operating system, and whether the reported location matches the actual one. A browser reporting itself as Chrome on Windows but missing standard Chrome fingerprint markers is a common bot signal.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Contextual signals look at the environment around the ad: the size of the browser window, whether the ad was actually visible (or hidden inside an iframe that users never see), the time zone of the user versus the targeted region, and the domain where the ad appeared.<\/li>\n<\/ul>\n\n\n\n<div class=\"adtech-threat-score-block\">\n  <style>\n    .adtech-threat-score-block,\n    .adtech-threat-score-block * {\n      box-sizing: border-box;\n    }\n\n    .adtech-threat-score-block {\n      width: 100%;\n      padding: 0;\n      background: transparent;\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Inter, Roboto, \"Helvetica Neue\", Arial, sans-serif;\n    }\n\n    .adtech-threat-score-block .ats-figure {\n      display: block;\n      width: 100%;\n      max-width: 900px;\n      margin: 0 auto;\n      background: #ffffff;\n      border: 1.5px solid #dfe7f2;\n      border-radius: 18px;\n      overflow: hidden;\n    }\n\n    .adtech-threat-score-block svg {\n      display: block;\n      width: 100%;\n      height: auto;\n    }\n\n    .adtech-threat-score-block .ats-title {\n      font-size: 18px;\n      font-weight: 800;\n      fill: #111827;\n      letter-spacing: 0.2px;\n    }\n\n    .adtech-threat-score-block .ats-heading {\n      font-size: 15px;\n      font-weight: 800;\n      fill: #111827;\n    }\n\n    .adtech-threat-score-block .ats-small {\n      font-size: 12.5px;\n      font-weight: 500;\n      fill: #475569;\n    }\n\n    .adtech-threat-score-block .ats-arrow {\n      stroke: #8998ad;\n      stroke-width: 1.8;\n      opacity: 0.65;\n      fill: none;\n    }\n\n    .adtech-threat-score-block .ats-purple rect {\n      fill: #f3efff;\n      stroke: #9b7cf0;\n    }\n\n    .adtech-threat-score-block .ats-teal rect {\n      fill: #ecfbf8;\n      stroke: #3bb7a6;\n    }\n\n    .adtech-threat-score-block .ats-blue rect {\n      fill: #eef7ff;\n      stroke: #4c9de8;\n    }\n\n    .adtech-threat-score-block .ats-gray rect {\n      fill: #f8fafc;\n      stroke: #94a3b8;\n    }\n\n    .adtech-threat-score-block .ats-green rect {\n      fill: #edfdf3;\n      stroke: #36b36f;\n    }\n\n    .adtech-threat-score-block .ats-amber rect {\n      fill: #fff7e6;\n      stroke: #f2a93b;\n    }\n\n    .adtech-threat-score-block .ats-red rect {\n      fill: #fff1f2;\n      stroke: #e75a65;\n    }\n\n    @media (max-width: 640px) {\n      .adtech-threat-score-block .ats-figure {\n        border-radius: 14px;\n      }\n    }\n  <\/style>\n\n  <figure class=\"ats-figure\">\n    <svg viewBox=\"0 0 680 500\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-labelledby=\"ats-title ats-desc\">\n      <title id=\"ats-title\">Inputs to a threat score model<\/title>\n      <desc id=\"ats-desc\">Signal map showing three input categories \u2014 behavioral, technical, and contextual \u2014 converging into a central threat score node, which outputs three risk tiers: good, warning, and alert.<\/desc>\n\n      <defs>\n        <marker id=\"ats-arrow-marker\" viewBox=\"0 0 10 10\" refX=\"8\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\n          <path d=\"M2 1L8 5L2 9\" fill=\"none\" stroke=\"#8998ad\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n        <\/marker>\n\n        <filter id=\"ats-soft-shadow\" x=\"-20%\" y=\"-20%\" width=\"140%\" height=\"140%\">\n          <feDropShadow dx=\"0\" dy=\"4\" stdDeviation=\"7\" flood-color=\"#0f172a\" flood-opacity=\"0.07\"><\/feDropShadow>\n        <\/filter>\n      <\/defs>\n\n      <rect x=\"0\" y=\"0\" width=\"680\" height=\"500\" fill=\"#ffffff\"><\/rect>\n\n      <text class=\"ats-title\" x=\"340\" y=\"34\" text-anchor=\"middle\">\n        Inputs to a threat score model\n      <\/text>\n\n      <!-- Left inputs -->\n      <g class=\"ats-purple\" filter=\"url(#ats-soft-shadow)\">\n        <rect x=\"24\" y=\"52\" width=\"168\" height=\"120\" rx=\"10\" stroke-width=\"1.3\"><\/rect>\n        <text class=\"ats-heading\" x=\"108\" y=\"76\" text-anchor=\"middle\" dominant-baseline=\"central\">Behavioral<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"101\" text-anchor=\"middle\" dominant-baseline=\"central\">Mouse movement<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"119\" text-anchor=\"middle\" dominant-baseline=\"central\">Click timing<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"137\" text-anchor=\"middle\" dominant-baseline=\"central\">Scroll depth<\/text>\n      <\/g>\n\n      <g class=\"ats-teal\" filter=\"url(#ats-soft-shadow)\">\n        <rect x=\"24\" y=\"193\" width=\"168\" height=\"124\" rx=\"10\" stroke-width=\"1.3\"><\/rect>\n        <text class=\"ats-heading\" x=\"108\" y=\"217\" text-anchor=\"middle\" dominant-baseline=\"central\">Technical<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"242\" text-anchor=\"middle\" dominant-baseline=\"central\">IP reputation<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"260\" text-anchor=\"middle\" dominant-baseline=\"central\">Device fingerprint<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"278\" text-anchor=\"middle\" dominant-baseline=\"central\">User agent<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"296\" text-anchor=\"middle\" dominant-baseline=\"central\">Location match<\/text>\n      <\/g>\n\n      <g class=\"ats-blue\" filter=\"url(#ats-soft-shadow)\">\n        <rect x=\"24\" y=\"338\" width=\"168\" height=\"120\" rx=\"10\" stroke-width=\"1.3\"><\/rect>\n        <text class=\"ats-heading\" x=\"108\" y=\"362\" text-anchor=\"middle\" dominant-baseline=\"central\">Contextual<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"387\" text-anchor=\"middle\" dominant-baseline=\"central\">Window size<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"405\" text-anchor=\"middle\" dominant-baseline=\"central\">Ad visibility<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"423\" text-anchor=\"middle\" dominant-baseline=\"central\">Time zone<\/text>\n        <text class=\"ats-small\" x=\"108\" y=\"441\" text-anchor=\"middle\" dominant-baseline=\"central\">Domain history<\/text>\n      <\/g>\n\n      <!-- Input arrows -->\n      <path class=\"ats-arrow\" d=\"M192,112 C244,112 244,255 276,255\" marker-end=\"url(#ats-arrow-marker)\"><\/path>\n      <line class=\"ats-arrow\" x1=\"192\" y1=\"255\" x2=\"276\" y2=\"255\" marker-end=\"url(#ats-arrow-marker)\"><\/line>\n      <path class=\"ats-arrow\" d=\"M192,398 C244,398 244,255 276,255\" marker-end=\"url(#ats-arrow-marker)\"><\/path>\n\n      <!-- Threat score center -->\n      <g class=\"ats-gray\" filter=\"url(#ats-soft-shadow)\">\n        <rect x=\"276\" y=\"215\" width=\"132\" height=\"80\" rx=\"12\" stroke-width=\"1.5\"><\/rect>\n        <text class=\"ats-heading\" x=\"342\" y=\"247\" text-anchor=\"middle\" dominant-baseline=\"central\">Threat<\/text>\n        <text class=\"ats-heading\" x=\"342\" y=\"266\" text-anchor=\"middle\" dominant-baseline=\"central\">score<\/text>\n      <\/g>\n\n      <!-- Output arrows -->\n      <path class=\"ats-arrow\" d=\"M408,255 C452,255 452,136 488,136\" marker-end=\"url(#ats-arrow-marker)\"><\/path>\n      <line class=\"ats-arrow\" x1=\"408\" y1=\"255\" x2=\"488\" y2=\"255\" marker-end=\"url(#ats-arrow-marker)\"><\/line>\n      <path class=\"ats-arrow\" d=\"M408,255 C452,255 452,374 488,374\" marker-end=\"url(#ats-arrow-marker)\"><\/path>\n\n      <!-- Right outputs -->\n      <g class=\"ats-green\" filter=\"url(#ats-soft-shadow)\">\n        <rect x=\"488\" y=\"105\" width=\"168\" height=\"62\" rx=\"10\" stroke-width=\"1.3\"><\/rect>\n        <text class=\"ats-heading\" x=\"572\" y=\"127\" text-anchor=\"middle\" dominant-baseline=\"central\">Good<\/text>\n        <text class=\"ats-small\" x=\"572\" y=\"149\" text-anchor=\"middle\" dominant-baseline=\"central\">Clean traffic<\/text>\n      <\/g>\n\n      <g class=\"ats-amber\" filter=\"url(#ats-soft-shadow)\">\n        <rect x=\"488\" y=\"224\" width=\"168\" height=\"62\" rx=\"10\" stroke-width=\"1.3\"><\/rect>\n        <text class=\"ats-heading\" x=\"572\" y=\"246\" text-anchor=\"middle\" dominant-baseline=\"central\">Warning<\/text>\n        <text class=\"ats-small\" x=\"572\" y=\"268\" text-anchor=\"middle\" dominant-baseline=\"central\">Needs review<\/text>\n      <\/g>\n\n      <g class=\"ats-red\" filter=\"url(#ats-soft-shadow)\">\n        <rect x=\"488\" y=\"343\" width=\"168\" height=\"62\" rx=\"10\" stroke-width=\"1.3\"><\/rect>\n        <text class=\"ats-heading\" x=\"572\" y=\"365\" text-anchor=\"middle\" dominant-baseline=\"central\">Alert<\/text>\n        <text class=\"ats-small\" x=\"572\" y=\"387\" text-anchor=\"middle\" dominant-baseline=\"central\">Block or redirect<\/text>\n      <\/g>\n    <\/svg>\n  <\/figure>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>The weight of each signal is not fixed. For example, a VPN connection is not automatically suspicious \u2013 many real users run VPN software to access content or protect their privacy. But the same VPN signal combined with an unusual click pattern and a mismatched time zone starts to look like a problem. The combination matters more than an individual signal.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"givt-and-sivt-two-levels-of-invalid-traffic\">GIVT and SIVT: Two Levels of Invalid Traffic<\/h2>\n\n\n\n<p>The ad industry divides invalid traffic (IVT) into two categories, established by the <a href=\"https:\/\/iabtechlab.com\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">IAB Tech Lab<\/a> (Interactive Advertising Bureau Technology Laboratory), the body that sets technical standards for the programmatic advertising ecosystem.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>GIVT, or General Invalid Traffic<\/strong>, covers the most obvious cases: known data-center IP addresses, search engine crawlers, and ad monitoring tools that scan pages without representing real users. GIVT is relatively easy to detect because the sources are largely documented. Standard filtering removes most of it before it causes meaningful damage.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SIVT, or Sophisticated Invalid Traffic<\/strong>, is the harder problem. This category includes bots that mimic human behavior, malware-infected devices that serve ads to hidden windows, click farms where real people are paid to generate fake engagement, and sophisticated proxy setups designed to evade detection. SIVT does not announce itself. It&#8217;s built to look clean.<\/li>\n<\/ul>\n\n\n<div class=\"block__bord\"><div class=\"block__bord_desc\"><p>The difference matters when you&#8217;re reviewing campaign reports. An advertiser who sees only GIVT-level filtering might believe their traffic is clean, while the real losses stem from undetected SIVT. From what teams running campaigns typically see, SIVT accounts for the majority of actual ad fraud losses, precisely because it&#8217;s designed to slip past basic filters.<\/p>\n<\/div><\/div>\n<style>\n.block__bord { margin: 32px 0; padding: 1.25em 2.375em;\tborder-radius: 24px; background: rgba(0, 220, 200, 0.20); }\n.block__bord_desc {font-size: 16px !important;font-weight: 400 !important;color: #606060 !important;}\n<\/style>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-domain-and-publisher-risk-scores-work\">How Domain and Publisher Risk Scores Work<\/h2>\n\n\n\n<p>Individual impressions aren&#8217;t the only thing that gets scored. Domains and publishers build a risk profile over time based on historical behavior:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The rate of flagged traffic they&#8217;ve sent<\/li>\n\n\n\n<li>The content categories they serve<\/li>\n\n\n\n<li>Patterns of buyer complaints<\/li>\n\n\n\n<li>Whether they&#8217;ve been associated with documented fraud<\/li>\n<\/ul>\n\n\n\n<p>Domain reputation scoring cross-references a site against known threat intelligence databases, checks its registration history, looks at hosting infrastructure, and flags anomalies in DNS (Domain Name System) records. A domain that was registered recently, is hosted on infrastructure tied to previous fraud activity, and shows unusual traffic patterns will score poorly even before a single ad runs on it.<\/p>\n\n\n\n<p>This is where network-level risk assessment adds real value. A network running brand safety risk assessment across its full inventory can identify problematic publishers early, before buyers are exposed. Pre-bid filtering, which blocks a bid from going out when a domain fails a risk check, is more efficient than post-bid analysis, which catches problems after the budget has already been spent.<\/p>\n\n\n<div class=\"block__preview\">\n        <a href=\"https:\/\/adex.com\/blog\/device-fingerprinting-fraud-prevention-gdpr\/\" class=\"block__preview_img\"><img src=\"https:\/\/adex.com\/blog\/wp-content\/uploads\/2026\/06\/adex-device-fingerprinting-balance.png\" srcset=\"https:\/\/adex.com\/blog\/wp-content\/uploads\/2026\/06\/adex-device-fingerprinting-balance.png\" sizes=\"100vw\" alt=\"How to balance between device fingerprinting and user security?\" decoding=\"async\" class=\"lazy\"><\/a>\n    <div class=\"block__preview_box\">\n        <a href=\"https:\/\/adex.com\/blog\/category\/guides\/\" class=\"block__preview_box-cat\">Guides<\/a>        <h3 class=\"block__preview_box-title\" id=\"device-fingerprinting-for-fraud-prevention-navigating-gdpr-and-privacy-constraints\"><a href=\"https:\/\/adex.com\/blog\/device-fingerprinting-fraud-prevention-gdpr\/\">Device Fingerprinting for Fraud Prevention: Navigating GDPR and Privacy Constraints<\/a><\/h3>\n    <\/div>\n<\/div>\n<style>\n.block__preview {display: flex;align-items: center;justify-content: center; margin: 32px 0;}\n.block__preview a {text-decoration: none;}\n.block__preview_img {min-width: 360px;max-width: 360px;min-height: 188px;width: 100%;height: 100%;}\n.block__preview_img img {width: 100%;height: 100%;}\n.block__preview_box {margin-left: 40px;max-width: 360px;}\n.block__preview_box-cat {color: #00B8A7 !important;font-weight: 600;font-size: 12px;line-height: 16px;text-transform: uppercase; display: block; margin-bottom: 4px;}\n.block__preview_box-cat:hover {color: #FE645A !important; text-decoration: none !important;}\n.block__preview_box-title {font-size: 20px;font-weight: 700;line-height: 24px;color: #0B172D;}\n.block__preview_box-title a {color: #0B172D !important;}\n.block__preview_box-title a:hover {color: #FE645A !important;}\n@media screen and (max-width: 768px) {.block__preview {flex-direction: column;}.block__preview_box {max-width: 100%; margin-top: 32px;margin-left: 0px;}.block__preview_img {max-width: 100%;min-width: 100%;min-height: 100%;}}<\/style>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"the-brand-safety-floor-and-suitability-framework-explained\">The Brand Safety Floor and Suitability Framework Explained<\/h2>\n\n\n\n<p>Beyond traffic quality, brand safety includes content adjacency risk: the chance of an ad appearing next to content that could damage a brand&#8217;s reputation. The industry standard for categorizing this risk is the <a href=\"https:\/\/www.brandsafetyinstitute.com\/resources\/frameworks\/brand-safety-floor-suitability\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">GARM Brand Safety Floor and Suitability Framework<\/a>, developed by GARM (Global Alliance for Responsible Media) and widely adopted by advertisers, platforms, and verification vendors.<\/p>\n\n\n\n<p>The framework defines 13 content categories that carry risk for advertisers. Each category has four risk levels. The &#8220;Floor&#8221; level covers content that is never appropriate for advertising under any circumstances. Above the floor, &#8220;High Risk,&#8221; &#8220;Medium Risk,&#8221; and &#8220;Low Risk&#8221; categories let advertisers define their own tolerance.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"adtech-garm-framework-block\">\n  <style>\n    .adtech-garm-framework-block,\n    .adtech-garm-framework-block * {\n      box-sizing: border-box;\n    }\n\n    .adtech-garm-framework-block {\n      width: 100%;\n      max-width: 920px;\n      margin: 0 auto;\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Inter, Roboto, \"Helvetica Neue\", Arial, sans-serif;\n      color: #172033;\n    }\n\n    .adtech-garm-framework-block .agf-sr-only {\n      position: absolute;\n      width: 1px;\n      height: 1px;\n      padding: 0;\n      margin: -1px;\n      overflow: hidden;\n      clip: rect(0, 0, 0, 0);\n      white-space: nowrap;\n      border: 0;\n    }\n\n    .adtech-garm-framework-block .agf-wrap {\n      display: flex;\n      flex-direction: column;\n      gap: 10px;\n    }\n\n    .adtech-garm-framework-block .agf-card {\n      overflow: hidden;\n      background: #ffffff;\n      border: 1px solid #dde6f1;\n      border-radius: 14px;\n      box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);\n    }\n\n    .adtech-garm-framework-block .agf-header {\n      width: 100%;\n      display: flex;\n      align-items: center;\n      gap: 12px;\n      padding: 16px 18px;\n      border: 0;\n      cursor: pointer;\n      text-align: left;\n      font: inherit;\n      user-select: none;\n    }\n\n    .adtech-garm-framework-block .agf-icon {\n      width: 36px;\n      height: 36px;\n      border-radius: 10px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      flex-shrink: 0;\n      font-size: 18px;\n      font-weight: 800;\n      line-height: 1;\n    }\n\n    .adtech-garm-framework-block .agf-copy {\n      flex: 1;\n      min-width: 0;\n    }\n\n    .adtech-garm-framework-block .agf-title {\n      margin: 0;\n      font-size: 17px;\n      line-height: 1.25;\n      font-weight: 800;\n      letter-spacing: 0.1px;\n    }\n\n    .adtech-garm-framework-block .agf-meta {\n      margin-top: 4px;\n      font-size: 13.5px;\n      line-height: 1.35;\n      font-weight: 500;\n      color: #5d6d83;\n    }\n\n    .adtech-garm-framework-block .agf-chevron {\n      width: 22px;\n      height: 22px;\n      flex-shrink: 0;\n      color: #64748b;\n      transition: transform 0.2s ease;\n    }\n\n    .adtech-garm-framework-block .agf-header[aria-expanded=\"true\"] .agf-chevron {\n      transform: rotate(180deg);\n    }\n\n    .adtech-garm-framework-block .agf-body {\n      padding: 16px 18px 18px 66px;\n      background: #ffffff;\n    }\n\n    .adtech-garm-framework-block .agf-body[hidden] {\n      display: none;\n    }\n\n    .adtech-garm-framework-block .agf-pills {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 8px;\n      margin: 0;\n    }\n\n    .adtech-garm-framework-block .agf-pill {\n      display: inline-flex;\n      align-items: center;\n      min-height: 28px;\n      padding: 5px 12px;\n      border: 1px solid;\n      border-radius: 999px;\n      font-size: 13px;\n      line-height: 1.25;\n      font-weight: 700;\n    }\n\n    .adtech-garm-framework-block .agf-lock-note {\n      display: flex;\n      align-items: flex-start;\n      gap: 9px;\n      margin-top: 14px;\n      padding: 12px 14px;\n      border-radius: 10px;\n      background: #f8fafc;\n      color: #526176;\n      font-size: 13.5px;\n      line-height: 1.5;\n      font-weight: 500;\n    }\n\n    .adtech-garm-framework-block .agf-lock-note-icon {\n      flex-shrink: 0;\n      margin-top: 1px;\n      font-size: 15px;\n      line-height: 1;\n    }\n\n    .adtech-garm-framework-block .agf-floor .agf-header {\n      background: #fcebeb;\n    }\n\n    .adtech-garm-framework-block .agf-floor .agf-icon {\n      background: #f09595;\n      color: #791f1f;\n    }\n\n    .adtech-garm-framework-block .agf-floor .agf-title {\n      color: #791f1f;\n    }\n\n    .adtech-garm-framework-block .agf-floor .agf-pill {\n      background: #fcebeb;\n      border-color: #f09595;\n      color: #791f1f;\n    }\n\n    .adtech-garm-framework-block .agf-high .agf-header {\n      background: #faeeda;\n    }\n\n    .adtech-garm-framework-block .agf-high .agf-icon {\n      background: #fac775;\n      color: #633806;\n    }\n\n    .adtech-garm-framework-block .agf-high .agf-title {\n      color: #633806;\n    }\n\n    .adtech-garm-framework-block .agf-high .agf-pill {\n      background: #faeeda;\n      border-color: #fac775;\n      color: #633806;\n    }\n\n    .adtech-garm-framework-block .agf-medium .agf-header {\n      background: #eaf3de;\n    }\n\n    .adtech-garm-framework-block .agf-medium .agf-icon {\n      background: #c0dd97;\n      color: #27500a;\n    }\n\n    .adtech-garm-framework-block .agf-medium .agf-title {\n      color: #27500a;\n    }\n\n    .adtech-garm-framework-block .agf-medium .agf-pill {\n      background: #eaf3de;\n      border-color: #c0dd97;\n      color: #27500a;\n    }\n\n    .adtech-garm-framework-block .agf-low .agf-header {\n      background: #e1f5ee;\n    }\n\n    .adtech-garm-framework-block .agf-low .agf-icon {\n      background: #9fe1cb;\n      color: #085041;\n    }\n\n    .adtech-garm-framework-block .agf-low .agf-title {\n      color: #085041;\n    }\n\n    .adtech-garm-framework-block .agf-low .agf-pill {\n      background: #e1f5ee;\n      border-color: #9fe1cb;\n      color: #085041;\n    }\n\n    @media (max-width: 640px) {\n      .adtech-garm-framework-block .agf-header {\n        align-items: flex-start;\n        padding: 15px 15px;\n      }\n\n      .adtech-garm-framework-block .agf-icon {\n        width: 34px;\n        height: 34px;\n        font-size: 17px;\n      }\n\n      .adtech-garm-framework-block .agf-title {\n        font-size: 16px;\n      }\n\n      .adtech-garm-framework-block .agf-meta {\n        font-size: 13px;\n      }\n\n      .adtech-garm-framework-block .agf-body {\n        padding: 14px 15px 16px;\n      }\n\n      .adtech-garm-framework-block .agf-pill {\n        font-size: 12.5px;\n      }\n    }\n  <\/style>\n\n  <h2 class=\"agf-sr-only\" id=\"garm-brand-safety-floor-and-suitability-framework-four-risk-tiers-with-content-categories\">GARM Brand Safety Floor and Suitability Framework \u2014 four risk tiers with content categories<\/h2>\n\n  <div class=\"agf-wrap\">\n    <article class=\"agf-card agf-floor\">\n      <button class=\"agf-header\" type=\"button\" aria-expanded=\"true\" aria-controls=\"agf-body-floor\">\n        <span class=\"agf-icon\" aria-hidden=\"true\">\ud83d\udd12<\/span>\n        <span class=\"agf-copy\">\n          <span class=\"agf-title\">Brand Safety Floor<\/span>\n          <span class=\"agf-meta\">Non-negotiable \u2014 applies to all advertisers, all campaigns<\/span>\n        <\/span>\n        <svg class=\"agf-chevron\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <path d=\"M6 9l6 6 6-6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n        <\/svg>\n      <\/button>\n\n      <div class=\"agf-body\" id=\"agf-body-floor\">\n        <div class=\"agf-pills\">\n          <span class=\"agf-pill\">Adult &amp; explicit sexual content<\/span>\n          <span class=\"agf-pill\">Arms &amp; ammunition<\/span>\n          <span class=\"agf-pill\">Crime &amp; harmful acts<\/span>\n          <span class=\"agf-pill\">Terrorism<\/span>\n          <span class=\"agf-pill\">Online piracy<\/span>\n          <span class=\"agf-pill\">Hate speech &amp; aggression<\/span>\n        <\/div>\n\n        <div class=\"agf-lock-note\">\n          <span class=\"agf-lock-note-icon\" aria-hidden=\"true\">\ud83d\udd12<\/span>\n          <span>The Floor is hardcoded. No advertiser setting, DSP configuration, or publisher override can lift it.<\/span>\n        <\/div>\n      <\/div>\n    <\/article>\n\n    <article class=\"agf-card agf-high\">\n      <button class=\"agf-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"agf-body-high\">\n        <span class=\"agf-icon\" aria-hidden=\"true\">!<\/span>\n        <span class=\"agf-copy\">\n          <span class=\"agf-title\">High risk<\/span>\n          <span class=\"agf-meta\">Excluded by most brands by default; opt-in required<\/span>\n        <\/span>\n        <svg class=\"agf-chevron\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <path d=\"M6 9l6 6 6-6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n        <\/svg>\n      <\/button>\n\n      <div class=\"agf-body\" id=\"agf-body-high\" hidden>\n        <div class=\"agf-pills\">\n          <span class=\"agf-pill\">Death, injury, military conflict<\/span>\n          <span class=\"agf-pill\">Illegal drugs &amp; substances<\/span>\n          <span class=\"agf-pill\">Obscenity &amp; profanity<\/span>\n          <span class=\"agf-pill\">Gambling<\/span>\n        <\/div>\n      <\/div>\n    <\/article>\n\n    <article class=\"agf-card agf-medium\">\n      <button class=\"agf-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"agf-body-medium\">\n        <span class=\"agf-icon\" aria-hidden=\"true\">\u2212<\/span>\n        <span class=\"agf-copy\">\n          <span class=\"agf-title\">Medium risk<\/span>\n          <span class=\"agf-meta\">Context-dependent; brand discretion applies<\/span>\n        <\/span>\n        <svg class=\"agf-chevron\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <path d=\"M6 9l6 6 6-6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n        <\/svg>\n      <\/button>\n\n      <div class=\"agf-body\" id=\"agf-body-medium\" hidden>\n        <div class=\"agf-pills\">\n          <span class=\"agf-pill\">Debated sensitive social issues<\/span>\n          <span class=\"agf-pill\">Tobacco, e-cigarettes &amp; vaping<\/span>\n          <span class=\"agf-pill\">Spam or harmful content<\/span>\n        <\/div>\n      <\/div>\n    <\/article>\n\n    <article class=\"agf-card agf-low\">\n      <button class=\"agf-header\" type=\"button\" aria-expanded=\"false\" aria-controls=\"agf-body-low\">\n        <span class=\"agf-icon\" aria-hidden=\"true\">\u2713<\/span>\n        <span class=\"agf-copy\">\n          <span class=\"agf-title\">Low risk \/ suitable for most<\/span>\n          <span class=\"agf-meta\">Generally safe across verticals and brand profiles<\/span>\n        <\/span>\n        <svg class=\"agf-chevron\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n          <path d=\"M6 9l6 6 6-6\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n        <\/svg>\n      <\/button>\n\n      <div class=\"agf-body\" id=\"agf-body-low\" hidden>\n        <div class=\"agf-pills\">\n          <span class=\"agf-pill\">News &amp; current affairs<\/span>\n          <span class=\"agf-pill\">Alcohol<\/span>\n          <span class=\"agf-pill\">Safe for all audiences<\/span>\n        <\/div>\n      <\/div>\n    <\/article>\n  <\/div>\n\n  <script>\n    (function () {\n      const block = document.currentScript.closest(\".adtech-garm-framework-block\");\n      if (!block) return;\n\n      const headers = block.querySelectorAll(\".agf-header\");\n\n      headers.forEach(function (header) {\n        header.addEventListener(\"click\", function () {\n          const bodyId = header.getAttribute(\"aria-controls\");\n          const body = block.querySelector(\"#\" + bodyId);\n          if (!body) return;\n\n          const isOpen = header.getAttribute(\"aria-expanded\") === \"true\";\n\n          header.setAttribute(\"aria-expanded\", String(!isOpen));\n          body.hidden = isOpen;\n        });\n      });\n    })();\n  <\/script>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p>The IAB Tech Lab&#8217;s Content Taxonomy 2.2 integrates directly with this framework, providing a shared vocabulary that publishers, SSPs (Supply-Side Platforms), DSPs (Demand-Side Platforms), and verification vendors can all use when describing a content environment. Without a shared taxonomy, a &#8220;safe&#8221; label from one party can mean something different to another, which makes consistent enforcement impossible.<\/p>\n\n\n<div class=\"block__bord\"><div class=\"block__bord_desc\"><p>For advertisers buying through ad networks, this taxonomy is the foundation of any meaningful brand safety configuration. A network that maps its inventory against these categories gives buyers a consistent reference point.<\/p>\n<\/div><\/div>\n<style>\n.block__bord { margin: 32px 0; padding: 1.25em 2.375em;\tborder-radius: 24px; background: rgba(0, 220, 200, 0.20); }\n.block__bord_desc {font-size: 16px !important;font-weight: 400 !important;color: #606060 !important;}\n<\/style>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-happens-when-traffic-gets-flagged\">What Happens When Traffic Gets Flagged<\/h2>\n\n\n\n<p>A threat score doesn&#8217;t automatically delete a bid or a session. What happens to flagged traffic depends on how the network or the advertiser has configured the system.<\/p>\n\n\n\n<p>The most common outcomes are:&nbsp;<\/p>\n\n\n\n<ul style=\"background-color:#d6d6d630\" class=\"wp-block-list has-background\">\n<li>Blocking the traffic before an ad is served<\/li>\n\n\n\n<li>Redirecting suspicious sessions to a blank or neutral page instead of the advertiser&#8217;s landing page<\/li>\n\n\n\n<li>Logging the event for post-campaign analysis<\/li>\n<\/ul>\n\n\n\n<p>Networks that support real-time redirects give advertisers more control: a session scored as an alert goes somewhere other than the campaign, protecting the landing page from bot interference without discarding the impression slot.<\/p>\n\n\n\n<p>Reporting is where this becomes actionable for buyers.&nbsp;<\/p>\n\n\n\n<p>Granular reports broken down by traffic classification, signal type, and source let teams identify patterns that a single blocked impression would never reveal. A publisher sending mostly good traffic except for one sub-placement that consistently triggers hidden-ad alerts is a different problem from a publisher whose entire inventory skews toward small-window fraud. Both need attention, but different responses.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-to-customize-risk-thresholds-for-your-campaigns\">How to Customize Risk Thresholds for Your Campaigns<\/h2>\n\n\n\n<p>One of the most underused features in fraud protection platforms is threshold adjustment. Most buyers stick with default settings and only notice something is wrong when too much traffic gets blocked \u2013 or not enough.<\/p>\n\n\n\n<p>The defaults are built for an average campaign, not yours. Networks with advanced fraud protection let you change what counts as &#8220;suspicious&#8221; or &#8220;blocked.&#8221;&nbsp;<\/p>\n\n\n\n<p>For example:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Hidden ads, fake browser signals, and location fraud are blocked by default because there&#8217;s no good reason for them to appear in a normal campaign.&nbsp;<\/li>\n\n\n\n<li>iFrame traffic and VPN connections are allowed by default because they most often come from real users.&nbsp;<\/li>\n\n\n\n<li>Small window sizes \u2013 where the ad is technically served but no one can actually see it \u2013 are blocked.&nbsp;<\/li>\n\n\n\n<li>Time zone mismatches are flagged as warnings, not hard blocks, because they&#8217;re suspicious but not always fraudulent.<\/li>\n<\/ul>\n\n\n\n<p>You can adjust any of these to match how your campaign works.&nbsp;<\/p>\n\n\n\n<p>If VPN traffic is a problem for your offer, flag it. If IFrames are messing with your attribution data, block them. Just keep in mind: the more aggressively you filter, the less inventory you get. Change one setting at a time and check what happens before touching anything else.<\/p>\n\n\n\n<div class=\"adex-scoring-thresholds-block\">\n  <style>\n    .adex-scoring-thresholds-block,\n    .adex-scoring-thresholds-block * {\n      box-sizing: border-box;\n    }\n\n    .adex-scoring-thresholds-block {\n      width: 100%;\n      max-width: 920px;\n      margin: 0 auto;\n      font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Inter, Roboto, \"Helvetica Neue\", Arial, sans-serif;\n      color: #172033;\n    }\n\n    .adex-scoring-thresholds-block .ast-sr-only {\n      position: absolute;\n      width: 1px;\n      height: 1px;\n      padding: 0;\n      margin: -1px;\n      overflow: hidden;\n      clip: rect(0, 0, 0, 0);\n      white-space: nowrap;\n      border: 0;\n    }\n\n    .adex-scoring-thresholds-block .ast-source-chip {\n      display: inline-flex;\n      align-items: center;\n      gap: 7px;\n      margin-bottom: 18px;\n      padding: 5px 12px;\n      border: 1px solid #dce5f1;\n      border-radius: 10px;\n      background: #ffffff;\n      color: #526176;\n      font-size: 13px;\n      line-height: 1.25;\n      font-weight: 700;\n    }\n\n    .adex-scoring-thresholds-block .ast-source-icon {\n      width: 15px;\n      height: 15px;\n      color: #2f8db8;\n      flex-shrink: 0;\n    }\n\n    .adex-scoring-thresholds-block .ast-table-wrap {\n      width: 100%;\n      overflow: hidden;\n      background: #ffffff;\n      border: 1px solid #dce5f1;\n      border-radius: 16px;\n      box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);\n    }\n\n    .adex-scoring-thresholds-block .ast-table {\n      width: 100%;\n      border-collapse: collapse;\n      table-layout: fixed;\n      font-size: 14px;\n    }\n\n    .adex-scoring-thresholds-block .ast-table col.ast-c1 {\n      width: 28%;\n    }\n\n    .adex-scoring-thresholds-block .ast-table col.ast-c2 {\n      width: 18%;\n    }\n\n    .adex-scoring-thresholds-block .ast-table col.ast-c3 {\n      width: 54%;\n    }\n\n    .adex-scoring-thresholds-block .ast-table th {\n      padding: 12px 16px;\n      border-bottom: 1px solid #dce5f1;\n      background: #f8fafc;\n      color: #64748b;\n      text-align: left;\n      font-size: 12px;\n      line-height: 1.3;\n      font-weight: 800;\n      text-transform: uppercase;\n      letter-spacing: 0.06em;\n    }\n\n    .adex-scoring-thresholds-block .ast-table td {\n      padding: 15px 16px;\n      border-bottom: 1px solid #e6edf6;\n      color: #172033;\n      vertical-align: top;\n      font-size: 14px;\n      line-height: 1.5;\n      font-weight: 500;\n    }\n\n    .adex-scoring-thresholds-block .ast-table tr:last-child td {\n      border-bottom: none;\n    }\n\n    .adex-scoring-thresholds-block .ast-signal {\n      font-weight: 800;\n      color: #172033;\n    }\n\n    .adex-scoring-thresholds-block .ast-note {\n      color: #5d6d83;\n    }\n\n    .adex-scoring-thresholds-block .ast-badge {\n      display: inline-flex;\n      align-items: center;\n      gap: 6px;\n      padding: 5px 11px;\n      border-radius: 999px;\n      font-size: 12.5px;\n      line-height: 1.2;\n      font-weight: 800;\n      white-space: nowrap;\n    }\n\n    .adex-scoring-thresholds-block .ast-dot {\n      width: 7px;\n      height: 7px;\n      border-radius: 50%;\n      flex-shrink: 0;\n    }\n\n    .adex-scoring-thresholds-block .ast-badge-alert {\n      background: #fcebeb;\n      color: #791f1f;\n    }\n\n    .adex-scoring-thresholds-block .ast-badge-warning {\n      background: #faeeda;\n      color: #633806;\n    }\n\n    .adex-scoring-thresholds-block .ast-badge-good {\n      background: #eaf3de;\n      color: #27500a;\n    }\n\n    .adex-scoring-thresholds-block .ast-dot-alert {\n      background: #e24b4a;\n    }\n\n    .adex-scoring-thresholds-block .ast-dot-warning {\n      background: #ef9f27;\n    }\n\n    .adex-scoring-thresholds-block .ast-dot-good {\n      background: #639922;\n    }\n\n    @media (max-width: 720px) {\n      .adex-scoring-thresholds-block .ast-table,\n      .adex-scoring-thresholds-block .ast-table thead,\n      .adex-scoring-thresholds-block .ast-table tbody,\n      .adex-scoring-thresholds-block .ast-table tr,\n      .adex-scoring-thresholds-block .ast-table th,\n      .adex-scoring-thresholds-block .ast-table td {\n        display: block;\n        width: 100%;\n      }\n\n      .adex-scoring-thresholds-block .ast-table thead {\n        display: none;\n      }\n\n      .adex-scoring-thresholds-block .ast-table tr {\n        padding: 15px 16px;\n        border-bottom: 1px solid #e6edf6;\n      }\n\n      .adex-scoring-thresholds-block .ast-table tr:last-child {\n        border-bottom: none;\n      }\n\n      .adex-scoring-thresholds-block .ast-table td {\n        padding: 0;\n        border-bottom: none;\n      }\n\n      .adex-scoring-thresholds-block .ast-table td + td {\n        margin-top: 10px;\n      }\n\n      .adex-scoring-thresholds-block .ast-table td::before {\n        display: block;\n        margin-bottom: 4px;\n        color: #64748b;\n        font-size: 11px;\n        line-height: 1.2;\n        font-weight: 800;\n        text-transform: uppercase;\n        letter-spacing: 0.06em;\n      }\n\n      .adex-scoring-thresholds-block .ast-table td:nth-child(1)::before {\n        content: \"Signal type\";\n      }\n\n      .adex-scoring-thresholds-block .ast-table td:nth-child(2)::before {\n        content: \"Default\";\n      }\n\n      .adex-scoring-thresholds-block .ast-table td:nth-child(3)::before {\n        content: \"When you might change it\";\n      }\n    }\n  <\/style>\n\n  <h2 class=\"ast-sr-only\" id=\"adex-default-scoring-thresholds-signal-types-with-their-default-risk-levels-and-when-to-adjust-them\">Adex default scoring thresholds \u2014 signal types with their default risk levels and when to adjust them<\/h2>\n\n  <div class=\"ast-source-chip\" aria-label=\"Source: Adex\">\n    <svg class=\"ast-source-icon\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n      <path d=\"M12 3L5 6v5.8c0 4.5 2.8 8.5 7 9.9 4.2-1.4 7-5.4 7-9.9V6l-7-3z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linejoin=\"round\"><\/path>\n      <path d=\"M9 12l2 2 4-5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><\/path>\n    <\/svg>\n    <span>Adex<\/span>\n  <\/div>\n\n  <div class=\"ast-table-wrap\">\n    <table class=\"ast-table\">\n      <colgroup>\n        <col class=\"ast-c1\">\n        <col class=\"ast-c2\">\n        <col class=\"ast-c3\">\n      <\/colgroup>\n\n      <thead>\n        <tr>\n          <th>Signal type<\/th>\n          <th>Default<\/th>\n          <th>When you might change it<\/th>\n        <\/tr>\n      <\/thead>\n\n      <tbody>\n        <tr>\n          <td><span class=\"ast-signal\">Hidden ads<\/span><\/td>\n          <td>\n            <span class=\"ast-badge ast-badge-alert\">\n              <span class=\"ast-dot ast-dot-alert\"><\/span>\n              Alert\n            <\/span>\n          <\/td>\n          <td><span class=\"ast-note\">Rarely \u2014 hidden placement is a near-universal fraud indicator<\/span><\/td>\n        <\/tr>\n\n        <tr>\n          <td><span class=\"ast-signal\">Fake browser<\/span><\/td>\n          <td>\n            <span class=\"ast-badge ast-badge-alert\">\n              <span class=\"ast-dot ast-dot-alert\"><\/span>\n              Alert\n            <\/span>\n          <\/td>\n          <td><span class=\"ast-note\">Leave as Alert unless your use case involves headless browser testing<\/span><\/td>\n        <\/tr>\n\n        <tr>\n          <td><span class=\"ast-signal\">Location fraud<\/span><\/td>\n          <td>\n            <span class=\"ast-badge ast-badge-alert\">\n              <span class=\"ast-dot ast-dot-alert\"><\/span>\n              Alert\n            <\/span>\n          <\/td>\n          <td><span class=\"ast-note\">Lower only if geo-accuracy is not a campaign requirement<\/span><\/td>\n        <\/tr>\n\n        <tr>\n          <td><span class=\"ast-signal\">Small window<\/span><\/td>\n          <td>\n            <span class=\"ast-badge ast-badge-alert\">\n              <span class=\"ast-dot ast-dot-alert\"><\/span>\n              Alert\n            <\/span>\n          <\/td>\n          <td><span class=\"ast-note\">Can soften for push notification formats where small windows are expected<\/span><\/td>\n        <\/tr>\n\n        <tr>\n          <td><span class=\"ast-signal\">Time zone mismatch<\/span><\/td>\n          <td>\n            <span class=\"ast-badge ast-badge-warning\">\n              <span class=\"ast-dot ast-dot-warning\"><\/span>\n              Warning\n            <\/span>\n          <\/td>\n          <td><span class=\"ast-note\">Raise to Alert for geo-sensitive campaigns; ignore for global runs where device\/browser time zone drift is common<\/span><\/td>\n        <\/tr>\n\n        <tr>\n          <td><span class=\"ast-signal\">IFrame<\/span><\/td>\n          <td>\n            <span class=\"ast-badge ast-badge-good\">\n              <span class=\"ast-dot ast-dot-good\"><\/span>\n              Good\n            <\/span>\n          <\/td>\n          <td><span class=\"ast-note\">Raise to Warning if your brand safety policy restricts nested display placements<\/span><\/td>\n        <\/tr>\n\n        <tr>\n          <td><span class=\"ast-signal\">Proxy \/ VPN<\/span><\/td>\n          <td>\n            <span class=\"ast-badge ast-badge-good\">\n              <span class=\"ast-dot ast-dot-good\"><\/span>\n              Good\n            <\/span>\n          <\/td>\n          <td><span class=\"ast-note\">Raise to Warning or Alert if your offer is geo-locked and VPN traffic distorts your conversion data<\/span><\/td>\n        <\/tr>\n      <\/tbody>\n    <\/table>\n  <\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"the-real-limits-of-threat-scoring\">The Real Limits of Threat Scoring<\/h2>\n\n\n\n<p>No scoring model is complete, and saying so clearly is more useful than leaving it implied.<\/p>\n\n\n\n<p>SIVT remains genuinely hard to catch when it&#8217;s well-built. Fraud operations that use real devices infected with malware, introduce human-like behavioral variation, and rotate IP addresses regularly can produce traffic that passes most standard checks. Detection vendors across the industry report residual fraud rates even after filtering. The exact rate depends on the campaign type and traffic category, but zero is not a realistic target at any scale.<\/p>\n\n\n\n<p>False positives are the other side of the same problem. An overly aggressive scoring model blocks real users along with bots. A user browsing through a corporate proxy, a traveler running VPN software, or a real mobile user with an unusual device configuration can all produce signals that look suspicious. From a buying-side perspective, the cost of false positives is often invisible in reports but very real in campaign performance.<\/p>\n\n\n<div class=\"block__bord\"><div class=\"block__bord_desc\"><p>Threat scoring is most useful when it&#8217;s treated as one layer in a wider approach, not as a complete solution on its own. Combining pre-bid domain filtering, real-time behavioral scoring, post-bid traffic analysis, and regular publisher review gives you overlapping coverage that makes residual fraud much harder to sustain over time.<\/p>\n<\/div><\/div>\n<style>\n.block__bord { margin: 32px 0; padding: 1.25em 2.375em;\tborder-radius: 24px; background: rgba(0, 220, 200, 0.20); }\n.block__bord_desc {font-size: 16px !important;font-weight: 400 !important;color: #606060 !important;}\n<\/style>\n\n\n<div class=\"block__preview\">\n        <a href=\"https:\/\/adex.com\/blog\/ad-injection-attacks-architecture-prevention\/\" class=\"block__preview_img\"><img src=\"https:\/\/adex.com\/blog\/wp-content\/uploads\/2026\/05\/Adex-Ad-Injection-Attacks-Flow.png\" srcset=\"https:\/\/adex.com\/blog\/wp-content\/uploads\/2026\/05\/Adex-Ad-Injection-Attacks-Flow.png\" sizes=\"100vw\" alt=\"Adex - visual showing how ad injection attacks reach the impression through client-side browser manipulation.\" decoding=\"async\" class=\"lazy\"><\/a>\n    <div class=\"block__preview_box\">\n        <a href=\"https:\/\/adex.com\/blog\/category\/guides\/\" class=\"block__preview_box-cat\">Guides<\/a>        <h3 class=\"block__preview_box-title\" id=\"ad-injection-attacks-how-they-work-how-to-detect-them-and-how-to-defend-against-them\"><a href=\"https:\/\/adex.com\/blog\/ad-injection-attacks-architecture-prevention\/\">Ad Injection Attacks: How They Work, How to Detect Them, and How to Defend Against Them<\/a><\/h3>\n    <\/div>\n<\/div>\n<style>\n.block__preview {display: flex;align-items: center;justify-content: center; margin: 32px 0;}\n.block__preview a {text-decoration: none;}\n.block__preview_img {min-width: 360px;max-width: 360px;min-height: 188px;width: 100%;height: 100%;}\n.block__preview_img img {width: 100%;height: 100%;}\n.block__preview_box {margin-left: 40px;max-width: 360px;}\n.block__preview_box-cat {color: #00B8A7 !important;font-weight: 600;font-size: 12px;line-height: 16px;text-transform: uppercase; display: block; margin-bottom: 4px;}\n.block__preview_box-cat:hover {color: #FE645A !important; text-decoration: none !important;}\n.block__preview_box-title {font-size: 20px;font-weight: 700;line-height: 24px;color: #0B172D;}\n.block__preview_box-title a {color: #0B172D !important;}\n.block__preview_box-title a:hover {color: #FE645A !important;}\n@media screen and (max-width: 768px) {.block__preview {flex-direction: column;}.block__preview_box {max-width: 100%; margin-top: 32px;margin-left: 0px;}.block__preview_img {max-width: 100%;min-width: 100%;min-height: 100%;}}<\/style>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"faq\">FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-is-a-threat-score-in-digital-advertising\">What is a threat score in digital advertising?<\/h3>\n\n\n\n<p>A threat score is a number assigned to traffic, a user session, a domain, or an ad placement based on how likely it is to represent fraud or a brand safety risk. The score combines behavioral patterns, technical signals, and contextual factors like ad visibility and geographic consistency.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-is-the-difference-between-givt-and-sivt\">What is the difference between GIVT and SIVT?<\/h3>\n\n\n\n<p>GIVT (General Invalid Traffic) covers known non-human sources like data center IP addresses and web crawlers. These are relatively easy to filter because they&#8217;re documented. SIVT (Sophisticated Invalid Traffic) covers more advanced fraud: bots that mimic human behavior, malware-driven impressions, and click farms. SIVT requires more sophisticated detection and is responsible for most actual fraud losses.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"why-is-the-same-signal-sometimes-flagged-as-fraud-and-sometimes-not\">Why is the same signal sometimes flagged as fraud and sometimes not?<\/h3>\n\n\n\n<p>Because risk depends on context. A VPN connection is normal for a privacy-conscious user but unusual for a campaign targeting a specific city. A time zone mismatch is a minor warning for a global campaign and a stronger red flag for a geo-targeted one. Good scoring systems weigh signals based on campaign context, not just raw signal presence.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-is-the-garm-brand-safety-floor\">What is the GARM Brand Safety Floor?<\/h3>\n\n\n\n<p>GARM stands for Global Alliance for Responsible Media. The Brand Safety Floor is the baseline set of 13 content categories considered unsafe for advertising under any circumstances, regardless of advertiser preferences. It&#8217;s the foundation of the brand safety framework that most major platforms and verification vendors reference.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"can-threat-scoring-catch-all-ad-fraud\">Can threat scoring catch all ad fraud?<\/h3>\n\n\n\n<p>No. Sophisticated fraud operations are specifically built to evade detection. Residual fraud rates persist even after filtering, and detection quality varies by model and by how frequently it&#8217;s updated to track new techniques. Threat scoring is an essential layer, but it works best as part of a broader approach that also includes publisher review and ongoing campaign reporting.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wrapping-up\">Wrapping Up<\/h2>\n\n\n\n<p>Threat scoring has become a standard part of how ad networks protect campaigns from invalid traffic and unsafe placements. But standard doesn&#8217;t mean automatic. The models have defaults designed for a typical risk profile. Your campaign is not typical.<\/p>\n\n\n\n<p>The biggest question is whether you&#8217;ve configured it to match your actual situation: your regions, your format, your attribution model, and how much false-positive risk you can accept. A platform that gives you control over those settings is a tool you can work with. One that doesn&#8217;t gives you a number you can read but not act on.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Can one weird traffic signal tell the whole story? Not really. This guide shows how threat scoring combines behavior, device signals, and context to separate clean traffic from real risk.<\/p>\n","protected":false},"author":8,"featured_media":5734,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[18,16],"class_list":["post-5729","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guides","tag-fraud","tag-threat"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Threat Scoring in Ad Networks: Brand Safety Guide<\/title>\n<meta name=\"description\" content=\"Learn how threat scoring helps ad networks assess traffic risk, spot fraud signals, protect brand safety, and adjust campaign thresholds.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Threat Scoring in Ad Networks: Brand Safety Guide\" \/>\n<meta property=\"og:description\" content=\"Learn how threat scoring helps ad networks assess traffic risk, spot fraud signals, protect brand safety, and adjust campaign thresholds.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/\" \/>\n<meta property=\"og:site_name\" content=\"ADEX\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/adexsaas\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-11T10:23:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-11T10:23:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/adex.com\/blog\/wp-content\/uploads\/2026\/06\/Adex-Threat-Scoring-Ad-Networks.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Olya Mikheeva\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@adexsaas\" \/>\n<meta name=\"twitter:site\" content=\"@adexsaas\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olya Mikheeva\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/\"},\"author\":{\"name\":\"Olya Mikheeva\",\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/#\\\/schema\\\/person\\\/c5794aef7aa28987e7019a804390ee3a\"},\"headline\":\"How Threat Scoring Works in Ad Networks: A Brand Safety Risk Assessment Guide\",\"datePublished\":\"2026-06-11T10:23:10+00:00\",\"dateModified\":\"2026-06-11T10:23:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/\"},\"wordCount\":2334,\"publisher\":{\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/adex.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Adex-Threat-Scoring-Ad-Networks.png\",\"keywords\":[\"Fraud\",\"Threat\"],\"articleSection\":[\"Guides\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/\",\"url\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/\",\"name\":\"Threat Scoring in Ad Networks: Brand Safety Guide\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/adex.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Adex-Threat-Scoring-Ad-Networks.png\",\"datePublished\":\"2026-06-11T10:23:10+00:00\",\"dateModified\":\"2026-06-11T10:23:11+00:00\",\"description\":\"Learn how threat scoring helps ad networks assess traffic risk, spot fraud signals, protect brand safety, and adjust campaign thresholds.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/#primaryimage\",\"url\":\"https:\\\/\\\/adex.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Adex-Threat-Scoring-Ad-Networks.png\",\"contentUrl\":\"https:\\\/\\\/adex.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/Adex-Threat-Scoring-Ad-Networks.png\",\"width\":1200,\"height\":628,\"caption\":\"Adex - guide explaining threat scoring in ad networks, including fraud signals, brand safety risk levels, GIVT, SIVT, and traffic quality checks.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/threat-scoring-ad-networks-brand-safety\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/adex.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Threat Scoring Works in Ad Networks: A Brand Safety Risk Assessment Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/adex.com\\\/blog\\\/\",\"name\":\"ADEX - Ad Fraud & Invalid Traffic Prevention Platform\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/#organization\"},\"alternateName\":\"ADEX\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/adex.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/#organization\",\"name\":\"ADEX - Ad Fraud & Invalid Traffic Prevention Platform\",\"url\":\"https:\\\/\\\/adex.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/adex.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/CDD2258_copy-48-1.svg\",\"contentUrl\":\"https:\\\/\\\/adex.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/05\\\/CDD2258_copy-48-1.svg\",\"width\":148,\"height\":30,\"caption\":\"ADEX - Ad Fraud & Invalid Traffic Prevention Platform\"},\"image\":{\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/adexsaas\\\/\",\"https:\\\/\\\/x.com\\\/adexsaas\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/adex.com\\\/blog\\\/#\\\/schema\\\/person\\\/c5794aef7aa28987e7019a804390ee3a\",\"name\":\"Olya Mikheeva\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7e1ca40f4b08b576bd7c51e8946605febbcaa99bf482f69ead517b1cd512de42?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7e1ca40f4b08b576bd7c51e8946605febbcaa99bf482f69ead517b1cd512de42?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/7e1ca40f4b08b576bd7c51e8946605febbcaa99bf482f69ead517b1cd512de42?s=96&d=mm&r=g\",\"caption\":\"Olya Mikheeva\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Threat Scoring in Ad Networks: Brand Safety Guide","description":"Learn how threat scoring helps ad networks assess traffic risk, spot fraud signals, protect brand safety, and adjust campaign thresholds.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/","og_locale":"en_US","og_type":"article","og_title":"Threat Scoring in Ad Networks: Brand Safety Guide","og_description":"Learn how threat scoring helps ad networks assess traffic risk, spot fraud signals, protect brand safety, and adjust campaign thresholds.","og_url":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/","og_site_name":"ADEX","article_publisher":"https:\/\/www.facebook.com\/adexsaas\/","article_published_time":"2026-06-11T10:23:10+00:00","article_modified_time":"2026-06-11T10:23:11+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/adex.com\/blog\/wp-content\/uploads\/2026\/06\/Adex-Threat-Scoring-Ad-Networks.png","type":"image\/png"}],"author":"Olya Mikheeva","twitter_card":"summary_large_image","twitter_creator":"@adexsaas","twitter_site":"@adexsaas","twitter_misc":{"Written by":"Olya Mikheeva","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/#article","isPartOf":{"@id":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/"},"author":{"name":"Olya Mikheeva","@id":"https:\/\/adex.com\/blog\/#\/schema\/person\/c5794aef7aa28987e7019a804390ee3a"},"headline":"How Threat Scoring Works in Ad Networks: A Brand Safety Risk Assessment Guide","datePublished":"2026-06-11T10:23:10+00:00","dateModified":"2026-06-11T10:23:11+00:00","mainEntityOfPage":{"@id":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/"},"wordCount":2334,"publisher":{"@id":"https:\/\/adex.com\/blog\/#organization"},"image":{"@id":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/#primaryimage"},"thumbnailUrl":"https:\/\/adex.com\/blog\/wp-content\/uploads\/2026\/06\/Adex-Threat-Scoring-Ad-Networks.png","keywords":["Fraud","Threat"],"articleSection":["Guides"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/","url":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/","name":"Threat Scoring in Ad Networks: Brand Safety Guide","isPartOf":{"@id":"https:\/\/adex.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/#primaryimage"},"image":{"@id":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/#primaryimage"},"thumbnailUrl":"https:\/\/adex.com\/blog\/wp-content\/uploads\/2026\/06\/Adex-Threat-Scoring-Ad-Networks.png","datePublished":"2026-06-11T10:23:10+00:00","dateModified":"2026-06-11T10:23:11+00:00","description":"Learn how threat scoring helps ad networks assess traffic risk, spot fraud signals, protect brand safety, and adjust campaign thresholds.","breadcrumb":{"@id":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/#primaryimage","url":"https:\/\/adex.com\/blog\/wp-content\/uploads\/2026\/06\/Adex-Threat-Scoring-Ad-Networks.png","contentUrl":"https:\/\/adex.com\/blog\/wp-content\/uploads\/2026\/06\/Adex-Threat-Scoring-Ad-Networks.png","width":1200,"height":628,"caption":"Adex - guide explaining threat scoring in ad networks, including fraud signals, brand safety risk levels, GIVT, SIVT, and traffic quality checks."},{"@type":"BreadcrumbList","@id":"https:\/\/adex.com\/blog\/threat-scoring-ad-networks-brand-safety\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/adex.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How Threat Scoring Works in Ad Networks: A Brand Safety Risk Assessment Guide"}]},{"@type":"WebSite","@id":"https:\/\/adex.com\/blog\/#website","url":"https:\/\/adex.com\/blog\/","name":"ADEX - Ad Fraud & Invalid Traffic Prevention Platform","description":"","publisher":{"@id":"https:\/\/adex.com\/blog\/#organization"},"alternateName":"ADEX","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/adex.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/adex.com\/blog\/#organization","name":"ADEX - Ad Fraud & Invalid Traffic Prevention Platform","url":"https:\/\/adex.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/adex.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/adex.com\/blog\/wp-content\/uploads\/2022\/05\/CDD2258_copy-48-1.svg","contentUrl":"https:\/\/adex.com\/blog\/wp-content\/uploads\/2022\/05\/CDD2258_copy-48-1.svg","width":148,"height":30,"caption":"ADEX - Ad Fraud & Invalid Traffic Prevention Platform"},"image":{"@id":"https:\/\/adex.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/adexsaas\/","https:\/\/x.com\/adexsaas"]},{"@type":"Person","@id":"https:\/\/adex.com\/blog\/#\/schema\/person\/c5794aef7aa28987e7019a804390ee3a","name":"Olya Mikheeva","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/7e1ca40f4b08b576bd7c51e8946605febbcaa99bf482f69ead517b1cd512de42?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7e1ca40f4b08b576bd7c51e8946605febbcaa99bf482f69ead517b1cd512de42?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7e1ca40f4b08b576bd7c51e8946605febbcaa99bf482f69ead517b1cd512de42?s=96&d=mm&r=g","caption":"Olya Mikheeva"}}]}},"_links":{"self":[{"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/posts\/5729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/comments?post=5729"}],"version-history":[{"count":9,"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/posts\/5729\/revisions"}],"predecessor-version":[{"id":5739,"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/posts\/5729\/revisions\/5739"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/media\/5734"}],"wp:attachment":[{"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/media?parent=5729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/categories?post=5729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adex.com\/blog\/wp-json\/wp\/v2\/tags?post=5729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}