vast 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,103 @@
1
+ require 'test_helper'
2
+
3
+ class AdTest < Test::Unit::TestCase
4
+
5
+ def test_should_initialize_from_document_ad_node
6
+ document_with_ad = example_file('document_with_one_inline_ad.xml')
7
+ document = VAST::Document.parse!(document_with_ad)
8
+
9
+ ad_node = document.root.xpath('.//Ad').first
10
+ ad = VAST::Ad.create(ad_node)
11
+ assert ad.kind_of?(VAST::Ad), "Ad should be kind of Ad"
12
+ end
13
+
14
+ def test_should_initialize_inline_ad
15
+ document_with_inline_ad = example_file('document_with_one_inline_ad.xml')
16
+ document = VAST::Document.parse!(document_with_inline_ad)
17
+
18
+ ad_node = document.root.xpath('.//Ad').first
19
+ ad = VAST::Ad.create(ad_node)
20
+ assert ad.kind_of?(VAST::InlineAd), "Ad should be kind of InLineAd"
21
+ end
22
+
23
+ def test_should_initialize_wrapper_ad
24
+ document_with_wrapper_ad = example_file('document_with_one_wrapper_ad.xml')
25
+ document = VAST::Document.parse!(document_with_wrapper_ad)
26
+
27
+ ad_node = document.root.xpath('.//Ad').first
28
+ ad = VAST::Ad.create(ad_node)
29
+ assert ad.kind_of?(VAST::WrapperAd), "Ad should be kind of WrapperAd"
30
+ end
31
+
32
+ def test_should_raise_error_if_no_ad_type_specified
33
+ document_with_ad_missing_type = example_file('invalid_document_with_missing_ad_type.xml')
34
+ document = VAST::Document.parse(document_with_ad_missing_type)
35
+
36
+ ad_node = document.root.xpath('.//Ad').first
37
+ assert_raise VAST::InvalidAdError, "should raise error" do
38
+ ad = VAST::Ad.create(ad_node)
39
+ end
40
+ end
41
+
42
+ def test_ad_should_know_attributes
43
+ document_file = example_file('document_with_one_inline_ad.xml')
44
+ document = VAST::Document.parse!(document_file)
45
+ ad = document.inline_ads.first
46
+
47
+ assert_equal "601364", ad.id
48
+ assert_equal "Acudeo Compatible", ad.ad_system
49
+ assert_equal URI.parse('http://myErrorURL/error'), ad.error_url
50
+ end
51
+
52
+ def test_ad_should_know_linear_creatives
53
+ document_file = example_file('document_with_one_inline_ad.xml')
54
+ document = VAST::Document.parse!(document_file)
55
+ ad = document.inline_ads.first
56
+
57
+ assert_equal 1, ad.linear_creatives.count
58
+ ad.linear_creatives.each do |creative|
59
+ assert creative.kind_of?(VAST::LinearCreative)
60
+ end
61
+ end
62
+
63
+ def test_ad_should_know_non_linear_creatives
64
+ document_file = example_file('document_with_one_inline_ad.xml')
65
+ document = VAST::Document.parse!(document_file)
66
+ ad = document.inline_ads.first
67
+
68
+ assert_equal 1, ad.non_linear_creatives.count
69
+ ad.non_linear_creatives.each do |creative|
70
+ assert creative.kind_of?(VAST::NonLinearCreative)
71
+ end
72
+ end
73
+
74
+ def test_ad_should_know_companion_creatives
75
+ document_file = example_file('document_with_one_inline_ad.xml')
76
+ document = VAST::Document.parse!(document_file)
77
+ ad = document.inline_ads.first
78
+
79
+ assert_equal 2, ad.companion_creatives.count
80
+ ad.companion_creatives.each do |creative|
81
+ assert creative.kind_of?(VAST::CompanionCreative)
82
+ end
83
+ end
84
+
85
+ def test_ad_should_know_its_main_impression
86
+ document_file = example_file('document_with_one_inline_ad.xml')
87
+ document = VAST::Document.parse!(document_file)
88
+ ad = document.inline_ads.first
89
+
90
+ assert ad.impression.kind_of?(URI)
91
+ assert_equal "http://myTrackingURL/impression", ad.impression.to_s
92
+ end
93
+
94
+ def test_ad_should_know_its_impressions
95
+ document_with_two_impressions = example_file('document_with_one_inline_ad.xml')
96
+ document = VAST::Document.parse!(document_with_two_impressions)
97
+ ad = document.inline_ads.first
98
+
99
+ assert_equal 2, ad.impressions.count
100
+ assert_equal "http://myTrackingURL/impression", ad.impressions.first.to_s
101
+ assert_equal "http://myTrackingURL/anotherImpression", ad.impressions.last.to_s
102
+ end
103
+ end
@@ -0,0 +1,35 @@
1
+ require 'test_helper'
2
+
3
+ class CreativeTest < Test::Unit::TestCase
4
+
5
+ def test_should_know_attributes
6
+ document_with_creative = example_file('document_with_one_inline_ad.xml')
7
+ document = VAST::Document.parse!(document_with_creative)
8
+ creative = VAST::Creative.new(document.root.at('Linear'))
9
+
10
+ assert_equal "6012", creative.id
11
+ assert_equal "601364", creative.ad_id
12
+ assert_equal "1", creative.sequence
13
+ assert_equal "params=for&request=gohere", creative.ad_parameters
14
+ end
15
+
16
+ def test_should_know_its_ad
17
+ document_with_creative = example_file('document_with_one_inline_ad.xml')
18
+ document = VAST::Document.parse!(document_with_creative)
19
+ creative = VAST::Creative.new(document.root.at('Linear'))
20
+
21
+ assert creative.ad.kind_of?(VAST::Ad), "Creative should know it's Ad"
22
+ assert_equal creative.source_node.ancestors('Ad').first[:id], creative.ad.id
23
+ end
24
+
25
+ def test_should_know_tracking_urls_for_all_events
26
+ document_with_creative = example_file('document_with_one_inline_ad.xml')
27
+ document = VAST::Document.parse!(document_with_creative)
28
+ creative = document.ads.first.linear_creatives.first
29
+
30
+ assert_equal "http://myTrackingURL/creativeView", creative.tracking_urls[:creative_view].to_s
31
+ assert_equal "http://myTrackingURL/start", creative.tracking_urls[:start].to_s
32
+ ## There are more tracking urls, refer to spec for complete list
33
+ end
34
+
35
+ end
@@ -0,0 +1,72 @@
1
+ require 'test_helper'
2
+
3
+ class DocumentTest < Test::Unit::TestCase
4
+
5
+ def test_should_wrap_nokogiri_xml_document
6
+ document = VAST::Document.new
7
+ assert document.kind_of?(Nokogiri::XML::Document)
8
+ end
9
+
10
+ def test_should_create_valid_document_from_valid_xml_file
11
+ valid_vast_document_file = example_file('document_with_no_ads.xml')
12
+ document = VAST::Document.parse(valid_vast_document_file)
13
+ assert document.valid?
14
+ end
15
+
16
+ def test_should_create_invalid_document_from_invalid_xml_file
17
+ invalid_vast_document_file = example_file('invalid_document.xml')
18
+ document = VAST::Document.parse(invalid_vast_document_file)
19
+ assert !document.valid?
20
+ end
21
+
22
+ def test_should_raise_error_when_bang_parsing_invalid_document
23
+ invalid_vast_document_file = example_file('invalid_document.xml')
24
+ assert_raise VAST::InvalidDocumentError do
25
+ document = VAST::Document.parse!(invalid_vast_document_file)
26
+ end
27
+ end
28
+
29
+ def test_empty_document_should_have_no_ads
30
+ document_with_no_ads = example_file('document_with_no_ads.xml')
31
+ document = VAST::Document.parse!(document_with_no_ads)
32
+ assert_equal [], document.ads
33
+ end
34
+
35
+ def test_document_with_one_ad
36
+ document_with_one_ad = example_file('document_with_one_inline_ad.xml')
37
+ document = VAST::Document.parse!(document_with_one_ad)
38
+
39
+ assert_equal 1, document.ads.count
40
+ assert document.ads.first.kind_of?(VAST::InlineAd)
41
+ end
42
+
43
+ def test_document_with_more_than_one_ads
44
+ document_with_two_ads = example_file('document_with_two_inline_ads.xml')
45
+ document = VAST::Document.parse!(document_with_two_ads)
46
+
47
+ assert_equal 2, document.ads.count
48
+ document.ads.each do |ad|
49
+ assert ad.kind_of?(VAST::Ad)
50
+ end
51
+ end
52
+
53
+ def test_document_should_know_inline_ads
54
+ document_file = example_file('document_with_one_inline_and_one_wrapper_ad.xml')
55
+ document = VAST::Document.parse!(document_file)
56
+
57
+ assert_equal 1, document.inline_ads.count
58
+ document.inline_ads.each do |ad|
59
+ assert ad.kind_of?(VAST::InlineAd)
60
+ end
61
+ end
62
+
63
+ def test_document_should_know_wrapper_ads
64
+ document_file = example_file('document_with_one_inline_and_one_wrapper_ad.xml')
65
+ document = VAST::Document.parse!(document_file)
66
+
67
+ assert_equal 1, document.wrapper_ads.count
68
+ document.wrapper_ads.each do |ad|
69
+ assert ad.kind_of?(VAST::WrapperAd)
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,3 @@
1
+ <!-- Most basic valid VAST document -->
2
+ <VAST version="2.0">
3
+ </VAST>
@@ -0,0 +1,80 @@
1
+ <!-- VAST document with one InLine ad -->
2
+ <VAST version="2.0">
3
+
4
+ <Ad id="601364">
5
+ <InLine>
6
+ <AdSystem>Acudeo Compatible</AdSystem>
7
+ <AdTitle>VAST 2.0 Instream Test 1</AdTitle>
8
+ <Description>VAST 2.0 Instream Test 1</Description>
9
+ <Survey><![CDATA[http://mySurveyURL/survey]]></Survey>
10
+ <Error><![CDATA[http://myErrorURL/error]]></Error>
11
+
12
+ <Impression id="first"><![CDATA[http://myTrackingURL/impression]]></Impression>
13
+ <Impression id="second"><![CDATA[http://myTrackingURL/anotherImpression]]></Impression>
14
+ <Creatives>
15
+ <Creative id="6012" AdID="601364" sequence="1">
16
+ <Linear>
17
+ <Duration>00:00:30</Duration>
18
+ <TrackingEvents>
19
+ <Tracking event="creativeView"><![CDATA[http://myTrackingURL/creativeView]]></Tracking>
20
+
21
+ <Tracking event="start"><![CDATA[http://myTrackingURL/start]]></Tracking>
22
+ <Tracking event="midpoint"><![CDATA[http://myTrackingURL/midpoint]]></Tracking>
23
+ <Tracking event="firstQuartile"><![CDATA[http://myTrackingURL/firstQuartile]]></Tracking>
24
+ <Tracking event="thirdQuartile"><![CDATA[http://myTrackingURL/thirdQuartile]]></Tracking>
25
+ <Tracking event="complete"><![CDATA[http://myTrackingURL/complete]]></Tracking>
26
+ <Tracking event="mute"><![CDATA[http://myTrackingURL/mute]]></Tracking>
27
+ <Tracking event="unmute"><![CDATA[http://myTrackingURL/unmute]]></Tracking>
28
+ <Tracking event="pause"><![CDATA[http://myTrackingURL/pause]]></Tracking>
29
+ <Tracking event="rewind"><![CDATA[http://myTrackingURL/rewind]]></Tracking>
30
+ <Tracking event="resume"><![CDATA[http://myTrackingURL/resume]]></Tracking>
31
+ <Tracking event="fullscreen"><![CDATA[http://myTrackingURL/fullscreen]]></Tracking>
32
+ <Tracking event="expand"><![CDATA[http://myTrackingURL/expand]]></Tracking>
33
+ <Tracking event="collapse"><![CDATA[http://myTrackingURL/collapse]]></Tracking>
34
+ <Tracking event="acceptInvitation"><![CDATA[http://myTrackingURL/acceptInvitation]]></Tracking>
35
+ <Tracking event="close"><![CDATA[http://myTrackingURL/close]]></Tracking>
36
+ </TrackingEvents>
37
+ <AdParameters><![CDATA[params=for&request=gohere]]></AdParameters>
38
+ <VideoClicks>
39
+ <ClickThrough><![CDATA[http://www.tremormedia.com]]></ClickThrough>
40
+ <ClickTracking id="first"><![CDATA[http://myTrackingURL/click1]]></ClickTracking>
41
+ <ClickTracking id="second"><![CDATA[http://myTrackingURL/click2]]></ClickTracking>
42
+ <CustomClick id="customOne"><![CDATA[http://myTrackingURL/custom1]]></CustomClick>
43
+ <CustomClick id="customTwo"><![CDATA[http://myTrackingURL/custom2]]></CustomClick>
44
+ </VideoClicks>
45
+ <MediaFiles>
46
+ <MediaFile id="firstFile" delivery="progressive" type="video/x-flv" bitrate="500" width="400" height="300" scalable="true" maintainAspectRatio="true"><![CDATA[http://cdnp.tremormedia.com/video/acudeo/Carrot_400x300_500kb.flv]]></MediaFile>
47
+ </MediaFiles>
48
+ </Linear>
49
+ </Creative>
50
+ <Creative AdID="601364-Companion">
51
+ <CompanionAds>
52
+ <Companion width="300" height="250">
53
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/Blistex1.jpg</StaticResource>
54
+ <TrackingEvents>
55
+ <Tracking event="creativeView">http://myTrackingURL/firstCompanionCreativeView</Tracking>
56
+
57
+ </TrackingEvents>
58
+
59
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
60
+ </Companion>
61
+ <Companion width="728" height="90">
62
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/728x90_banner1.jpg</StaticResource>
63
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
64
+ </Companion>
65
+
66
+ </CompanionAds>
67
+ </Creative>
68
+ <Creative AdID="601365">
69
+ <NonLinearAds>
70
+ <NonLinear width="300" height="50">
71
+ <StaticResource creativeType="image/jpeg"><![CDATA[http://cdn.liverail.com/adasset/228/330/overlay.jpg]]></StaticResource>
72
+ <NonLinearClickThrough><![CDATA[http://t3.liverail.com/?metric=clickthru&pos=1&pid=1331&coid=135&nid=0&cid=330&kid=228&vid=&amid=&cc=default&pp=&url=&cb=9185&x=&y=&xy=&redirect=http%3A%2F%2Fliverail.com%2F]]></NonLinearClickThrough>
73
+ </NonLinear>
74
+ </NonLinearAds>
75
+ </Creative>
76
+ </Creatives>
77
+ </InLine>
78
+ </Ad>
79
+
80
+ </VAST>
@@ -0,0 +1,89 @@
1
+ <!-- VAST document with one InLine ad and one Wrapper ad-->
2
+ <VAST version="2.0">
3
+ <Ad id="601364">
4
+ <InLine>
5
+ <AdSystem>Acudeo Compatible</AdSystem>
6
+ <AdTitle>VAST 2.0 Instream Test 1</AdTitle>
7
+ <Description>VAST 2.0 Instream Test 1</Description>
8
+ <Error>http://myErrorURL/error</Error>
9
+
10
+ <Impression>http://myTrackingURL/impression</Impression>
11
+ <Creatives>
12
+ <Creative AdID="601364">
13
+ <Linear>
14
+ <Duration>00:00:30</Duration>
15
+ <TrackingEvents>
16
+ <Tracking event="creativeView">http://myTrackingURL/creativeView</Tracking>
17
+
18
+ <Tracking event="start">http://myTrackingURL/start</Tracking>
19
+ <Tracking event="midpoint">http://myTrackingURL/midpoint</Tracking>
20
+ <Tracking event="firstQuartile">http://myTrackingURL/firstQuartile</Tracking>
21
+ <Tracking event="thirdQuartile">http://myTrackingURL/thirdQuartile</Tracking>
22
+ <Tracking event="complete">http://myTrackingURL/complete</Tracking>
23
+ </TrackingEvents>
24
+
25
+ <VideoClicks>
26
+ <ClickThrough>http://www.tremormedia.com</ClickThrough>
27
+ <ClickTracking>http://myTrackingURL/click</ClickTracking>
28
+ </VideoClicks>
29
+ <MediaFiles>
30
+ <MediaFile delivery="progressive" type="video/x-flv" bitrate="500" width="400" height="300" scalable="true" maintainAspectRatio="true">http://cdnp.tremormedia.com/video/acudeo/Carrot_400x300_500kb.flv</MediaFile>
31
+ </MediaFiles>
32
+
33
+ </Linear>
34
+ </Creative>
35
+ <Creative AdID="601364-Companion">
36
+ <CompanionAds>
37
+ <Companion width="300" height="250">
38
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/Blistex1.jpg</StaticResource>
39
+ <TrackingEvents>
40
+ <Tracking event="creativeView">http://myTrackingURL/firstCompanionCreativeView</Tracking>
41
+
42
+ </TrackingEvents>
43
+
44
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
45
+ </Companion>
46
+ <Companion width="728" height="90">
47
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/728x90_banner1.jpg</StaticResource>
48
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
49
+ </Companion>
50
+
51
+ </CompanionAds>
52
+ </Creative>
53
+ </Creatives>
54
+ </InLine>
55
+ </Ad>
56
+ <Ad id="602833">
57
+ <Wrapper>
58
+ <AdSystem>Acudeo Compatible</AdSystem>
59
+ <VASTAdTagURI>http://demo.tremormedia.com/proddev/vast/vast_inline_linear.xml</VASTAdTagURI>
60
+ <Impression>http://myTrackingURL/wrapper/impression</Impression>
61
+ <Creatives>
62
+
63
+ <Creative AdID="602833">
64
+ <Linear>
65
+ <TrackingEvents>
66
+ </TrackingEvents>
67
+ </Linear>
68
+ </Creative>
69
+ <Creative AdID="602833-Companion">
70
+ <CompanionAds>
71
+ <Companion width="300" height="250">
72
+
73
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/300x250_banner1.jpg</StaticResource>
74
+ <TrackingEvents>
75
+ <Tracking event="creativeView">http://myTrackingURL/wrapper/firstCompanionCreativeView</Tracking>
76
+ </TrackingEvents>
77
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
78
+ </Companion>
79
+ <Companion width="728" height="90">
80
+
81
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/728x90_banner1.jpg</StaticResource>
82
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
83
+ </Companion>
84
+ </CompanionAds>
85
+ </Creative>
86
+ </Creatives>
87
+ </Wrapper>
88
+ </Ad>
89
+ </VAST>
@@ -0,0 +1,38 @@
1
+ <!-- VAST document with one Wrapper ad -->
2
+ <?xml version="1.0" encoding="UTF-8"?>
3
+ <VAST version="2.0">
4
+ <Ad id="602833">
5
+ <Wrapper>
6
+ <AdSystem>Acudeo Compatible</AdSystem>
7
+ <VASTAdTagURI>http://demo.tremormedia.com/proddev/vast/vast_inline_linear.xml</VASTAdTagURI>
8
+ <Impression>http://myTrackingURL/wrapper/impression</Impression>
9
+ <Creatives>
10
+
11
+ <Creative AdID="602833">
12
+ <Linear>
13
+ <TrackingEvents>
14
+ </TrackingEvents>
15
+ </Linear>
16
+ </Creative>
17
+ <Creative AdID="602833-Companion">
18
+ <CompanionAds>
19
+ <Companion width="300" height="250">
20
+
21
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/300x250_banner1.jpg</StaticResource>
22
+ <TrackingEvents>
23
+ <Tracking event="creativeView">http://myTrackingURL/wrapper/firstCompanionCreativeView</Tracking>
24
+ </TrackingEvents>
25
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
26
+ </Companion>
27
+ <Companion width="728" height="90">
28
+
29
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/728x90_banner1.jpg</StaticResource>
30
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
31
+ </Companion>
32
+ </CompanionAds>
33
+ </Creative>
34
+ </Creatives>
35
+ </Wrapper>
36
+ </Ad>
37
+
38
+ </VAST>
@@ -0,0 +1,111 @@
1
+ <!-- VAST document with two InLine ads -->
2
+ <VAST version="2.0">
3
+ <Ad id="601364">
4
+ <InLine>
5
+ <AdSystem>Acudeo Compatible</AdSystem>
6
+ <AdTitle>VAST 2.0 Instream Test 1</AdTitle>
7
+ <Description>VAST 2.0 Instream Test 1</Description>
8
+ <Error>http://myErrorURL/error</Error>
9
+
10
+ <Impression>http://myTrackingURL/impression</Impression>
11
+ <Creatives>
12
+ <Creative AdID="601364">
13
+ <Linear>
14
+ <Duration>00:00:30</Duration>
15
+ <TrackingEvents>
16
+ <Tracking event="creativeView">http://myTrackingURL/creativeView</Tracking>
17
+
18
+ <Tracking event="start">http://myTrackingURL/start</Tracking>
19
+ <Tracking event="midpoint">http://myTrackingURL/midpoint</Tracking>
20
+ <Tracking event="firstQuartile">http://myTrackingURL/firstQuartile</Tracking>
21
+ <Tracking event="thirdQuartile">http://myTrackingURL/thirdQuartile</Tracking>
22
+ <Tracking event="complete">http://myTrackingURL/complete</Tracking>
23
+ </TrackingEvents>
24
+
25
+ <VideoClicks>
26
+ <ClickThrough>http://www.tremormedia.com</ClickThrough>
27
+ <ClickTracking>http://myTrackingURL/click</ClickTracking>
28
+ </VideoClicks>
29
+ <MediaFiles>
30
+ <MediaFile delivery="progressive" type="video/x-flv" bitrate="500" width="400" height="300" scalable="true" maintainAspectRatio="true">http://cdnp.tremormedia.com/video/acudeo/Carrot_400x300_500kb.flv</MediaFile>
31
+ </MediaFiles>
32
+
33
+ </Linear>
34
+ </Creative>
35
+ <Creative AdID="601364-Companion">
36
+ <CompanionAds>
37
+ <Companion width="300" height="250">
38
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/Blistex1.jpg</StaticResource>
39
+ <TrackingEvents>
40
+ <Tracking event="creativeView">http://myTrackingURL/firstCompanionCreativeView</Tracking>
41
+
42
+ </TrackingEvents>
43
+
44
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
45
+ </Companion>
46
+ <Companion width="728" height="90">
47
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/728x90_banner1.jpg</StaticResource>
48
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
49
+ </Companion>
50
+
51
+ </CompanionAds>
52
+ </Creative>
53
+ </Creatives>
54
+ </InLine>
55
+ </Ad>
56
+
57
+ <Ad id="601365">
58
+ <InLine>
59
+ <AdSystem>Acudeo Compatible</AdSystem>
60
+ <AdTitle>VAST 2.0 Instream Test 1</AdTitle>
61
+ <Description>VAST 2.0 Instream Test 1</Description>
62
+ <Error>http://myErrorURL/error</Error>
63
+
64
+ <Impression>http://myTrackingURL/impression</Impression>
65
+ <Creatives>
66
+ <Creative AdID="601365">
67
+ <Linear>
68
+ <Duration>00:00:30</Duration>
69
+ <TrackingEvents>
70
+ <Tracking event="creativeView">http://myTrackingURL/creativeView</Tracking>
71
+
72
+ <Tracking event="start">http://myTrackingURL/start</Tracking>
73
+ <Tracking event="midpoint">http://myTrackingURL/midpoint</Tracking>
74
+ <Tracking event="firstQuartile">http://myTrackingURL/firstQuartile</Tracking>
75
+ <Tracking event="thirdQuartile">http://myTrackingURL/thirdQuartile</Tracking>
76
+ <Tracking event="complete">http://myTrackingURL/complete</Tracking>
77
+ </TrackingEvents>
78
+
79
+ <VideoClicks>
80
+ <ClickThrough>http://www.tremormedia.com</ClickThrough>
81
+ <ClickTracking>http://myTrackingURL/click</ClickTracking>
82
+ </VideoClicks>
83
+ <MediaFiles>
84
+ <MediaFile delivery="progressive" type="video/x-flv" bitrate="500" width="400" height="300" scalable="true" maintainAspectRatio="true">http://cdnp.tremormedia.com/video/acudeo/Carrot_400x300_500kb.flv</MediaFile>
85
+ </MediaFiles>
86
+
87
+ </Linear>
88
+ </Creative>
89
+ <Creative AdID="601365-Companion">
90
+ <CompanionAds>
91
+ <Companion width="300" height="250">
92
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/Blistex1.jpg</StaticResource>
93
+ <TrackingEvents>
94
+ <Tracking event="creativeView">http://myTrackingURL/firstCompanionCreativeView</Tracking>
95
+
96
+ </TrackingEvents>
97
+
98
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
99
+ </Companion>
100
+ <Companion width="728" height="90">
101
+ <StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/728x90_banner1.jpg</StaticResource>
102
+ <CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
103
+ </Companion>
104
+
105
+ </CompanionAds>
106
+ </Creative>
107
+ </Creatives>
108
+ </InLine>
109
+ </Ad>
110
+
111
+ </VAST>