adzerk 0.22 → 0.25

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9d5721cc85181e76e5a21273fffc22da30e16f8581e1cc953ce14634c32ac62
4
- data.tar.gz: fd8dfb8cc373e9a7f3287c342c316b9b421574c5f53f026304b7366df57d3707
3
+ metadata.gz: ffcb892a6b28cd81c1f1946282a4f2866284d59783e574d193a925c11ab54230
4
+ data.tar.gz: '037314390b536552a8c1a4a3468946f748bb58468c2e20f13aa62f6e2dde4a78'
5
5
  SHA512:
6
- metadata.gz: 4ccd6060a84effc885176e2fe6d15af3194c38870b514b9ecc9e9f378c6e9e09ae6e6a827e306b504061334df6d1882511b3d786458068a00b39db511d9b1db3
7
- data.tar.gz: 4a02a699e8dce55be60dbf4ed6a1b2f15781dcb2c5c0db162ae73789a9b661aaa6ac3585546b00847103c134e28d7e5e817a6b41bb49c49d18cd2a83bc07571b
6
+ metadata.gz: 5c19c4ea61713059aeaf05a243ebe68a96c5374933a52924d92b302af09ea243f7fe46ba35c528a95f9dda77a193b3bea0e9160c73355d829899698cbe645ebd
7
+ data.tar.gz: 206228a296d39b363513aed7462f38346c32b5bc8eb5e39e1d550815aa52e3bcce306808195c995a6a545c65bc6428eb7cb1de6ea337877af3d13282b48d3028
data/lib/adzerk/client.rb CHANGED
@@ -27,7 +27,7 @@ module Adzerk
27
27
  @api_key = key
28
28
  @config = DEFAULTS.merge!(opts)
29
29
  @logins = Adzerk::ApiEndpoint.new(:client => self, :endpoint => 'login')
30
- @sites = Adzerk::ApiEndpoint.new(:client => self, :endpoint => 'site')
30
+ @sites = Adzerk::Site.new(:client => self, :endpoint => 'site')
31
31
  @ad_types = Adzerk::ApiEndpoint.new(:client => self, :endpoint => 'adtypes', :subendpoint => 'channel', :datakey => 'adtype')
32
32
  @flights = Adzerk::Flight.new(:client => self, :endpoint => 'flight')
33
33
  @zones = Adzerk::ApiEndpoint.new(:client => self, :endpoint => 'zone')
@@ -104,6 +104,33 @@ module Adzerk
104
104
  send_request(request, uri)
105
105
  end
106
106
 
107
+ def filter(url, version: 'v1')
108
+ uri = URI.parse("#{@config[:host]}#{version}/#{url}")
109
+ Net::HTTP.start(uri.host, uri.port, :use_ssl => true) do |https|
110
+ request = Net::HTTP::Get.new uri
111
+ request.add_field(@config[:header], @api_key)
112
+ request.add_field(SDK_HEADER_NAME, SDK_HEADER_VALUE)
113
+ https.request request do |response|
114
+ arr = []
115
+ response.read_body do |segment|
116
+ str = ''
117
+ str.concat(segment)
118
+ split_str = str.split("\n")
119
+ for line in split_str do
120
+ begin
121
+ obj = JSON.parse(line)
122
+ rescue => exception
123
+ str.concat(line)
124
+ else
125
+ arr.append(obj)
126
+ end
127
+ end
128
+ return arr
129
+ end
130
+ end
131
+ end
132
+ end
133
+
107
134
  def create_creative(data={}, image_path='', version: 'v1')
108
135
  response = nil
109
136
  attempt = 0
@@ -13,5 +13,9 @@ module Adzerk
13
13
  parse_response(@client.get_request(url))
14
14
  end
15
15
 
16
+ def list_for_network(page: 1, pageSize: 500)
17
+ url = "creative?page=#{page}&pageSize=#{pageSize}"
18
+ parse_response(@client.get_request(url))
19
+ end
16
20
  end
17
21
  end
@@ -23,6 +23,11 @@ module Adzerk
23
23
  parse_response(@client.get_request(url))
24
24
  end
25
25
 
26
+ def list_for_network(page: 1, pageSize: 500)
27
+ url = "ad?page=#{page}&#pageSize=#{pageSize}"
28
+ parse_response(@client.get_request(url))
29
+ end
30
+
26
31
  def update(data={})
27
32
  url = "flight/#{data[:flight_id]}/creative/#{data[:id]}"
28
33
  data = { 'creative' => camelize_data(data).to_json }
data/lib/adzerk/flight.rb CHANGED
@@ -30,5 +30,19 @@ module Adzerk
30
30
  end
31
31
  parse_response(@client.get_request(url))
32
32
  end
33
+
34
+ def list_for_advertiser(advertiser_id, is_active = nil)
35
+ url = "advertiser/#{advertiser_id}/flight"
36
+ if !is_active.nil?
37
+ url = "#{url}?isActive=#{is_active}"
38
+ end
39
+ parse_response(@client.get_request(url))
40
+ end
41
+
42
+ def filter_flights(data={})
43
+ query_string = URI.encode_www_form(data)
44
+ url = "fast/flight?#{query_string}"
45
+ @client.filter(url)
46
+ end
33
47
  end
34
48
  end
@@ -0,0 +1,9 @@
1
+ module Adzerk
2
+ class Site < ApiEndpoint
3
+ def filter_sites(data={})
4
+ query_string = URI.encode_www_form(data)
5
+ url = "fast/site?#{query_string}"
6
+ @client.filter(url)
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module Adzerk
2
- VERSION = "0.22"
2
+ VERSION = "0.25"
3
3
  end
data/lib/adzerk.rb CHANGED
@@ -15,6 +15,7 @@ require "adzerk/reporting"
15
15
  require "adzerk/channel_site_map"
16
16
  require "adzerk/channel"
17
17
  require "adzerk/geo_targeting"
18
+ require "adzerk/site"
18
19
  require "adzerk/site_zone_targeting"
19
20
  require "adzerk/category"
20
21
  require "adzerk/client"
@@ -140,6 +140,11 @@ describe "Creative API" do
140
140
  expect(creative[:is_sync]).to eq($new_is_sync)
141
141
  end
142
142
 
143
+ it "should list all creatives for a network" do
144
+ creatives = @creatives.list_for_network()
145
+ expect(creatives.length).to be > 0
146
+ end
147
+
143
148
  it "should delete the creatives after creating it" do
144
149
  response = @creatives.delete($creative_id)
145
150
  expect(response.body).to eq('"Successfully deleted"')
@@ -195,6 +195,11 @@ describe "Creative Flight API" do
195
195
  expect(creative_map[:creative][:is_sync]).to eq($IsSync)
196
196
  end
197
197
 
198
+ it "should list all ads for a network" do
199
+ creative_maps = @creative_maps.list_for_network()
200
+ expect(creative_maps.length).to be > 0
201
+ end
202
+
198
203
  it "should get creative map instant counts" do
199
204
  data = {
200
205
  days: 5
@@ -11,7 +11,7 @@ describe "Flight API" do
11
11
  @priorities = client.priorities
12
12
 
13
13
  advertiser = @advertisers.create(:title => "test")
14
- $advertiserId = advertiser[:id].to_s
14
+ $advertiser_id = advertiser[:id].to_s
15
15
 
16
16
  channel = @channels.create(:title => 'Test Channel ' + rand(1000000).to_s,
17
17
  :commission => '0.0',
@@ -33,7 +33,7 @@ describe "Flight API" do
33
33
  :end_date => "12/31/2011",
34
34
  :is_active => false,
35
35
  :price => '10.00',
36
- :advertiser_id => $advertiserId,
36
+ :advertiser_id => $advertiser_id,
37
37
  :flights => [],
38
38
  :is_deleted => false)
39
39
  $campaign_id = campaign[:id]
@@ -42,7 +42,7 @@ describe "Flight API" do
42
42
  after(:all) do
43
43
  @flights.delete($flight_id_2)
44
44
  @campaigns.delete($campaign_id)
45
- @advertisers.delete($advertiserId)
45
+ @advertisers.delete($advertiser_id)
46
46
  @priorities.delete($priority_id)
47
47
  @channels.delete($channel_id)
48
48
  end
@@ -170,6 +170,16 @@ describe "Flight API" do
170
170
  expect(flights.length).to be > 0
171
171
  end
172
172
 
173
+ it "should list all flights for a campaign" do
174
+ flights = @flights.list_for_campaign($campaign_id)
175
+ expect(flights.length).to be > 0
176
+ end
177
+
178
+ it "should list all flights for an advertiser" do
179
+ flights = @flights.list_for_advertiser($advertiser_id)
180
+ expect(flights.length).to be > 0
181
+ end
182
+
173
183
  it "should get flight instant counts" do
174
184
  data = {
175
185
  start: "2021-04-04",
@@ -179,6 +189,15 @@ describe "Flight API" do
179
189
  expect(count.length).to be > 0
180
190
  end
181
191
 
192
+ it "should filter flights with a name that contains 'test' " do
193
+ data = {
194
+ isActive: true,
195
+ nameContains: "Test"
196
+ }
197
+ response = @flights.filter_flights(data)
198
+ expect(response).not_to eq(nil)
199
+ end
200
+
182
201
  it "should delete a new flight" do
183
202
  response = @flights.delete($flight_id)
184
203
  expect(response.body).to eq('"Successfully deleted"')
@@ -44,6 +44,15 @@ describe "Site API" do
44
44
  expect(result[:items].last[:publisher_account_id].to_s).to eq($site_pub_id)
45
45
  end
46
46
 
47
+ it "should filter sites" do
48
+ data = {
49
+ titleLike: "site",
50
+ urlLike: ".com"
51
+ }
52
+ response = @client.sites.filter_sites(data)
53
+ expect(response).not_to eq(nil)
54
+ end
55
+
47
56
  it "should delete a new site" do
48
57
  response = @client.sites.delete($site_id)
49
58
  expect(response.body).to eq('"Successfully deleted."')
@@ -55,5 +64,4 @@ describe "Site API" do
55
64
  expect(site[:id].to_s).not_to eq($site_id)
56
65
  end
57
66
  end
58
-
59
67
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adzerk
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.22'
4
+ version: '0.25'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kacy Fortner
@@ -17,7 +17,7 @@ authors:
17
17
  autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
- date: 2021-12-08 00:00:00.000000000 Z
20
+ date: 2022-04-20 00:00:00.000000000 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: rspec
@@ -117,6 +117,7 @@ files:
117
117
  - lib/adzerk/publisher.rb
118
118
  - lib/adzerk/reporting.rb
119
119
  - lib/adzerk/scheduled_reporting.rb
120
+ - lib/adzerk/site.rb
120
121
  - lib/adzerk/site_zone_targeting.rb
121
122
  - lib/adzerk/util.rb
122
123
  - lib/adzerk/version.rb