External Brand Safety

πŸ“˜

This topic provides more context for the external_brand_safety field.
The object schemas for this field are described in the topics that follow.

Overview

To ensure that your creatives appear alongside content that is right for your brand, you can apply external brand safety to your campaign. External brand safety is powered by 3rd party vendors e.g. IAS (Integral Ad Science).

Examples

In the examples below, account_id = "demo-advertiser" and campaign_id = "1234".

Sample Campaign Object (without external brand safety):

GET /backstage/api/1.0/demo-advertiser/campaigns/1234
{
   "id": 1234,
   // ...
   "external_brand_safety": {
      "type": "NONE",
      "values": []
   }
  // ...
}

Apply external brand safety (with 2 restrictions):

POST /backstage/api/1.0/demo-advertiser/campaigns/1234
{
   "external_brand_safety": {
      "type": "IAS",
      "values": [
         {
            "category_name": "Violence",
            "risk_level": "MEDIUM"
         },
         {
            "category_name": "Adult Content",
            "risk_level": "HIGH"
         }
      ]
   }
}
{
   "id": 1234,
   // ...
   "external_brand_safety": {
      "type": "IAS",
      "values": [
         {
            "category_name": "Violence",
            "risk_level": "MEDIUM"
         },
         {
            "category_name": "Adult Content",
            "risk_level": "HIGH"
         }
      ]
   }
  // ...
}

Remove 1 of the existing restrictions (from the previous example):

POST /backstage/api/1.0/demo-advertiser/campaigns/1234
{
   "external_brand_safety": {
      "type": "IAS",
      "values": [
         {
            "category_name": "Adult Content",
            "risk_level": "HIGH"
         }
      ]
   }
}
{
   "id": 1234,
   // ...
   "external_brand_safety": {
      "type": "IAS",
      "values": [
         {
            "category_name": "Adult Content",
            "risk_level": "HIGH"
         }
      ]
   }
  // ...
}

πŸ“˜

Patch operations are not supported. To update the collection, submit a new collection and overwrite the old one.

Remove all restrictions:

POST /backstage/api/1.0/demo-advertiser/campaigns/1234
{
   "external_brand_safety": {
      "type": "NONE",
      "values": null
   }
}
{
   "id": 1234,
   // ...
   "external_brand_safety": {
      "type": "NONE",
      "values": []
   }
  // ...
}

Dictionary (Possible Values):

Get brand safety providers (aka types):

GET /backstage/api/1.0/resources/campaigns_properties/external-brand-safety/
{
   "results": [
        {
            "name": "NONE",
            "value": "None"
        },
        {
            "name": "IAS",
            "value": "Ias"
        },
        {
            "name": "DV",
            "value": "Dv"
        }
   ]
   // Additional detail omitted...
}

Get restriction categories for IAS:

GET /backstage/api/1.0/resources/campaigns_properties/external-brand-safety/IAS/category-name
{
   "results": [
      {
         "name": "Violence",
         "value": "Violence"
      },
      {
         "name": "Hate_Speech_Content",
         "value": "Hate Speech Content"
      },
      {
         "name": "Offensive_Language_Content",
         "value": "Offensive Language Content"
      },
      {
         "name": "Adult_Content",
         "value": "Adult Content"
      },
      {
         "name": "Alcohol_Content",
         "value": "Alcohol Content"
      },
      {
         "name": "Illegal_Download_Content",
         "value": "Illegal Download Content"
      },
      {
         "name": "Drug_Content",
         "value": "Drug Content"
      }
   ]
   // Additional detail omitted...
}

Get restriction categories for DV:

GET /backstage/api/1.0/resources/campaigns_properties/external-brand-safety/DV/category-name
{
  "results": [
    {
      "name": "Apps_with_Unrated_/_Unknown_Age_Rating_(avoidance_targeting)",
      "value": "Apps with Unrated / Unknown Age Rating (avoidance targeting)"
    },
    {
      "name": "Gambling",
      "value": "Gambling"
    },
    {
      "name": "Unmoderated_UGC:_Forums,_Images_&_Video",
      "value": "Unmoderated UGC: Forums, Images & Video"
    },
    {
      "name": "Human-made_Disasters",
      "value": "Human-made Disasters"
    },
    {
      "name": "Aggregated:_All_Moderate_Content",
      "value": "Aggregated: All Moderate Content"
    },
    {
      "name": "Aggregated:_All_Severe_Content",
      "value": "Aggregated: All Severe Content"
    },
    {
      "name": "Adult_&_Sexual",
      "value": "Adult & Sexual"
    }
    // Additional rows not shown...
  ]
  // Additional detail not shown...
}

Get risk levels for IAS:

GET /backstage/api/1.0/resources/campaigns_properties/external-brand-safety/IAS/risk-level
{
    "results": [
        {
            "name": "HIGH",
            "value": "HIGH"
        },
        {
            "name": "MEDIUM",
            "value": "MEDIUM"
        }
    ],
    // Additional detail not shown...
    }
}

Get risk levels for DV:

GET /backstage/api/1.0/resources/campaigns_properties/external-brand-safety/DV/risk-level
{
    "results": [
        {
            "name": "HIGH",
            "value": "HIGH"
        },
        {
            "name": "MEDIUM",
            "value": "MEDIUM"
        },
        {
            "name": "LOW",
            "value": "LOW"
        }
    ],
    // Additional detail not shown...
    }
}

πŸ“˜

For an overview of the Dictionary, see: Dictionary.