ruby-vast 1.0.6
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.
- checksums.yaml +7 -0
- data/LICENSE +20 -0
- data/README.rdoc +55 -0
- data/lib/ruby-vast.rb +1 -0
- data/lib/vast.rb +33 -0
- data/lib/vast/ad.rb +103 -0
- data/lib/vast/companion_creative.rb +81 -0
- data/lib/vast/creative.rb +62 -0
- data/lib/vast/document.rb +71 -0
- data/lib/vast/element.rb +9 -0
- data/lib/vast/extension.rb +18 -0
- data/lib/vast/icon.rb +87 -0
- data/lib/vast/inline_ad.rb +22 -0
- data/lib/vast/linear_creative.rb +57 -0
- data/lib/vast/mediafile.rb +56 -0
- data/lib/vast/non_linear_creative.rb +97 -0
- data/lib/vast/version.rb +3 -0
- data/lib/vast/wrapper_ad.rb +19 -0
- data/lib/vast3_draft.xsd +1036 -0
- data/lib/vast_2.0.1.xsd +643 -0
- data/test/ad_test.rb +122 -0
- data/test/companion_creative_test.rb +38 -0
- data/test/creative_test.rb +35 -0
- data/test/document_test.rb +72 -0
- data/test/examples/document_with_no_ads.xml +3 -0
- data/test/examples/document_with_one_inline_ad.xml +121 -0
- data/test/examples/document_with_one_inline_and_one_wrapper_ad.xml +105 -0
- data/test/examples/document_with_one_wrapper_ad.xml +40 -0
- data/test/examples/document_with_two_inline_ads.xml +120 -0
- data/test/examples/invalid_document.xml +3 -0
- data/test/examples/invalid_document_with_missing_ad_type.xml +58 -0
- data/test/examples/invalid_document_with_missing_creative_type.xml +39 -0
- data/test/examples/vast3_inline.xml +86 -0
- data/test/extension_test.rb +20 -0
- data/test/inline_ad_test.rb +14 -0
- data/test/linear_creative_test.rb +26 -0
- data/test/mediafile_test.rb +20 -0
- data/test/non_linear_creative_test.rb +39 -0
- data/test/test_helper.rb +13 -0
- data/test/vast3_inline_ad_test.rb +23 -0
- data/test/wrapper_ad_test.rb +16 -0
- metadata +99 -0
data/test/ad_test.rb
ADDED
@@ -0,0 +1,122 @@
|
|
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_first_linear_creative
|
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 ad.linear_creative.id, ad.linear_creatives.first.id
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_ad_should_know_non_linear_creatives
|
72
|
+
document_file = example_file('document_with_one_inline_ad.xml')
|
73
|
+
document = VAST::Document.parse!(document_file)
|
74
|
+
ad = document.inline_ads.first
|
75
|
+
|
76
|
+
assert_equal 2, ad.non_linear_creatives.count
|
77
|
+
ad.non_linear_creatives.each do |creative|
|
78
|
+
assert creative.kind_of?(VAST::NonLinearCreative)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_ad_should_know_companion_creatives
|
83
|
+
document_file = example_file('document_with_one_inline_ad.xml')
|
84
|
+
document = VAST::Document.parse!(document_file)
|
85
|
+
ad = document.inline_ads.first
|
86
|
+
|
87
|
+
assert_equal 2, ad.companion_creatives.count
|
88
|
+
ad.companion_creatives.each do |creative|
|
89
|
+
assert creative.kind_of?(VAST::CompanionCreative)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_ad_should_know_its_main_impression
|
94
|
+
document_file = example_file('document_with_one_inline_ad.xml')
|
95
|
+
document = VAST::Document.parse!(document_file)
|
96
|
+
ad = document.inline_ads.first
|
97
|
+
|
98
|
+
assert ad.impression.kind_of?(URI)
|
99
|
+
assert_equal "http://myTrackingURL/impression", ad.impression.to_s
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_ad_should_know_its_impressions
|
103
|
+
document_with_two_impressions = example_file('document_with_one_inline_ad.xml')
|
104
|
+
document = VAST::Document.parse!(document_with_two_impressions)
|
105
|
+
ad = document.inline_ads.first
|
106
|
+
|
107
|
+
assert_equal 2, ad.impressions.count
|
108
|
+
assert_equal "http://myTrackingURL/impression", ad.impressions.first.to_s
|
109
|
+
assert_equal "http://myTrackingURL/anotherImpression", ad.impressions.last.to_s
|
110
|
+
end
|
111
|
+
|
112
|
+
def test_extensions
|
113
|
+
document_file = example_file('document_with_one_inline_ad.xml')
|
114
|
+
document = VAST::Document.parse!(document_file)
|
115
|
+
ad = document.inline_ads.first
|
116
|
+
|
117
|
+
assert_equal 2, ad.extensions.count
|
118
|
+
ad.extensions.each do |extension|
|
119
|
+
assert extension.kind_of?(VAST::Extension)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class CompanionCreativeTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_should_know_attributes
|
6
|
+
document_file = example_file('document_with_one_inline_ad.xml')
|
7
|
+
document = VAST::Document.parse!(document_file)
|
8
|
+
creative = document.inline_ads.first.companion_creatives.first
|
9
|
+
|
10
|
+
assert_equal "big_box", creative.id
|
11
|
+
assert_equal 300, creative.width
|
12
|
+
assert_equal 250, creative.height
|
13
|
+
assert_equal 600, creative.expanded_width
|
14
|
+
assert_equal 500, creative.expanded_height
|
15
|
+
assert_equal "http://www.tremormedia.com", creative.click_through_url.to_s
|
16
|
+
assert_equal "Display this instead of the ad", creative.alt_text
|
17
|
+
assert_equal "VPAID", creative.api_framework
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_should_know_static_resource
|
21
|
+
document_file = example_file('document_with_one_inline_ad.xml')
|
22
|
+
document = VAST::Document.parse!(document_file)
|
23
|
+
creative_with_static_resource = document.inline_ads.first.companion_creatives.first
|
24
|
+
|
25
|
+
assert_equal :static, creative_with_static_resource.resource_type
|
26
|
+
assert_equal "image/jpeg", creative_with_static_resource.creative_type
|
27
|
+
assert_equal "http://demo.tremormedia.com/proddev/vast/Blistex1.jpg", creative_with_static_resource.resource_url.to_s
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_should_know_iframe_resource
|
31
|
+
document_file = example_file('document_with_one_inline_ad.xml')
|
32
|
+
document = VAST::Document.parse!(document_file)
|
33
|
+
creative_with_iframe_resource = document.inline_ads.first.companion_creatives.last
|
34
|
+
|
35
|
+
assert_equal :iframe, creative_with_iframe_resource.resource_type
|
36
|
+
assert_equal "http://ad3.liverail.com/util/companions.php", creative_with_iframe_resource.resource_url.to_s
|
37
|
+
end
|
38
|
+
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].collect{ |url| url.to_s }
|
31
|
+
assert_equal ["http://myTrackingURL/start1", "http://myTrackingURL/start2"], creative.tracking_urls[:start].collect{ |url| url.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,121 @@
|
|
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>
|
10
|
+
<![CDATA[http://mySurveyURL/survey]]>
|
11
|
+
</Survey>
|
12
|
+
<Error>
|
13
|
+
<![CDATA[http://myErrorURL/error]]>
|
14
|
+
</Error>
|
15
|
+
|
16
|
+
<Impression id="first">
|
17
|
+
<![CDATA[http://myTrackingURL/impression]]>
|
18
|
+
</Impression>
|
19
|
+
<Impression id="second">
|
20
|
+
<![CDATA[http://myTrackingURL/anotherImpression]]>
|
21
|
+
</Impression>
|
22
|
+
<Creatives>
|
23
|
+
<Creative id="6012" AdID="601364" sequence="1">
|
24
|
+
<Linear>
|
25
|
+
<Duration>00:00:30</Duration>
|
26
|
+
<TrackingEvents>
|
27
|
+
<Tracking event="creativeView"><![CDATA[http://myTrackingURL/creativeView]]></Tracking>
|
28
|
+
|
29
|
+
<Tracking event="start">
|
30
|
+
<![CDATA[http://myTrackingURL/start1]]>
|
31
|
+
</Tracking>
|
32
|
+
<Tracking event="start"><![CDATA[http://myTrackingURL/start2]]></Tracking>
|
33
|
+
<Tracking event="midpoint"><![CDATA[http://myTrackingURL/midpoint]]></Tracking>
|
34
|
+
<Tracking event="firstQuartile"><![CDATA[http://myTrackingURL/firstQuartile]]></Tracking>
|
35
|
+
<Tracking event="thirdQuartile"><![CDATA[http://myTrackingURL/thirdQuartile]]></Tracking>
|
36
|
+
<Tracking event="complete"><![CDATA[http://myTrackingURL/complete]]></Tracking>
|
37
|
+
<Tracking event="mute"><![CDATA[http://myTrackingURL/mute]]></Tracking>
|
38
|
+
<Tracking event="unmute"><![CDATA[http://myTrackingURL/unmute]]></Tracking>
|
39
|
+
<Tracking event="pause"><![CDATA[http://myTrackingURL/pause]]></Tracking>
|
40
|
+
<Tracking event="rewind"><![CDATA[http://myTrackingURL/rewind]]></Tracking>
|
41
|
+
<Tracking event="resume"><![CDATA[http://myTrackingURL/resume]]></Tracking>
|
42
|
+
<Tracking event="fullscreen"><![CDATA[http://myTrackingURL/fullscreen]]></Tracking>
|
43
|
+
<Tracking event="expand"><![CDATA[http://myTrackingURL/expand]]></Tracking>
|
44
|
+
<Tracking event="collapse"><![CDATA[http://myTrackingURL/collapse]]></Tracking>
|
45
|
+
<Tracking event="acceptInvitation"><![CDATA[http://myTrackingURL/acceptInvitation]]></Tracking>
|
46
|
+
<Tracking event="close"><![CDATA[http://myTrackingURL/close]]></Tracking>
|
47
|
+
</TrackingEvents>
|
48
|
+
<AdParameters><![CDATA[params=for&request=gohere]]></AdParameters>
|
49
|
+
<VideoClicks>
|
50
|
+
<ClickThrough>
|
51
|
+
<![CDATA[http://www.tremormedia.com]]>
|
52
|
+
</ClickThrough>
|
53
|
+
<ClickTracking id="first"><![CDATA[http://myTrackingURL/click1]]></ClickTracking>
|
54
|
+
<ClickTracking id="second"><![CDATA[http://myTrackingURL/click2]]></ClickTracking>
|
55
|
+
<CustomClick id="customOne"><![CDATA[http://myTrackingURL/custom1]]></CustomClick>
|
56
|
+
<CustomClick id="customTwo"><![CDATA[http://myTrackingURL/custom2]]></CustomClick>
|
57
|
+
</VideoClicks>
|
58
|
+
<MediaFiles>
|
59
|
+
<MediaFile id="firstFile" delivery="progressive" type="video/x-flv" bitrate="500" width="400" height="300" scalable="true" maintainAspectRatio="true" apiFramework="VPAID">
|
60
|
+
<![CDATA[http://cdnp.tremormedia.com/video/acudeo/Carrot_400x300_500kb.flv]]>
|
61
|
+
</MediaFile>
|
62
|
+
</MediaFiles>
|
63
|
+
</Linear>
|
64
|
+
</Creative>
|
65
|
+
<Creative AdID="601364-Companion">
|
66
|
+
<CompanionAds>
|
67
|
+
<Companion id="big_box" width="300" height="250" expandedWidth="600" expandedHeight="500" apiFramework="VPAID">
|
68
|
+
<StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/Blistex1.jpg</StaticResource>
|
69
|
+
<TrackingEvents>
|
70
|
+
<Tracking event="creativeView">http://myTrackingURL/firstCompanionCreativeView</Tracking>
|
71
|
+
</TrackingEvents>
|
72
|
+
<CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
|
73
|
+
<AltText>Display this instead of the ad</AltText>
|
74
|
+
</Companion>
|
75
|
+
<Companion width="728" height="90">
|
76
|
+
<IFrameResource>
|
77
|
+
<![CDATA[http://ad3.liverail.com/util/companions.php]]>
|
78
|
+
</IFrameResource>
|
79
|
+
<CompanionClickThrough>
|
80
|
+
http://www.tremormedia.com
|
81
|
+
</CompanionClickThrough>
|
82
|
+
</Companion>
|
83
|
+
</CompanionAds>
|
84
|
+
</Creative>
|
85
|
+
<Creative AdID="601365">
|
86
|
+
<NonLinearAds>
|
87
|
+
<NonLinear id="special_overlay" width="300" height="50" expandedWidth="600" expandedHeight="500" apiFramework="VPAID" scalable="true" maintainAspectRatio="true">
|
88
|
+
<StaticResource creativeType="image/jpeg">
|
89
|
+
<![CDATA[http://cdn.liverail.com/adasset/228/330/overlay.jpg]]>
|
90
|
+
</StaticResource>
|
91
|
+
<NonLinearClickThrough>
|
92
|
+
<![CDATA[http://t3.liverail.com]]>
|
93
|
+
</NonLinearClickThrough>
|
94
|
+
</NonLinear>
|
95
|
+
<NonLinear width="728" height="90">
|
96
|
+
<IFrameResource>
|
97
|
+
<![CDATA[http://ad3.liverail.com/util/non_linear.php]]>
|
98
|
+
</IFrameResource>
|
99
|
+
<NonLinearClickThrough>http://www.tremormedia.com</NonLinearClickThrough>
|
100
|
+
</NonLinear>
|
101
|
+
</NonLinearAds>
|
102
|
+
</Creative>
|
103
|
+
</Creatives>
|
104
|
+
<Extensions>
|
105
|
+
<Extension type="DART">
|
106
|
+
<AdServingData>
|
107
|
+
<DeliveryData>
|
108
|
+
<GeoData><![CDATA[ct=CA&st=ON&ac=905&zp=L6V1X9&bw=0&dma=1&city=1869]]></GeoData>
|
109
|
+
</DeliveryData>
|
110
|
+
</AdServingData>
|
111
|
+
</Extension>
|
112
|
+
<Extension type="value">
|
113
|
+
<CostPerThousand currency="CAD">
|
114
|
+
125.00
|
115
|
+
</CostPerThousand>
|
116
|
+
</Extension>
|
117
|
+
</Extensions>
|
118
|
+
</InLine>
|
119
|
+
</Ad>
|
120
|
+
|
121
|
+
</VAST>
|
@@ -0,0 +1,105 @@
|
|
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>
|
11
|
+
<![CDATA[http://myTrackingURL/impression]]>
|
12
|
+
</Impression>
|
13
|
+
<Creatives>
|
14
|
+
<Creative AdID="601364">
|
15
|
+
<Linear>
|
16
|
+
<Duration>00:00:30</Duration>
|
17
|
+
<TrackingEvents>
|
18
|
+
<Tracking event="creativeView">http://myTrackingURL/creativeView</Tracking>
|
19
|
+
|
20
|
+
<Tracking event="start">
|
21
|
+
<![CDATA[http://myTrackingURL/start]]>
|
22
|
+
</Tracking>
|
23
|
+
<Tracking event="midpoint">http://myTrackingURL/midpoint</Tracking>
|
24
|
+
<Tracking event="firstQuartile">http://myTrackingURL/firstQuartile</Tracking>
|
25
|
+
<Tracking event="thirdQuartile">http://myTrackingURL/thirdQuartile</Tracking>
|
26
|
+
<Tracking event="complete">http://myTrackingURL/complete</Tracking>
|
27
|
+
</TrackingEvents>
|
28
|
+
|
29
|
+
<VideoClicks>
|
30
|
+
<ClickThrough>
|
31
|
+
<![CDATA[http://www.tremormedia.com]]>
|
32
|
+
</ClickThrough>
|
33
|
+
<ClickTracking>http://myTrackingURL/click</ClickTracking>
|
34
|
+
</VideoClicks>
|
35
|
+
<MediaFiles>
|
36
|
+
<MediaFile delivery="progressive" type="video/x-flv" bitrate="500" width="400" height="300" scalable="true" maintainAspectRatio="true">
|
37
|
+
<![CDATA[http://cdnp.tremormedia.com/video/acudeo/Carrot_400x300_500kb.flv]]>
|
38
|
+
</MediaFile>
|
39
|
+
</MediaFiles>
|
40
|
+
|
41
|
+
</Linear>
|
42
|
+
</Creative>
|
43
|
+
<Creative AdID="601364-Companion">
|
44
|
+
<CompanionAds>
|
45
|
+
<Companion width="300" height="250">
|
46
|
+
<StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/Blistex1.jpg</StaticResource>
|
47
|
+
<TrackingEvents>
|
48
|
+
<Tracking event="creativeView">
|
49
|
+
<![CDATA[http://myTrackingURL/firstCompanionCreativeView]]>
|
50
|
+
</Tracking>
|
51
|
+
|
52
|
+
</TrackingEvents>
|
53
|
+
|
54
|
+
<CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
|
55
|
+
</Companion>
|
56
|
+
<Companion width="728" height="90">
|
57
|
+
<StaticResource creativeType="image/jpeg">
|
58
|
+
<![CDATA[http://demo.tremormedia.com/proddev/vast/728x90_banner1.jpg]]>
|
59
|
+
</StaticResource>
|
60
|
+
<CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
|
61
|
+
</Companion>
|
62
|
+
|
63
|
+
</CompanionAds>
|
64
|
+
</Creative>
|
65
|
+
</Creatives>
|
66
|
+
</InLine>
|
67
|
+
</Ad>
|
68
|
+
<Ad id="602833">
|
69
|
+
<Wrapper>
|
70
|
+
<AdSystem>Acudeo Compatible</AdSystem>
|
71
|
+
<VASTAdTagURI>http://demo.tremormedia.com/proddev/vast/vast_inline_linear.xml</VASTAdTagURI>
|
72
|
+
<Impression>
|
73
|
+
<![CDATA[http://myTrackingURL/wrapper/impression]]>
|
74
|
+
</Impression>
|
75
|
+
<Creatives>
|
76
|
+
|
77
|
+
<Creative AdID="602833">
|
78
|
+
<Linear>
|
79
|
+
<TrackingEvents>
|
80
|
+
</TrackingEvents>
|
81
|
+
</Linear>
|
82
|
+
</Creative>
|
83
|
+
<Creative AdID="602833-Companion">
|
84
|
+
<CompanionAds>
|
85
|
+
<Companion width="300" height="250">
|
86
|
+
|
87
|
+
<StaticResource creativeType="image/jpeg">
|
88
|
+
<![CDATA[http://demo.tremormedia.com/proddev/vast/300x250_banner1.jpg]]>
|
89
|
+
</StaticResource>
|
90
|
+
<TrackingEvents>
|
91
|
+
<Tracking event="creativeView">http://myTrackingURL/wrapper/firstCompanionCreativeView</Tracking>
|
92
|
+
</TrackingEvents>
|
93
|
+
<CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
|
94
|
+
</Companion>
|
95
|
+
<Companion width="728" height="90">
|
96
|
+
|
97
|
+
<StaticResource creativeType="image/jpeg">http://demo.tremormedia.com/proddev/vast/728x90_banner1.jpg</StaticResource>
|
98
|
+
<CompanionClickThrough>http://www.tremormedia.com</CompanionClickThrough>
|
99
|
+
</Companion>
|
100
|
+
</CompanionAds>
|
101
|
+
</Creative>
|
102
|
+
</Creatives>
|
103
|
+
</Wrapper>
|
104
|
+
</Ad>
|
105
|
+
</VAST>
|