diff --git a/adcom1/category_taxonomy.go b/adcom1/category_taxonomy.go index 0b6517f..13ba99c 100644 --- a/adcom1/category_taxonomy.go +++ b/adcom1/category_taxonomy.go @@ -14,4 +14,6 @@ const ( CatTaxIABContent21 CategoryTaxonomy = 5 // IAB Tech Lab Content Category Taxonomy 2.1. CatTaxIABContent22 CategoryTaxonomy = 6 // IAB Tech Lab Content Category Taxonomy 2.2. CatTaxIABContent30 CategoryTaxonomy = 7 // IAB Tech Lab Content Category Taxonomy 3.0. + CatTaxIABProduct20 CategoryTaxonomy = 8 // IAB Tech Lab Ad Product Taxonomy 2.0 + CatTaxIABContent31 CategoryTaxonomy = 9 // IAB Tech Lab Content Category Taxonomy 3.1 ) diff --git a/adcom1/content.go b/adcom1/content.go index a7ef9b3..d4f3ba6 100644 --- a/adcom1/content.go +++ b/adcom1/content.go @@ -66,6 +66,24 @@ type Content struct { // Genre that best describes the content (e.g., rock, pop, etc). Genre string `json:"genre,omitempty"` + // Attribute: + // genres + // Type: + // string array + // Definition: + // Unique ID(s) for the genre of the content as listed in the taxonomy defined by the gtax field. + Genres []string `json:"genres,omitempty"` + + // Attribute: + // gtax + // Type: + // integer + // Definition: + // The taxonomy in use. + // If no gtax field is supplied, Content Category Taxonomy 3.1 is assumed + // Refer to List: Category Taxonomies. + GTax CategoryTaxonomy `json:"gtax,omitempty"` + // Attribute: // album // Type: @@ -198,8 +216,18 @@ type Content struct { // string // Definition: // Content language using ISO-639-1-alpha-2. + // Only one of 'lang' or 'langb' should be present. Lang string `json:"lang,omitempty"` + // Attribute: + // langb + // Type: + // string + // Definition: + // Content language using IETF BCP 47. + // Only one of 'lang' or 'langb' should be present. + LangB string `json:"langb,omitempty"` + // Attribute: // embed // Type: @@ -245,6 +273,22 @@ type Content struct { // Refer to Object: Data. Data []Data `json:"data,omitempty"` + // Attribute: + // realtime + // Type: + // integer + // Definition: + // Indicator of whether or not the event is happening in real time, where 0 = not real time, 1 = real time + Realtime int8 `json:"realtime,omitempty"` + + // Attribute: + // firstbroadcast + // Type: + // integer + // Definition: + // Indicator of whether or not this broadcast is the first time the content is available to an audience, where 0 = not first broadcast, 1 = first broadcast + FirstBroadcast int8 `json:"firstbroadcast,omitempty"` + // Attribute: // ext // Type: diff --git a/adcom1/creative_attribute.go b/adcom1/creative_attribute.go index ca8237f..dc3586d 100644 --- a/adcom1/creative_attribute.go +++ b/adcom1/creative_attribute.go @@ -25,4 +25,9 @@ const ( AttrHasSkipButton CreativeAttribute = 16 // Ad Provides Skip Button (e.g. VPAID-rendered skip button on pre-roll video) AttrFlash CreativeAttribute = 17 // Adobe Flash AttrResponsive CreativeAttribute = 18 // Responsive; Sizeless; Fluid (i.e., creatives that dynamically resize to environment) + AttrQRCode CreativeAttribute = 19 // Contains advertiser QR Code + AttrAlphaChannel CreativeAttribute = 20 // Support alpha channel transparency + AttrStatic CreativeAttribute = 21 // Static Visual. Creative contains no perceptible motion and renders as a static visual, even if delivered in a video file format (e.g., MP4) + AttrLimitedMotion CreativeAttribute = 22 // Limited Motion (Cinemagraph). Creative contains subtle or localized motion within an otherwise static composition. + AttrFullMotion CreativeAttribute = 23 // Full-Motion Video. Creative contains continuous or scene-level motion typical of standard video assets ) diff --git a/adcom1/data.go b/adcom1/data.go index a318b92..9d29fef 100644 --- a/adcom1/data.go +++ b/adcom1/data.go @@ -22,6 +22,14 @@ type Data struct { // Vendor-specific displayable name for the data provider. Name string `json:"name,omitempty"` + // Attribute: + // cids + // Type: + // string array + // Definition: + // Array of Extended Content IDs, representing one or more identifiers for the video or audio content from the ID source specified in the 'name' field of the 'data' object. + CIDs []string `json:"cids,omitempty"` + // Attribute: // segment // Type: diff --git a/adcom1/extended_identifier.go b/adcom1/extended_identifier.go index 717e90e..4493759 100644 --- a/adcom1/extended_identifier.go +++ b/adcom1/extended_identifier.go @@ -23,6 +23,35 @@ type ExtendedIdentifier struct { // Array of extended ID UID objects from the given source. Refer to Object: Extended Identifier UIDs. UIDs []ExtendedIdentifierUID `json:"uids,omitempty"` + // Attribute: + // inserter + // Type: + // string + // Definition: + // The canonical domain name of the entity (publisher, publisher monetization company, SSP, Exchange, Header Wrapper, etc.) that caused the ID array element to be added. + // This should be the same value as used to identify sellers in an ads.txt file if one exists. + // For ad tech intermediaries, this would be the domain as used in ads.txt. For publishers, this would match the domain in the 'site' or 'app' object. + Inserter string `json:"inserter,omitempty"` + + // Attribute: + // matcher + // Type: + // string + // Definition: + // Technology providing the match method as defined in 'mm'. + // In some cases, this may be the same value as inserter. + // When blank, it is assumed that the 'matcher' is equal to the 'source'. + // May be omitted when mm=0, 1, or 2. + Matcher string `json:"matcher,omitempty"` + + // Attribute: + // mm + // Type: + // integer + // Definition: + // Match method used by the matcher. Refer to List: ID Match Methods + MM MatchMethod `json:"mm,omitempty"` + // Attribute: // ext // Type: diff --git a/adcom1/match_method.go b/adcom1/match_method.go index 2f156cd..78e1d6a 100644 --- a/adcom1/match_method.go +++ b/adcom1/match_method.go @@ -5,6 +5,8 @@ package adcom1 type MatchMethod int64 // Various ways an ID could be matched to an ad request +// +// Values of 500+ hold vendor-specific codes. const ( MatchMethodUnknown MatchMethod = 0 MatchMethodNoMatch MatchMethod = 1 // No matching has occurred. The associated ID came directly from a 3rd-party cookie or OS-provided resettable device ID for advertising (IFA). diff --git a/adcom1/placement_position.go b/adcom1/placement_position.go index 4317f39..62933de 100644 --- a/adcom1/placement_position.go +++ b/adcom1/placement_position.go @@ -6,14 +6,24 @@ type PlacementPosition int8 // Placement positions. const ( - PositionUnknown PlacementPosition = 0 // Unknown - PositionAboveFold PlacementPosition = 1 // Above The Fold - PositionLocked PlacementPosition = 2 // Locked (i.e., fixed position) - PositionBelowFold PlacementPosition = 3 // Below The Fold - PositionHeader PlacementPosition = 4 // Header - PositionFooter PlacementPosition = 5 // Footer - PositionSideBar PlacementPosition = 6 // Sidebar - PositionFullScreen PlacementPosition = 7 // Fullscreen + PositionUnknown PlacementPosition = 0 // Unknown + PositionAboveFold PlacementPosition = 1 // Above The Fold + PositionLocked PlacementPosition = 2 // Locked (i.e., fixed position) + PositionBelowFold PlacementPosition = 3 // Below The Fold + PositionHeader PlacementPosition = 4 // Header + PositionFooter PlacementPosition = 5 // Footer + PositionSideBar PlacementPosition = 6 // Sidebar + PositionFullScreen PlacementPosition = 7 // Fullscreen + PositionPartial PlacementPosition = 8 // Partial Screen + PositionTopLeft PlacementPosition = 9 // Top Left + PositionTopRight PlacementPosition = 10 // Top Right + PositionFrame PlacementPosition = 11 // Frame the content + PositionDoubleBox PlacementPosition = 12 // Double box + PositionDoubleBoxWithBackground PlacementPosition = 13 // Double box with background + PositionBottomLeft PlacementPosition = 14 // Bottom Left + PositionBottomRight PlacementPosition = 15 // Bottom Right + PositionLShape PlacementPosition = 16 // L shape + PositionReverseLShape PlacementPosition = 17 // Reversed L shape ) // Ptr returns pointer to own value. diff --git a/adcom1/playback_method.go b/adcom1/playback_method.go index ffbed69..a90bde0 100644 --- a/adcom1/playback_method.go +++ b/adcom1/playback_method.go @@ -5,11 +5,15 @@ type PlaybackMethod int8 // Media playback methods. const ( - PlaybackPageLoadSoundOn PlaybackMethod = 1 // Initiates on Page Load with Sound On - PlaybackPageLoadSoundOff PlaybackMethod = 2 // Initiates on Page Load with Sound Off by Default - PlaybackClickSoundOn PlaybackMethod = 3 // Initiates on Click with Sound On - PlaybackMouseOverSoundOn PlaybackMethod = 4 // Initiates on Mouse-Over with Sound On - PlaybackViewportSoundOn PlaybackMethod = 5 // Initiates on Entering Viewport with Sound On - PlaybackViewportSoundOff PlaybackMethod = 6 // Initiates on Entering Viewport with Sound Off by Default - PlaybackContinuous PlaybackMethod = 7 // Continuous Playback - Media playback is set to play additional media automatically without user interaction. The media player will keep playing additional media (playlist or generated) for the user until the user actively stops this from happening. + PlaybackPageLoadSoundOn PlaybackMethod = 1 // Initiates without any specific user interaction with Sound On + PlaybackPageLoadSoundOff PlaybackMethod = 2 // Initiates without any specific user interaction Sound Off by Default + PlaybackClickSoundOn PlaybackMethod = 3 // Initiates on Click with Sound On + PlaybackMouseOverSoundOn PlaybackMethod = 4 // Initiates on Mouse-Over or cursor over with Sound On + PlaybackViewportSoundOn PlaybackMethod = 5 // Initiates on Entering Viewport or scrolling into view with Sound On + PlaybackViewportSoundOff PlaybackMethod = 6 // Initiates on Entering Viewport or scrolling into view with Sound Off by Default + PlaybackContinuous PlaybackMethod = 7 // Continuous Playback - Media playback is set to play additional media automatically without user interaction. The media player will keep playing additional media (playlist or generated) for the user until the user actively stops this from happening. + PlaybackPauseSoundOn PlaybackMethod = 8 // Initiated by user pausing content, Sound on + PlaybackPauseSoundOff PlaybackMethod = 9 // Initiated by user pausing content, Sound off + PlaybackIdlingsoundOn PlaybackMethod = 10 // Initiated by idling (e.g. screensaver), Sound on + PlaybackIdlingSoundOff PlaybackMethod = 11 // Initiated by idling (e.g. screensaver), Sound off ) diff --git a/adcom1/regs.go b/adcom1/regs.go index a48ff73..d57be8b 100644 --- a/adcom1/regs.go +++ b/adcom1/regs.go @@ -22,6 +22,26 @@ type Regs struct { // The General Data Protection Regulation (GDPR) is a regulation of the European Union. GDPR int8 `json:"gdpr,omitempty"` + // Attribute: + // gpp + // Type: + // string + // Definition: + // Contains the Global Privacy Platform’s consent string. + // See the Global Privacy Platform specification for more details. + GPP string `json:"gpp,omitempty"` + + // Attribute: + // gpp_sid + // Type: + // integer array + // Definition: + // Array of the section(s) of the string which should be applied for this transaction. + // Generally will contain one and only one value, but there are edge cases where more than one may apply. + // GPP Section 3 (Header) and 4 (Signal Integrity) do not need to be included. + // See the GPP Section Information for more details. + GPPSID []int8 `json:"gpp_sid,omitempty"` + // Attribute: // ext // Type: diff --git a/adcom1/restrictions.go b/adcom1/restrictions.go index 203465e..5e10f1d 100644 --- a/adcom1/restrictions.go +++ b/adcom1/restrictions.go @@ -4,6 +4,14 @@ import "encoding/json" // Restrictions object allows lists of restrictions on ad responses to be specified including specific content categories, advertisers, ads pertaining to specific apps, or creative attributes. type Restrictions struct { + // Attribute: + // acat + // Type: + // string array + // Definition: + // Allowed content categories using IDs from the taxonomy indicated in cattax. + ACat []string `json:"acat,omitempty"` + // Attribute: // bcat // Type: diff --git a/adcom1/video_placement_subtype.go b/adcom1/video_placement_subtype.go index 68ebf53..ca798d2 100644 --- a/adcom1/video_placement_subtype.go +++ b/adcom1/video_placement_subtype.go @@ -8,9 +8,13 @@ type VideoPlacementSubtype int8 // Types of video placements derived largely from the IAB Digital Video Guidelines. const ( - VideoPlacementInStream VideoPlacementSubtype = 1 // In-Stream: Played before, during or after the streaming video content that the consumer has requested (e.g., Pre-roll, Mid-roll, Post-roll). - VideoPlacementInBanner VideoPlacementSubtype = 2 // In-Banner: Exists within a web banner that leverages the banner space to deliver a video experience as opposed to another static or rich media format. The format relies on the existence of display ad inventory on the page for its delivery. - VideoPlacementInArticle VideoPlacementSubtype = 3 // In-Article: Loads and plays dynamically between paragraphs of editorial content; existing as a standalone branded message. - VideoPlacementInFeed VideoPlacementSubtype = 4 // In-Feed: Found in content, social, or product feeds. - VideoPlacementAlwaysVisible VideoPlacementSubtype = 5 // Interstitial/Slider/Floating: Covers the entire or a portion of screen area, but is always on screen while displayed (i.e. cannot be scrolled out of view). + VideoPlacementInStream VideoPlacementSubtype = 1 // In-Stream: Played before, during or after the streaming video content that the consumer has requested (e.g., Pre-roll, Mid-roll, Post-roll). + VideoPlacementAccompanyingContent VideoPlacementSubtype = 2 // Accompanying Content: Pre-roll, mid-roll, and post-roll ads that are played before, during, or after streaming video content. + VideoPlacementInterstitial VideoPlacementSubtype = 3 // Interstitial: Video ads that are played without video content. + VideoPlacementNoContent VideoPlacementSubtype = 4 // No Content/Standalone: Video ads that are played without streaming video content. + VideoPlacementPause VideoPlacementSubtype = 5 // Pause: An ad present in streaming video content that the consumer has requested. + VideoPlacementScreensaver VideoPlacementSubtype = 6 // Screensaver: An ad present, when OS/App Screen Saver are initiated. + VideoPlacementOverlay VideoPlacementSubtype = 7 // Overlay: Ads occurring during program content and outside of the traditional ad break. + VideoPlacementSqueezeback VideoPlacementSubtype = 8 // Squeezeback: Ads Alongside or Adjacent to Content, also known as L-Shape Ads & Double Box, are ads that occur during program content and outside of the traditional ad break. + VideoPlacementInScene VideoPlacementSubtype = 9 // In-scene: A form of advertising that integrates branded elements directly within the content itself, rather than appearing as separate pre-roll, mid-roll, overlay, or display formats. )