Copyright (c)2008-2011, Cable Television Laboratories, Inc. SaFI Campaign Information Package Interface, XML Schema, Release Version 2.0.0. This schema is a normative component of CableLabs® Subscription and Fulfillment Interfaces, Campaign Information Package Specification, OC-SP-SaFI-CIPv2.0-110131
The CampInfoPkg is the root element of all new or updated campaign descriptions. It contains the following data units:
The root element of the body of a ReadRequest message. The CipSelectorGroup identifies the campaign information that is to be returned.
The root element of the body of a ReadResponse message. ReadResponse elements will contain zero or more CampInfoPkg elements that satisfy the criteria identified by a ReadRequest.
Distributes (pushes) one or more updates to campaign data. The UpdateNotice message is issued by a publication site to convey to subscribers one or more distributable changes in specific CIP document(s). The isRetry attribute is used to signal that an exact duplicate of a prior message is being distributed.
UpdateResponse is a reply to an UpdateNotice message. UpdateResponse elements require a MsgResultAttributeGroup attribute group.
Element for SetRegistration message.
The SetRegistrationRequest message is issued by a CIP consumer site to a CIP publication site to add or remove that consumer site from the publication site’s subscription list, or to maintain the set of syscodes which the consumer site presents. The Subscriber value defines both the identity and web service URL of the consumer site. The rest of the message conditions the information expected at that site.
boolean Active applies to the syscode set of the message, and sets those syscodes as enabled or disabled (by Active value) for distributions. For both operations, if the syscode set is empty the entire set of syscodes predefined for the subscriber (via some unspecified mechanism) is implied. Any site with no active syscodes is not an active site, and any site with one or more active syscodes is an active site.
The Syscodes set controls the scope of the operation. If a set of syscodes is supplied, the operation applies only to those syscodes. However, if the set is empty, the operation applies to all of the syscodes predefined (via an unspecified out-of-band mechanism)for the subscriber. Any syscodes active for the site and not include in the syscode set are unaffected by the message.
Defines the response to a SetRegistrationRequest message.
If a SetRegistrationRequest message contains a syscode that is currently subscribed to a different consumer site of the same publisher, the SetRegistrationResponse message will indicate failure with a "NOTOK" message. The message text will contain a space-delimited list of the errored syscodes.
Element for GetRegistration message. The consumer site identified by the Subscriber URI may issue this message to a publisher site to query the current list of active syscodes for that consumer site at the publisher site.
Response for GetRegistration message. Identifies the target URI and a list of syscodes that are currently enabled.
Contents of a fault on a Read Request.
Along with the Values (of type CipSelectorGroup) attribute group, an InvalidRequest element must contain a Reason element, which can contain one of the following fault indicators:
This is a container for one {assetMetadataKey, assetMetatdataValue} pair, where:
If the value matches the metadata document, the attribute test evaluates to true; if not, the test evaluates to false.
Supplies the detail of one (typically, but possibly more than one) asset that is part of the placement.
The AssetMetadata key-value sets may be used to describe any assets that might be needed to be attached. If all the listed AssetMetadataAttributeTypes evaluate to true for any known asset, that asset is consider a part of this asset reference.
The rotation attribute identifies the target percentage of the total placement occurrences of the parent placement that this asset receives (collectively, if this reference selects multiple assets).
The assetType identifies the family of the asset, which enables some interpretations of the asset structure without reference to the metadata.
The apply attribute indicates the form in which this asset applies to it's parent placement.
Note that an AssetReferenceType contains a RecordIdAttributeGroupOpt, but no RecordStatusAttributeGroup. This means that an AssetReferenceType is a reportable CIP node, but is not an independent revision set; it is a contained member of its parent revision. If no PEID is present in the AssetReferenceType, it is inherited from the parent Placement. The Epsid is always required.
Defines a set of placements in a specific campaign, at an indicated MSO and syscode. The relationship between the placements that forms the basis of a bundle is beyond the scope of this specification. Each placement of the bundle is evaluated independently, except for the specifically defined interactions with attributes of the bundle.
The StwShpData element provides operational data to support the stewardship of the campaign of which this bundle is a component.
The list of CommonQualifierGroups defines qualifier expressions that must be satisified for any placement that is a child of this bundle. Multiple groups are always ANDed, which means that such placements only occur if each group is individually true.
The implementation behavior shall be such that the qualifiers of a bundle are effectively projected to their placements and evaluated as additional qualifiers of each placement. Nothing in this specification is conditional on an evaluation result for the bundle as an entity.
The Placements of the bundle define specific presentation activities that fulfill the campaign.
The set of attributes composed of cipVer, cipOrdrOwnr, cipOrder, cipCreDat, cipRevDat, decisionOwner, and cip:GuidAttributeGroup, define a set of campaign data associated with this bundle. All placements of the bundle are implicitly associated with that campaign data. Further details are available at each attribute.
The Bundle is uniquely identified by the PEID+EPSID in the RecordIdAttributeGroupReq. Since it also contains a RecordStatusAttributeGroup, it is an updateable element with the required PEID+EPSID identifying the revision set. The document order will have multiple revisions, if present, as adjacent elements in decreasing revision number order.
A Boolean qualifier expression. This is defined within a bundle, and evaluated for each placement that is a child of that bundle. Multiple qualifiers represent enclosed expressions, which are combined with the condition operator.
Qualifier is an enclosed expression.
Condition is the binary Boolean operator used to combine the qualifiers.
A GUID is a general purpose UUID. GUIDs are always defined with this type, which provides an alternative (meaningful, human-readable) name.
A container for campaign data for a single MSO. This contains placements for one or more campaigns.
The SysOrder list holds campaign data by syscode within the MSO.
The name is a standardized name of the MSO.
Defines a specific placement of one or more advanced advertising assets into some advertising placement opportunity.
The list of QualifierGroups defines qualifier expressions that must be satisified for this specific placement. Multiple groups are always ANDed, which means the placement occurs only if each group is individually true. If there are common qualifier groups defined for the placement's bundle, they are also ANDed with these groups.
AssetReference is a list of the components that are part of this placement.
Category is an optional field that labels this placement's category for the benefit of later placements.
ProductFamily identifies the type of ad unit being expressed. There may be supplemental operational definitions under which the execution engine's expectation of the data structure and content of a placement may by conditioned by the ProductFamily.
If this element contains an ApplicationDefinitionAttributeGroup and includes one or more CoDF or CoDF data AssetReferences, this element describes an application placement to be performed on the target asset, possibly in conjunction with a media placement. When there are no CoDF or CoDF data AssetReferences, this element describes an enhancement that has been pre-bound in a defined entertainment asset. In both cases, late bound or prebound, the ApplicationDefinitionAttributeGroup supplies data that informs plant management and return data processing for the identified application.
TrickMode can be used to describe the permitted trick modes during a VOD media playout.
Priority serves to provide an ordering of placements. When multiple placements are possible at any given opportunity, the highest priority placement, or a member of the group of highest priority placements when there are more that one with that same priority, will always be placed in preference to a lower priority.
The Placement is uniquely identified by the PEID+EPSID in the RecordIdAttributeGroupReq. Since it also contains a RecordStatusAttributeGroup, it is an updateable element with the required PEID+EPSID identifying the revision set. The document order will have multiple revisions, if present, as adjacent elements in decreasing revision number order.
A Boolean qualifier expression that is evaluated for a placement and is ANDed with the bundle's commonQualfier groups. Multiple qualifiers within the group are enclosed expressions, and are combined with the condition operator.
Qualifier supplies an enclosed expression.
condition is the binary Boolean operator used to combine the enclosed expressions.
A container for a set of one or more Boolean terms. If the container holds more than one term the value of the container is the AND of all the contained terms.
An individual boolean qualifier term which is part of a boolean expression. Thenamespace selects a both a set of qualifiers and a unique metadata document avilable to the evaluation environment. The qualifier selects a specific element from both that namespace and the document. The evaluation environment compares the current value of that element of the document with the value supplied in the expression. The comparison is subject to the semantics of the qualifier's datatype, and the comparison operation is defined by the operation. The result is a boolean representing the value of the term in the expression
namespace is a value from a predefined set of namespaces in the specification Annex A, which have implementions in each execution environment.
qualifier is a predefined name within the identified namespace. It is both an XPath into a metadata document and a key to the datadaype of the value.
operation is binary Boolean operator describing a required relation for this qualifier. The current actual value of the qualifier name in the implementation environment is the right operand for that operator. The semantics of the comparison are those normal to XML for the datatype of the qualifer.
value is the left operand of the defined Boolean operator.
The Contact list provides one or more contacts for operational assistance. Contact roles can help in selecting the correct contact.
A System Order provides a container for campaign placement data at a single syscode within one MSO.
The operational instructions are defined by an unordered series of bundles.
Identifies an application message template repository. AppMessageRuleSetType selects specific rule sets in the repository.
Identifies a completely defined set of application messages that may be issued by an application. It is a key to access the record set in the application message template repository.
Defines how an asset applies to its parent placement.
Validate means to insure at preflight that the asset is present as defined.
Place means this asset is part of the placement response data set, but it does not get preflight validation.
ValAndPlace means the asset should be validated at preflight, and is also a part of the placement response data set.
An assetMetadataKey is an XPath to an attribute or element in the Cablelabs ADI 3.0 namespace as defined in MD-SP-CONTENTv3.0-I01-100812. As such, it also identifies the datatype of the referenced attribute or element.
For more details on the usage of the AssetMetadataKeyType, refer to the documentation for AssetMetadataAttributeType.
assetMetadataValue is the expected matching value in an asset's 3.0 metadata document.
For more details on the usage of the AssetMetadataValueType, refer to the documentation for AssetMetadataAttributeType.
Identifies the kind of asset defined in a reference. This enables some decisions to be made about the asset structures prior to placement, and without requiring reference to the associated metadata.
The date and time the initial revision of the Campaign Information Package was created.
The date and time the identified revision of the Campaign Information Package was created.
Campaign version number. The version number is incremented once if the campaign is changed after publication. After an increment, the revision number can be retained until the next publication.
CIP documents with the same revision number are guranteed to contain the same data for each (MSO, SysCode) present. However, CIP document preparation may qualify the contents of a document, so it is permitted that not all (MSO, SysCode) combinations are necessarily informed of every document revision.
Category value for an inserted ad unit, similar to current linear usage. Note that the value of an exclusion for category collisions depends on all placements providing one or more meaningful categories.
A set of Boolean binary operators defined on qualifier terms with a group.
The name of a contact available for resolving issues with a campaign.
The role in the campaign workflow represented by a contact.
Identifies the owner of the placement decision.
The date and time this revision of the element was created.
A revision number of an element, incremented each time any data is modified. No data within an identified element (other than revision group data) is changed without a new revision number. For each element with an ElementRevisionNumber, only the record with the highest revision number currently applies, and only that record is normally distributed. Any others records must be requested.
The current status of the data model of an Element. It is limited to the following enumerated values:
Pending (pnd): Data is present, but is not necessarily an operationally complete or consistent set.
Committed (com): Data is present, and is an operationally complete and consistent set (though not necessarily final: data may be modified, even when active).
Active (act): The data present is intended to be operational and the line item should be executed according to the contained parameters. This is a statement of intent, not the result of operational feedback.
Pause (pse): No presentations should be made based on this element. This is expected to be a temporary state that will return to Active, but may instead go to Windup.
Windup (wnd): No presentations should be started based on this element, but post-processing functions may continue. This is a temporary state that is intended to go to Closed.
Closed (cls): All activity with respect to the line item should be terminated.
The email address of a stewardship contact.
Generic owner identifier. Identifiers MUST be unique within the namespace of their owner identifier. The CipOrder attribute, derived from this, identifies the order from which this CIP is derived.
All identifier owners MUST be set to a registered Internet domain name or a qualified domain name that is rooted in a registered Internet domain name belonging to the provider of the identifier.
A unique name assigned to an MSO and present in all the MSO orders or queries for that MSO.
One of the predefined values for a qualifier namespace as listed in Annex A of the specification. Each namespace identifies a data model with a set of predefined names, each of which has a known datatype and semantic definition.
Binary operator defined on qualifier name-value pairs. The semantics of the operations are defined by the datatype assigned to the name.
Accepts a percentage integer value from 0 to 100.
A value defining an ordering for placements. Lower numeric values represent higher priorities, with 1 being the highest.
This is one of a predefined set of known product families. It is used for preflight, monitoring, or other stewardship functions, and may also condition the required structure and content of the CIP in ways that can be relied upon by the exeuction environment.
A predefined name string in one of the specified qualifier namespaces.
True indicates the containing record is deprecated. A higher revision may exist with the flag false representing more current data. There will be no higher revision with the flag false if the record is deleted. At least one update will be issued with the flag false when a record is deleted rather than revised, and the record may then be omitted from further distributions.
Describes the beginning of an application reporting window as a signed offset with respect to the start of a placement that includes an application.
Describes the end of an application reporting window as a signed offset with respect to the end of a placement that includes an application.
Describes the interval between reports for a placement. A value of zero indicates immediate reporting on each IAM occurrence.
Identifies a complete application. It is a key to access the application characterization in the application repository.
An enumerated list of defined trick-mode options.
Human-readable name associated with every UUID to allow meaningful communication. Should be chosen to have a very low probability of duplication, but uniqueness is not testable, so is not required.
A value to be tested in a qualifier returning a Boolean result. The specific test to perform is identified by the operation type and affected by the qualifier's datatype.
The attribute set for characterizing an application. The repositoryAppKey characterizes an application according to the specification format, and the OrgID, AppID, and version identify a specific expression of that repository template held in the application repository. AppId/orgId/appVer are a set, all present or absent. Either that set or appDataReference, or both, must be present for the applicationDefinition to be valid.
Describes one operational contact. Note that one of phone or email is required. ContactAttributeGroup has the following attributes:
Attribute group for all GUIDs. This includes the unique UUID and also a human-readable name.
The set of attributes that identify a specific CIP element as an independently reportable unit or identifying elements of a revision set. This group requires both the PEID and the EPSID. The group only identifies a revision set if it occurs in conjunction with the RecordStatusAttributeGroup.
The rname is an optional human-readable name for the specific PEID-EPSID pair.
The set of attributes that identify a specific CIP element as an independently reportable unit. This group requires only the EPSID; the PEID can be inherited from a parent. The group cannot identify a revision set, as it is not a self containted unique identifier when the PEID is omitted.
The rname is an optional human-readable name for the specific PEID-EPSID pair.
Group describing a revision set and the currency of the document element and its children. Any element with a RecordStatusAttributeGroup must also have a RecordIdAttributeGroupReq, whose PEID+EPSID are the unique identifier for the revision set.
In a document, multiple elements of the revision set will be ordered by decreasing revision number.
The recstate indicates the expected processing state of the revision set
The recRevoked flag indicates whether the revision set is effectively part of the current document
The revision number is a unique id and also a total ordering for versions of the revision set.
The revDat indicates the date and time when the revision was created
Attribute group for most message result status.
Accepted
Rejected, but the content is valid.
Rejected because the content is invalid.
Defines data for a Notice operation. which indicates the recipient should fetch the referenced CIP. Note that is distribution mechanism is deprecated and should be replaced with UpdateNotice processing.
Defines selection criteria for a ReadRequest. A specific campaign may be identified by one of a GUID or GNAME or orderId+orderOwner, while orderOwner alone selects all campaigns associated with the owner.
Either one or both of cipCreateFrom and cipCreateTo may be supplied. CipCreateFrom selects campaigns where "CreateFrom is less than CipCreateDate. CreateTo selects campaigns where CipCreateDate is less than or equal to CreateTo".
Version omitted or zero returns the latest version; otherwise, a specific version must be identified. A version of -1 represents all versions.
A specific bundle may be requested by PEID; otherwise, all are implied.