Skip to main content

create_content_standards

Create a new content standards configuration. Response time: < 1s

Request

Schema: create-content-standards-request.json
ParameterTypeRequiredDescription
scopeobjectYesWhere this standards configuration applies (must include languages_any)
policystringYesNatural language policy prompt
calibration_exemplarsobjectNoTraining set of pass/fail artifacts for calibration
Brand Safety Floor RequirementImplementors MUST apply a brand safety floor regardless of what policy is defined in content standards. Content that violates the floor (hate speech, illegal content, etc.) must be excluded even when no content standards are specified. AdCP does not define the floor specification; this is left to implementors and industry standards (e.g., GARM categories).

Example Request

{
  "$schema": "/schemas/content-standards/create-content-standards-request.json",
  "scope": {
    "countries_all": ["GB", "DE", "FR"],
    "channels_any": ["display", "olv", "ctv"],
    "languages_any": ["en", "de", "fr"],
    "description": "EMEA - all digital channels"
  },
  "policy": "Sports and fitness content is ideal. Lifestyle content about health and wellness is good. Entertainment content is generally acceptable. Avoid content about violence, controversial political topics, adult themes, or content that portrays sedentary lifestyle positively.",
  "calibration_exemplars": {
    "pass": [
      { "type": "url", "value": "https://espn.com/nba/story/_/id/12345/lakers-championship", "language": "en" },
      { "type": "url", "value": "https://healthline.com/fitness/cardio-workout", "language": "en" }
    ],
    "fail": [
      { "type": "url", "value": "https://tabloid.example.com/celebrity-scandal", "language": "en" },
      { "type": "url", "value": "https://news.example.com/controversial-politics-article", "language": "en" }
    ]
  }
}

Response

Schema: create-content-standards-response.json

Success Response

{
  "$schema": "/schemas/content-standards/create-content-standards-response.json",
  "standards_id": "emea_digital_safety"
}

Error Responses

Scope Conflict:
{
  "errors": [
    {
      "code": "SCOPE_CONFLICT",
      "message": "Standards already exist for country 'DE' on channel 'display'",
      "conflicting_standards_id": "emea_digital_safety"
    }
  ]
}

Scope Conflict Handling

Multiple standards cannot have overlapping scopes for the same country/channel/language combination. When creating standards that would conflict:
  1. Check existing standards - Use list_content_standards filtered by your scope
  2. Update rather than create - If standards already exist, use update_content_standards
  3. Narrow the scope - Adjust countries or channels to avoid overlap