D-013 AdCOM types 0 or 1 flags as integers, and the protocol buffer definitions as booleans; eight attributes are a single value in one and an array in the other, in both directions, such as playmethod; and Banner.link is an object in AdCOM and a string there. Which does the schema follow?
What the schemas do
Until AdCOM's objects are mapped, the schemas say nothing about these attributes; when they are, they follow the text: integer flags, an array where the text writes "array", and link an object.
Options
Why
The text is normative, and it changed playmethod from one integer to an integer array within 1.0, which neither the protocol buffer definitions nor the Prebid Go types followed. A payload the text allows, such as "playmethod": [1, 2], fails a reader built from those definitions. The objects phase types each attribute as the text writes it, and this record keeps the rows quoted until then.
What we ask the specification to state
Regenerate the protocol buffer definitions from the specification, or mark them as not normative and say which differences are deliberate. Today 24 integer flags are booleans there, 8 attributes differ between an array and a single value, playmethod among them, and Banner.link is a string where AdCOM writes an object.
The specification lines it rests on
Each line is quoted as the record pins it. Expand an item to read the quote.
main
Object: VideoPlacement, the
VideoPlacement.playmethodkey row L1403 at 26c59baplaymethod| Playback method(s) in use for this placement. Refer to List: Playback Methods.Object: AudioPlacement, the
AudioPlacement.playmethodkey row L1580 at 26c59baplaymethod| Playback method(s) in use for this placement. Refer to List: Playback Methods.Object: Ad, the
Ad.securekey row L273 at 26c59basecure| Flag to indicate if the creative is secure (i.e., uses HTTPS for all assets and markup), where 0 = no, 1 = yes. There is no default and thus if omitted, the secure state is unknown. However, as a practical matter, the safe assumption is to treat unknown as non-secure.Object: Ad, the
Ad.attrkey row L268 at 26c59baattr| Set of attributes describing the creative. Refer to List: Creative Attributes.Object: Display, the
Display.apikey row L339 at 26c59baapi| API required by the ad if applicable. Refer to List: API Frameworks.Object: Display, the
Display.ctypekey row L344 at 26c59bactype| Subtype of display creative. Refer to List: Creative Subtypes - Display.Object: Video, the
Video.ctypekey row L753 at 26c59bactype| Subtype of video creative. Refer to List: Creative Subtypes - Audio/Video.Object: Audio, the
Audio.ctypekey row L803 at 26c59bactype| Subtype of audio creative. Refer to List: Creative Subtypes - Audio/Video.Object: Content, the
Content.keywordskey row L2057 at 26c59bakeywords| Comma separated list of keywords describing the content. Only one ofkeywordsorkwarraymay be present.Object: Banner, the
Banner.linkkey row L428 at 26c59balink| Destination link if the image is activated (e.g., clicked); not applicable in some contexts (e.g., DOOH) and its inclusion does not guarantee it will be supported. Refer to Object: LinkAsset.
Tag AdCOM1.0-202607
Object: VideoPlacement, the
VideoPlacement.playmethodkey row L1403 at d67a6a8playmethod| Playback method(s) in use for this placement. Refer to List: Playback Methods.Object: AudioPlacement, the
AudioPlacement.playmethodkey row L1580 at d67a6a8playmethod| Playback method(s) in use for this placement. Refer to List: Playback Methods.Object: Ad, the
Ad.securekey row L273 at d67a6a8secure| Flag to indicate if the creative is secure (i.e., uses HTTPS for all assets and markup), where 0 = no, 1 = yes. There is no default and thus if omitted, the secure state is unknown. However, as a practical matter, the safe assumption is to treat unknown as non-secure.Object: Ad, the
Ad.attrkey row L268 at d67a6a8attr| Set of attributes describing the creative. Refer to List: Creative Attributes.Object: Display, the
Display.apikey row L339 at d67a6a8api| API required by the ad if applicable. Refer to List: API Frameworks.Object: Display, the
Display.ctypekey row L344 at d67a6a8ctype| Subtype of display creative. Refer to List: Creative Subtypes - Display.Object: Video, the
Video.ctypekey row L753 at d67a6a8ctype| Subtype of video creative. Refer to List: Creative Subtypes - Audio/Video.Object: Audio, the
Audio.ctypekey row L803 at d67a6a8ctype| Subtype of audio creative. Refer to List: Creative Subtypes - Audio/Video.Object: Content, the
Content.keywordskey row L2058 at d67a6a8keywords| Comma separated list of keywords describing the content. Only one ofkeywordsorkwarraymay be present.Object: Banner, the
Banner.linkkey row L428 at d67a6a8link| Destination link if the image is activated (e.g., clicked); not applicable in some contexts (e.g., DOOH) and its inclusion does not guarantee it will be supported. Refer to Object: LinkAsset.