Skip to content

Extension: ramp-comp-v1

Maps IAB Tech Lab CoMP (Content Monetization Protocols, V1) fields into RAMP ext conventions. This extension profile enables publishers and ad-tech participants to carry CoMP metadata alongside RAMP transactions without requiring the core protocol to depend on CoMP.

Source of truth (immutable pin): CoMP V1 specification — IAB Tech Lab, finalized 2026-04-28; spec-file blob aa8c796be7a9bcfa1189a1cf6c1ec50aa67a0f5f. The ramp-comp-v1 profile mirrors exactly this revision. (The 1.0-202604 release tag does not carry the spec; main does.)

Exchanges that declare supported_profiles: ["ramp-comp-v1"] include these ext fields in Offers and expect them in UsageReports.

CoMP V1 has no separate License object — all commercial and licensing terms live on Scope. The keys below mirror the canonical CoMP V1 surface that comp.proto models 1:1. Enum-valued fields use CoMP’s integer List codes, shown with their labels; the proto enum each maps to is named in the CoMP field column.

KeyTypeRequiredCoMP fieldDescription
comp.package_idstringYesPackage.idUnique package identifier
comp.titlestringNoPackage.titlePackage title (if different from Offer.title)
comp.sellerstringNoPackage.sellerCanonical domain of the content owner
comp.packagerstringNoPackage.packagerDomain of the packager (if different from seller)
comp.license_urlstringNoPackage.licenseurlURL where the AI system finds the license(s) required to access content
comp.citation_requiredintegerNoPackage.citationWhether citation of the content owner is required (0=no, 1=yes)
comp.report_urlstringNoPackage.reporturlURL the AI system sends usage reporting to
KeyTypeRequiredCoMP fieldDescription
comp.retrieval_endpointstringNoRetrieval.endpointEntry point / feed URI
comp.retrieval_authintegerNoRetrieval.authAuthorization type — 0 none, 1 api_key, 2 oauth2, 3 ssl, 4 other
comp.retrieval_typeinteger[]NoRetrieval.typeEndpoint type(s) — 0 html, 1 rss, 2 api, 3 mcp, 4 nlweb, 5 xml, 6 newsml, 7 other
KeyTypeRequiredCoMP fieldDescription
comp.scope_typeintegerNoScope.scope0 full_corpus, 1 section, 2 date_range, 3 genre, 4 topic, 5 curated, 6 other
comp.scope_maxintegerNoScope.maxUpper limit on crawl (0=unlimited, 1=has maximum)
comp.content_typesinteger[]NoScope.ctype0 text, 1 video, 2 image, 3 audio, 4 all, 5 other

Canonical CoMP V1 folds licensing and pricing onto Scope; there is no separate License object. (This section was previously titled “License on OfferExt”; the #license-on-offerext anchor is preserved for inbound links.)

KeyTypeRequiredCoMP fieldDescription
comp.allowed_useintegerNoScope.ause0 commercial, 1 non_commercial, 2 educational, 3 government, 4 personal, 5 byo_license, 6 other
comp.price_typeintegerNoScope.pricetype0 per_use, 1 per_query, 2 per_token, 3 flat, 4 tiered, 5 other
comp.price_tierintegerNoScope.pricetierTier identifier when price_type = 4 (tiered)
comp.unit_pricenumberNoScope.unitpriceUnit price at the given basis
comp.currencystringNoScope.curISO-4217 alpha code; default USD
comp.countriesinteger[]NoScope.countryISO-3166-1 numeric codes where the package may be used
comp.license_duration_daysintegerNoScope.licensedurDays the license is active after the package is delivered

Usage Functions (on LicenseTerm.restrictions[].ext and Usage.ext)

Section titled “Usage Functions (on LicenseTerm.restrictions[].ext and Usage.ext)”
KeyTypeRequiredCoMP fieldDescription
comp.functioninteger[]NoAISystemUse.function0 all, 1 ai-all, 2 ai-train, 3 ai-input, 4 ai-index, 5 search
comp.subfninteger[]NoAISystemUse.subfn0 training, 1 rag, 2 grounding, 3 agent-view, 4 agent-actions, 5 other

IAB Content Taxonomy (per asset, within Scope.text / video / image / audio)

Section titled “IAB Content Taxonomy (per asset, within Scope.text / video / image / audio)”

Each asset object carries its own taxonomy fields:

KeyTypeRequiredCoMP fieldDescription
comp.cattaxintegerNo<asset>.cattaxCategory taxonomy in use; default 9 (IAB Content Category Taxonomy 3.1)
comp.catinteger[]No<asset>.catIAB content category codes (per cattax)
comp.languageinteger[]No<asset>.languageContent language codes

An Exchange declaring ramp-comp-v1 support MUST:

  • Include comp.package_id on every Offer
  • Forward comp.function from the Function Restriction to UsageReport processing
  • Validate comp.* ext fields against this profile’s schema

An Agent using ramp-comp-v1 MUST:

  • Include comp.function in Usage when reporting

The core RAMP protocol carries universal fields:

  • Offer.title — human-readable resource title
  • LicenseTerm.restrictions[] with kind: RESTRICTION_KIND_FUNCTION carrying permitted / prohibited — string-based (not CoMP enums)
  • Usage.function / Usage.subfn — string-based

The ramp-comp-v1 profile adds CoMP-specific semantics:

  • comp.package_id links to the CoMP package model
  • comp.function values map to CoMP Function enum integers
  • comp.retrieval_* maps to CoMP Retrieval message

Agents and Exchanges that don’t use CoMP simply ignore these ext fields (robustness principle). The core protocol works without them.