The Advertising Delivery State Ontology separates what an advertiser intends from whether the provider lets it serve, why delivery is held, and whether the advertising entity remains live.
This is an unofficial specification of version 0.1.0 of this Inferal ontology module. The vocabulary remains a draft.
Feedback should be sent to contact@inferal.com.
The key words MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY in this document are to be interpreted as described in BCP 14 when, and only when, they appear in all capitals.
RDF data conforms to the vocabulary when it uses the terms according to their normative meanings below. A data producer claiming closed-world conformance MUST also satisfy the SHACL graph distributed with this module. OWL and RDFS entailment do not imply that an omitted value is false.
| Prefix | Namespace IRI |
|---|---|
adel | https://ontology.inferal.com/modules/advertising-delivery-state/ |
This module covers reified delivery states, advertiser intent, the serving state a provider reports, repeatable serving holds with their origins, lifecycle standing, and an optional interval over which a state is effective.
Advertising hierarchy tiers, budgets, metrics, provider policy taxonomies, and transition histories are outside this module. A hold may point to one of those resources without redefining it.
Delivery intent is a configuration setting, serving state is what the provider reports about whether the entity may serve, and lifecycle standing records whether the entity still exists. A serving state does not say that impressions are delivered: delivery is measured by the Advertising Measurement module. Limited serving is narrower than serving, so a consumer asking which entities can serve follows skos:broader to adel:serving instead of comparing against it. Producers MUST state these axes separately instead of collapsing them into one status value.
A delivery state can have several simultaneous holds. Each hold names one kind and the resource where it originated, allowing a consumer to distinguish a local problem from an inherited account, campaign, or policy problem.
A delivery state describes an entity during an interval. A later state does not invalidate an earlier observation when their effective intervals differ.
Every term in this section is exported for cross-reference. Definitions state the term's meaning; the relations column summarizes declared RDFS and SKOS links. Closed-world cardinalities are specified separately in Validation.
| Term | Kind | Normative meaning | Relations |
|---|---|---|---|
adel:DeliveryIntent |
Class | What the advertiser wants the entity to do: run, or not run. Intent is a setting, and it is independent of whether delivery actually occurs. | Subclass of: skos:Concept |
adel:DeliveryState |
Class | The reported delivery situation of one advertising entity: what the advertiser intends, whether the provider lets it serve, the holds preventing it, and its lifecycle standing. | Subclass of: prov:Entity |
adel:HoldKind |
Class | The category of a serving hold, such as a policy review outcome, a billing problem, an exhausted allowance, or an ancestor that is paused. | Subclass of: skos:Concept |
adel:LifecycleState |
Class | Whether the entity is live, archived out of the working set, or deleted. | Subclass of: skos:Concept |
adel:ServingHold |
Class | A first-class reason an entity is not serving despite the advertiser intending it to, naming the kind of hold and the resource it originated from. | No local domain or range restriction. |
adel:ServingState |
Class | Whether the provider lets the entity serve, independent of what the advertiser intends. Whether impressions are delivered is measured by advertising-measurement, not stated by a serving state. | Subclass of: skos:Concept |
| Term | Kind | Normative meaning | Relations |
|---|---|---|---|
adel:effectiveDuring |
Property | The interval a delivery state was observed to hold over. Open above when the state is current. | Domain: adel:DeliveryState; Range: rng:Range |
adel:heldBy |
Property | A hold preventing delivery. A state may carry several, and an entity intending to run with no holds should be serving. | Domain: adel:DeliveryState; Range: adel:ServingHold |
adel:holdKind |
Property | The category of the hold, which determines who can act on it. | Domain: adel:ServingHold; Range: adel:HoldKind |
adel:intendedDelivery |
Property | What the advertiser wants the entity to do. | Domain: adel:DeliveryState; Range: adel:DeliveryIntent |
adel:lifecycleStanding |
Property | Whether the entity is live, archived, or deleted. | Domain: adel:DeliveryState; Range: adel:LifecycleState |
adel:observedServing |
Property | Whether the provider lets the entity serve. | Domain: adel:DeliveryState; Range: adel:ServingState |
adel:originatingResource |
Property | The resource the hold came from. For an inherited hold this is the ancestor that is paused; for a hold arising from the entity itself it is that entity. | Domain: adel:ServingHold; Range: rdfs:Resource |
adel:stateOf |
Property | The advertising entity this delivery state describes. | Domain: adel:DeliveryState; Range: rdfs:Resource |
| Term | Kind | Normative meaning | Relations |
|---|---|---|---|
adel:accountRestrictionHold |
Concept | Delivery is prevented because the platform has restricted or suspended the advertiser account as a whole. The remedy lies with the account owner, through the platform's review or appeal process. | Scheme: adel:HoldKindScheme |
adel:allowanceExhaustedHold |
Concept | Delivery is prevented because the governing budget or spend cap is spent. The remedy is a configuration change. | Scheme: adel:HoldKindScheme |
adel:ancestorHeldHold |
Concept | Delivery is prevented by an ancestor that itself cannot serve. The originating resource names which ancestor, which is the part provider enumerations omit. | Scheme: adel:HoldKindScheme |
adel:archivedEntity |
Concept | The entity is removed from the working set but retained. Its historical metrics remain valid and readable. | Scheme: adel:LifecycleStateScheme |
adel:billingHold |
Concept | Delivery is prevented by the account's payment standing. The remedy lies with whoever owns the account, not with the entity. | Scheme: adel:HoldKindScheme |
adel:configurationHold |
Concept | Delivery is prevented by the setup of the entity where the hold originates, which may be an ancestor of the held entity: a required setting, targeting or asset is missing or misconfigured, or the entities beneath it are missing or all switched off. The remedy is a change to that setup, which the advertiser makes. | Scheme: adel:HoldKindScheme |
adel:intendToHold |
Concept | The advertiser has switched delivery off. | Scheme: adel:DeliveryIntentScheme |
adel:intendToRun |
Concept | The advertiser wants the entity to deliver. | Scheme: adel:DeliveryIntentScheme |
adel:limitedServing |
Concept | The entity is eligible to serve, but the provider reports that it serves only in part. | Scheme: adel:ServingStateScheme; broader: adel:serving |
adel:liveEntity |
Concept | The entity exists in the advertiser's working set. | Scheme: adel:LifecycleStateScheme |
adel:notServing |
Concept | The provider does not let the entity serve, for reasons its intent or its holds record. | Scheme: adel:ServingStateScheme |
adel:outsideScheduleHold |
Concept | Delivery is prevented because the current time falls outside the entity's flight or dayparting. Nothing is wrong. | Scheme: adel:HoldKindScheme |
adel:policyReviewHold |
Concept | Delivery is prevented pending or following a platform policy decision. The advertiser's remedy is to amend the entity or appeal. | Scheme: adel:HoldKindScheme |
adel:processingHold |
Concept | Delivery is prevented while the platform finishes work on a recent change. Transient and requiring no action. | Scheme: adel:HoldKindScheme |
adel:removedEntity |
Concept | The entity no longer exists. Historical metrics may survive it, and a query joining to the entity will not resolve. | Scheme: adel:LifecycleStateScheme |
adel:serving |
Concept | Nothing the provider reports prevents the entity from serving. | Scheme: adel:ServingStateScheme |
adel:unclassifiedHold |
Concept | Delivery is prevented for a reason the provider does not name, or names in terms no other hold kind covers. Who can act is unknown until the provider's own reason is read. Provider profiles place their unmapped hold kinds under this one, so a single query finds them across providers. | Scheme: adel:HoldKindScheme |
| Term | Kind | Normative meaning | Relations |
|---|---|---|---|
adel:DeliveryIntentScheme |
Concept scheme | Controlled vocabulary of what an advertiser intends an entity to do. | No local domain or range restriction. |
adel:HoldKindScheme |
Concept scheme | Controlled vocabulary of reasons delivery is prevented. | No local domain or range restriction. |
adel:LifecycleStateScheme |
Concept scheme | Controlled vocabulary of whether an entity still exists. | No local domain or range restriction. |
adel:ServingStateScheme |
Concept scheme | Controlled vocabulary of whether the provider lets an entity serve. | No local domain or range restriction. |
The module's SHACL constraints provide the closed-world conformance profile. The following requirements summarize the constraints that affect ordinary data producers.
adel:liveEntity, adel:archivedEntity, or adel:removedEntity, or a profile concept whose single skos:broader is one of the three, such as a draft narrower than live.
Controlled vocabularies use SKOS so provider profiles MAY add narrower or
matched concepts without replacing the shared classes. Extensions MUST
preserve the meanings and constraints of terms they reuse. A mapping MUST
NOT assert equivalence merely because two provider fields have similar labels.
A profile hold kind SHOULD be narrower than exactly one shared hold kind, and
a hold kind the profile cannot classify is narrower than
adel:unclassifiedHold.
Hold reasons can disclose billing problems, policy decisions, or operational outages. Publishers SHOULD limit access where those facts are sensitive. The vocabulary records state and provenance but does not authorize remediation actions.