-
Notifications
You must be signed in to change notification settings - Fork 65
/
vast4.xsd
1081 lines (1081 loc) · 55 KB
/
vast4.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vast="http://www.iab.com/VAST" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.iab.com/VAST" version="4.0.7">
<!-- =================== Begin root VAST document structure ============= -->
<xs:element name="VAST" >
<xs:annotation>
<xs:documentation>IAB VAST (Video Ad Serving Template), Version 4.0</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element name="Ad" minOccurs="0" maxOccurs="unbounded" >
<xs:annotation>
<xs:documentation>Top-level element, wraps each ad in the response or ad unit in an ad pod. This MUST be present unless an Error element is present.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element name="InLine" minOccurs="0" maxOccurs="1" type="vast:Inline_type">
<xs:annotation>
<xs:documentation>Second-level element surrounding complete ad data for a single ad</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Wrapper" minOccurs="0" maxOccurs="1" type="vast:Wrapper_type">
<xs:annotation>
<xs:documentation>Second-level element surrounding wrapper ad pointing to Secondary ad server.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:attribute name="id" type="xs:string" use="optional" />
<xs:attribute name="sequence" type="xs:integer" use="optional">
<xs:annotation>
<xs:documentation>Identifies the sequence of multiple Ads that are part of an Ad Pod.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="conditionalAd" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>A Boolean value that identifies a conditional ad.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="Error" minOccurs="0" maxOccurs="unbounded" type="xs:anyURI" >
<xs:annotation>
<xs:documentation>Used when there is no ad response. When the ad server does not or cannot return an Ad. If included the video player must send a request to the URI provided (Sec 3.2.1).</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:attribute name="version" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Current version is 4.0</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<!-- =================== End root VAST document structure ============= -->
<!-- ================= VAST internal type definitions ==================== -->
<xs:complexType name="IconClickTracking_type">
<xs:annotation>
<xs:documentation>URLs to ping when icon action occurs.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="TrackingEvents_type" >
<xs:sequence>
<xs:element name="Tracking" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The name of the event to track for the element. The creativeView should always be requested when present.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="event" use="required">
<xs:annotation>
<xs:documentation>The name of the event to track. For nonlinear ads these events should be recorded on the video within the ad.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="mute" />
<xs:enumeration value="unmute" />
<xs:enumeration value="pause" />
<xs:enumeration value="resume" />
<xs:enumeration value="rewind" />
<xs:enumeration value="skip" />
<xs:enumeration value="playerExpand" />
<xs:enumeration value="playerCollapse" />
<xs:enumeration value="start" />
<xs:enumeration value="firstQuartile" />
<xs:enumeration value="midpoint" />
<xs:enumeration value="thirdQuartile" />
<xs:enumeration value="complete" />
<xs:enumeration value="acceptInvitationLinear" />
<xs:enumeration value="timeSpentViewing" />
<xs:enumeration value="progress" />
<xs:enumeration value="creativeView" />
<xs:enumeration value="acceptInvitation" />
<xs:enumeration value="adExpand" />
<xs:enumeration value="adCollapse" />
<xs:enumeration value="minimize" />
<xs:enumeration value="close" />
<xs:enumeration value="overlayViewDuration" />
<xs:enumeration value="otherAdInteraction" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="offset" use="optional">
<xs:annotation>
<xs:documentation>The time during the video at which this url should be pinged. Must be present for progress event.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d{2}:[0-5]\d:[0-5]\d(\.\d\d\d)?|1?\d?\d(\.?\d)*%)" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="VideoClicks_Base_type" >
<xs:sequence>
<xs:element name="ClickTracking" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>URL to request for tracking purposes when user clicks on the video.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="CustomClick" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>URLs to request on custom events such as hotspotted video.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="VideoClicks_Inline_type" >
<xs:complexContent>
<xs:extension base="vast:VideoClicks_Base_type">
<xs:sequence>
<xs:element name="ClickThrough" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>URL to open as destination page when user clicks on the video. This can occur zero to many times. The XSD syntax can't represent that.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Impression_type" >
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Ad server ID for the impression</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CreativeResource_type">
<xs:annotation>
<xs:documentation>A base creative resource type (sec 3.13) for non-video creative content. This specifies static, IFrame, or HTML content, or a combination thereof</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="HTMLResource" minOccurs="0" maxOccurs="unbounded" type="vast:HTMLResource_type">
<xs:annotation>
<xs:documentation>HTML to display the companion element. This can occur zero to many times, but order should not be important.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IFrameResource" minOccurs="0" maxOccurs="unbounded" type="xs:anyURI">
<xs:annotation>
<xs:documentation>URI source for an IFrame to display the companion element. This can occur zero to many times, but order should not be important.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="StaticResource" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>URI to a static file, such as an image or SWF file. This can occur zero to many times, but order should not be important.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="creativeType" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>MIME type of static resource</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Icon_type">
<xs:complexContent>
<xs:extension base="vast:CreativeResource_type">
<xs:sequence>
<xs:element name="IconClicks" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="IconClickThrough" minOccurs="0" maxOccurs="1" type="xs:anyURI">
<xs:annotation>
<xs:documentation>URL to open as destination page when user clicks on the icon.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IconClickTracking" minOccurs="0" maxOccurs="unbounded" type="vast:IconClickTracking_type">
<xs:annotation>
<xs:documentation>URLs to ping when user clicks on the the icon.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="IconViewTracking" minOccurs="0" maxOccurs="unbounded" type="xs:anyURI">
<xs:annotation>
<xs:documentation>A URI for the tracking resource file to be called when the icon creative is displayed.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="program" type="xs:string">
<xs:annotation>
<xs:documentation>Program represented in the Icon.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="width" type="xs:integer">
<xs:annotation>
<xs:documentation>Pixel dimensions of icon.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="height" type="xs:integer">
<xs:annotation>
<xs:documentation>Pixel dimensions of icon.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="xPosition">
<xs:annotation>
<xs:documentation>The x-cooridinate of the top, left corner of the icon asset relative to the ad display area</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([0-9]*|left|right)" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="yPosition">
<xs:annotation>
<xs:documentation>The y-cooridinate of the top left corner of the icon asset relative to the ad display area.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([0-9]*|top|bottom)" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="duration" type="xs:time">
<xs:annotation>
<xs:documentation>The duration for which the player must display the icon. Expressed in standard time format hh:mm:ss.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="offset" type="xs:time">
<xs:annotation>
<xs:documentation>Start time at which the player should display the icon. Expressed in standard time format hh:mm:ss.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="apiFramework" type="xs:string">
<xs:annotation>
<xs:documentation>The apiFramework defines the method to use for communication with the icon element</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="pxratio" type="xs:decimal">
<xs:annotation>
<xs:documentation>The pixel ratio for which the icon creative is intended. The pixel ratio is the ratio of physical pixels on the device to the device-independent pixels. An ad intended for display on a device with a pixel ratio that is twice that of a standard 1:1 pixel ratio would use the value "2" Default value is "1"</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CreativeExtensions_type">
<xs:sequence>
<xs:element name="CreativeExtension" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Any valid XML may be included in the Extensions node. This can occur zero to many times.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
</xs:sequence>
<xs:attribute name="type" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>The MIME type of any code that might be included in the extension.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:anyAttribute namespace="##any" processContents="skip" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AdParameters_type">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="xmlEncoded" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>Specifies whether the parameters are XML-encoded</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="HTMLResource_type">
<xs:annotation>
<xs:documentation>The URI to a static creative file to be used for the ad component identified in the parent element, which is either: <NonLinear>, <Companion>, or <Icon>.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:string" />
</xs:simpleContent>
</xs:complexType>
<!-- ============= Linear, NonLinear, Companion - Child content classes for Inline and Wrapper========= -->
<xs:complexType name="Linear_Base_type">
<xs:annotation>
<xs:documentation>Video formatted ad that plays linearly</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Icons" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:all>
<xs:element name="Icon" minOccurs="0" maxOccurs="1" type="vast:Icon_type">
<xs:annotation>
<xs:documentation>Any number of icons representing advertising industry initiatives. This can occur zero to many times. The XSD syntax can't represent that.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="TrackingEvents" minOccurs="0" maxOccurs="1" type="vast:TrackingEvents_type" />
</xs:sequence>
<xs:attribute name="skipoffset" use="optional">
<xs:annotation>
<xs:documentation>The time at which the ad becomes skippable, if absent, the ad is not skippable.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="(\d{2}:[0-5]\d:[0-5]\d(\.\d\d\d)?|1?\d?\d(\.?\d)*%)" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="Linear_Wrapper_type">
<xs:annotation>
<xs:documentation>Video formatted ad that plays linearly</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="vast:Linear_Base_type">
<xs:sequence>
<xs:element name="VideoClicks" minOccurs="0" maxOccurs="1" type="vast:VideoClicks_Base_type" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Linear_Inline_type">
<xs:annotation>
<xs:documentation>Video formatted ad that plays linearly</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="vast:Linear_Base_type">
<xs:sequence>
<xs:element name="AdParameters" minOccurs="0" maxOccurs="1" type="vast:AdParameters_type">
<xs:annotation>
<xs:documentation>Data to be passed into the video ad. Used to pass VAST info to VPAID object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Duration" minOccurs="1" maxOccurs="1" type="xs:time">
<xs:annotation>
<xs:documentation>Duration in standard time format, hh:mm:ss</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MediaFiles" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="MediaFile" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>URI location of linear file. Content must be wrapped in CDATA tag.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional identifier</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="delivery" use="required">
<xs:annotation>
<xs:documentation>Either "progressive" for progressive download protocols (such as HTTP) or "streaming" for streaming protocols.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="streaming" />
<xs:enumeration value="progressive" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="type" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>MIME type. Popular MIME types include, but are not limited to "video/x-ms-wmv" for Windows Media, and "video/x-flv" for Flash Video. Image ads or interactive ads can be included in the MediaFiles section with appropriate Mime types</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="width" type="xs:integer" use="required">
<xs:annotation>
<xs:documentation>Pixel dimensions of video</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="height" type="xs:integer" use="required">
<xs:annotation>
<xs:documentation>Pixel dimensions of video</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="codec" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>The codec used to produce the media file as specified in RFC 4281.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="bitrate" type="xs:integer" use="optional">
<xs:annotation>
<xs:documentation>Bitrate of encoded video in Kbps. If bitrate is supplied, minBitrate and maxBitrate should not be supplied.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="minBitrate" type="xs:integer" use="optional">
<xs:annotation>
<xs:documentation>Minimum bitrate of an adaptive stream in Kbps. If minBitrate is supplied, maxBitrate must be supplied and bitrate should not be supplied.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxBitrate" type="xs:integer" use="optional">
<xs:annotation>
<xs:documentation>Maximum bitrate of an adaptive stream in Kbps. If maxBitrate is supplied, minBitrate must be supplied and bitrate should not be supplied.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="scalable" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>Whether it is acceptable to scale the image.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maintainAspectRatio" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>Whether the ad must have its aspect ratio maintained when scales</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="apiFramework" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>identifies the API needed to execute an interactive media file, but current support is for backward compatibility. Please use the <InteractiveCreativeFile> element to include files that require an API for execution.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Mezzanine" minOccurs="0" maxOccurs="1" type="xs:anyURI">
<xs:annotation>
<xs:documentation>URI location to raw, high-quality media file for high-resolution environments. Content must be wrapped in CDATA tag.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InteractiveCreativeFile" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>For any media file that uses APIs for advanced creative functionality, the InteractivityCreativeFile element is used to identify the file and framework needed to execute advanced functions for the ad.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="type" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Identifies the MIME type of the file provided.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="apiFramework" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>identifies the API needed to execute the Creative file if applicable</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VideoClicks" minOccurs="0" maxOccurs="1" type="vast:VideoClicks_Inline_type" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="NonLinearAd_Base_type">
<xs:annotation>
<xs:documentation>An ad that is overlain on top of video content during playback</xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="NonLinearClickTracking" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>URLs to ping when user clicks on the the non-linear ad unit. This can occur zero to many times (unbounded). The XSD syntax can't represent that.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Identifier provided to ad server for click reports</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<xs:complexType name="NonLinearAd_Inline_type">
<xs:annotation>
<xs:documentation>An ad that is overlain on top of video content during playback</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="vast:CreativeResource_type">
<xs:sequence>
<xs:element name="AdParameters" minOccurs="0" maxOccurs="1" type="vast:AdParameters_type">
<xs:annotation>
<xs:documentation>Custom content used to pass information to ad unit</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="NonLinearClickThrough" minOccurs="0" maxOccurs="1" type="xs:anyURI">
<xs:annotation>
<xs:documentation>URI to advertiser page opened on viewer clicks through.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="NonLinearClickTracking" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>URLs to ping when user clicks on the the non-linear ad unit.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Identifier provided to ad server for click reports</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CompanionAd_type">
<xs:complexContent>
<xs:extension base="vast:CreativeResource_type">
<xs:sequence>
<xs:element name="AdParameters" minOccurs="0" maxOccurs="1" type="vast:AdParameters_type">
<xs:annotation>
<xs:documentation>Data to be passed into the companion ads. The apiFramework defines the method to use for communication (e.g. “FlashVar”)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="AltText" minOccurs="0" maxOccurs="1" type="xs:string">
<xs:annotation>
<xs:documentation>Alt text to be displayed when companion is rendered in HTML environment.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CompanionClickThrough" minOccurs="0" maxOccurs="1" type="xs:anyURI">
<xs:annotation>
<xs:documentation>URL to open as destination page when user clicks on the the companion banner ad.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CompanionClickTracking" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A URI to a tracking resource file used to track a companion clickthrough.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>An id provided by the ad server to track the click in reports.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="CreativeExtensions" minOccurs="0" maxOccurs="1" type="vast:CreativeExtensions_type" />
<xs:element name="TrackingEvents" minOccurs="0" maxOccurs="1" type="vast:TrackingEvents_type">
<xs:annotation>
<xs:documentation>The creativeView should always be requested when present. For Companions creativeView is the only supported event.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Optional identifier</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="width" type="xs:integer" use="required">
<xs:annotation>
<xs:documentation>Pixel dimensions of companion slot</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="height" type="xs:integer" use="required">
<xs:annotation>
<xs:documentation>Pixel dimensions of companion slot</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="assetWidth" type="xs:integer" use="optional">
<xs:annotation>
<xs:documentation>Pixel dimensions of the companion asset</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="assetHeight" type="xs:integer" use="optional">
<xs:annotation>
<xs:documentation>Pixel dimensions of the companion asset</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="expandedWidth" type="xs:integer" use="optional">
<xs:annotation>
<xs:documentation>Pixel dimensions of expanding companion ad when in expanded state</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="expandedHeight" type="xs:integer" use="optional">
<xs:annotation>
<xs:documentation>Pixel dimensions of expanding companion ad when in expanded state</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="apiFramework" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>The apiFramework defines the method to use for communication with the companion</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="adSlotID" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Used to match companion creative to publisher placement areas on the page.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="pxratio" type="xs:decimal">
<xs:annotation>
<xs:documentation>The pixel ratio for which the icon creative is intended. The pixel ratio is the ratio of physical pixels on the device to the device-independent pixels. An ad intended for display on a device with a pixel ratio that is twice that of a standard 1:1 pixel ratio would use the value "2" Default value is "1"</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="CompanionAds_Collection_type">
<xs:sequence>
<xs:element name="Companion" minOccurs="0" maxOccurs="unbounded" type="vast:CompanionAd_type">
<xs:annotation>
<xs:documentation>General subclass type for Companion Ad elements. This can occur zero to many times.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="required" use="optional">
<xs:annotation>
<xs:documentation>How the player should treat a companion ad when multiple are supplied</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="all" />
<xs:enumeration value="any" />
<xs:enumeration value="none" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<!-- ============= Creative Element for under a Wrapper or Inline Element ========= -->
<xs:complexType name="Creative_Base_type">
<xs:attribute name="sequence" type="xs:integer" use="optional">
<xs:annotation>
<xs:documentation>The preferred order in which multiple Creatives should be displayed</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="apiFramework" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Identifies an API needed to execute the creative</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="id" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>A string used to identify the ad server that provides the creative.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="adId" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>To be deprecated in future version of VAST. Ad-ID for the creative (formerly ISCI)</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="Creative_Wrapper_type">
<xs:complexContent>
<xs:extension base="vast:Creative_Base_type">
<xs:sequence>
<xs:element name="CompanionAds" minOccurs="0" maxOccurs="1" type="vast:CompanionAds_Collection_type" />
<xs:element name="Linear" minOccurs="0" maxOccurs="1" type="vast:Linear_Wrapper_type" />
<xs:element name="NonLinearAds" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="TrackingEvents" minOccurs="0" maxOccurs="1" type="vast:TrackingEvents_type" />
<xs:element name="NonLinear" minOccurs="0" maxOccurs="unbounded" type="vast:NonLinearAd_Base_type">
<xs:annotation>
<xs:documentation>Any number of companions in any desired pixel dimensions.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Creative_Inline_type">
<xs:complexContent>
<xs:extension base="vast:Creative_Base_type">
<xs:all>
<xs:element name="CompanionAds" minOccurs="0" maxOccurs="1" type="vast:CompanionAds_Collection_type" />
<xs:element name="CreativeExtensions" minOccurs="0" maxOccurs="1" type="vast:CreativeExtensions_type" />
<xs:element name="Linear" minOccurs="0" maxOccurs="1" type="vast:Linear_Inline_type" />
<xs:element name="NonLinearAds" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="TrackingEvents" minOccurs="0" maxOccurs="1" type="vast:TrackingEvents_type" />
<xs:element name="NonLinear" minOccurs="0" maxOccurs="unbounded" type="vast:NonLinearAd_Inline_type">
<xs:annotation>
<xs:documentation>Any number of companions in any desired pixel dimensions.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UniversalAdId" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>The UniversalAdId is used to provide a unique creative identifier for the purposes of tracking ad creative. This is used for Ad-ID(r) for ads served in the United States.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="idRegistry" type="xs:string" use="required" />
<xs:attribute name="idValue" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ============ Base Definition of Shared Inline or Wrapper ad structure ============ -->
<xs:complexType name="AdDefinitionBase_type">
<xs:annotation>
<xs:documentation>Base type structure used by Inline or Wrapper ad content element types</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="AdSystem" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>Indicates source ad server</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="version" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>Internal version used by ad system</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Error" minOccurs="0" maxOccurs="unbounded" type="xs:anyURI">
<xs:annotation>
<xs:documentation>URL to request if ad does not play due to error</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Extensions" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>XML node for custom extensions, as defined by the ad server. When used, a custom element should be nested under <Extensions> to help separate custom XML elements from VAST elements.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Extension" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>One instance of <Extension> should be used for each custom extension. The type attribute identifies the MIME type of any code provided in the extension.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip" />
</xs:sequence>
<xs:attribute name="type" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>The MIME type of any code that might be included in the extension.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Impression" minOccurs="1" maxOccurs="unbounded" type="vast:Impression_type">
<xs:annotation>
<xs:documentation>URI for impression tracking</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Pricing" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The price of the ad that can be used in real time bidding systems.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="model" use="required">
<xs:annotation>
<xs:documentation>The pricing model used.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="CPC" />
<xs:enumeration value="CPM" />
<xs:enumeration value="CPE" />
<xs:enumeration value="CPV" />
<xs:enumeration value="cpc" />
<xs:enumeration value="cpm" />
<xs:enumeration value="cpe" />
<xs:enumeration value="cpv" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="currency" use="required">
<xs:annotation>
<xs:documentation>Three letter ISO-4217 currency symbol that identifies the currency of the value provied. Ex: USD, GBP, etc.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z]{3}" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ViewableImpression" minOccurs="0" maxOccurs="1" type="vast:ViewableImpression_type" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ViewableImpression_type" >
<xs:annotation>
<xs:documentation>The ViewableImpression element allows for tracking URIs to report viewability</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Viewable" minOccurs="0" maxOccurs="unbounded" type="xs:anyURI">
<xs:annotation>
<xs:documentation>A URI that directs the video player to a tracking resource file that the video player should request at the time that criteria is met for a viewable impression. This can occur zero to many times.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="NotViewable" minOccurs="0" maxOccurs="unbounded" type="xs:anyURI">
<xs:annotation>
<xs:documentation>A URI that directs the video player to a tracking resource file that the video player should request if the ad is executed but never meets criteria for a viewable impression.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ViewUndetermined" minOccurs="0" maxOccurs="unbounded" type="xs:anyURI">
<xs:annotation>
<xs:documentation>A URI that directs the video player to a tracking resource file that the video player should request if the player cannot determine whether criteria is met for a viewable impression. This can occur zero to many times.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>An ad server id for the impression. Impression resources of the same id should be requested at the same time or as close in time as possible to help prevent discrepancies.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ============ Simple Verification type used under Wrapper elements =============== -->
<xs:complexType name="Verification_Wrapper_type" >
<xs:annotation>
<xs:documentation>Verification elements are nested under AdVerifications. The Verification element is used to contain the JavaScript or Flash code used to collect data. Multiple Verification elements may be used in cases where more than one verification vendor needs to collect data or when different API frameworks are used.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="ViewableImpression" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the event to track for the element. The creativeView should always be requested when present.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="vendor" type="xs:string" use="optional" />
</xs:complexType>
<!-- ============ Verification type used under Inline elements =============== -->
<xs:complexType name="Verification_Inline_type">
<xs:annotation>
<xs:documentation>Verification elements are nested under AdVerifications. The Verification element is used to contain the JavaScript or Flash code used to collect data. Multiple Verification elements may be used in cases where more than one verification vendor needs to collect data or when different API frameworks are used. When included, verification contents must be executed (if possible) BEFORE the media file or interactive creative file is executed, to ensure verification can track ad play as intended.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="FlashResource" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="apiFramework" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="JavaScriptResource" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="apiFramework" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ViewableImpression" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>The name of the event to track for the element. The creativeView should always be requested when present.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attribute name="id" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="vendor" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>The home page URL for the verification service provider that supplies the resource file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<!-- ========== Definition of the AdVerifications element type ========== -->
<xs:complexType name="AdVerifications_Wrapper_type" >
<xs:annotation>
<xs:documentation>The AdVerification element is used to initiate a controlled container where code can be executed for collecting data to verify ad playback details.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Verification" minOccurs="0" maxOccurs="unbounded" type="vast:Verification_Wrapper_type" />
</xs:sequence>
</xs:complexType>
<!-- ========== Definition of the AdVerifications Inline element type ========== -->
<xs:complexType name="AdVerifications_Inline_type" >
<xs:annotation>
<xs:documentation>The AdVerification element is used to initiate a controlled container where code can be executed for collecting data to verify ad playback details.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Verification" minOccurs="0" maxOccurs="unbounded" type="vast:Verification_Inline_type" />
</xs:sequence>
</xs:complexType>
<!-- ========== Definition of the Wrapper element type ========== -->
<xs:complexType name="Wrapper_type">
<xs:complexContent>
<xs:extension base="vast:AdDefinitionBase_type">
<xs:sequence>
<xs:element name="AdVerifications" minOccurs="0" maxOccurs="1" type="vast:AdVerifications_Wrapper_type" />
<xs:element name="Creatives" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>A container for one or more Creative elements used to provide creative files for ad.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Creative" minOccurs="1" maxOccurs="unbounded" type="vast:Creative_Wrapper_type" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VASTAdTagURI" minOccurs="1" maxOccurs="1" type="xs:anyURI">
<xs:annotation>
<xs:documentation>A URI to another VAST response that may be another VAST Wrapper or a VAST InLine ad.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="followAdditionalWrappers" type="xs:boolean">
<xs:annotation>
<xs:documentation>a Boolean value that identifies whether subsequent wrappers after a requested VAST response is allowed.</xs:documentation>
</xs:annotation>
</xs:attribute>