adzerk 0.20 → 0.24

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: 3b868368f7ff6b9f3691cce1f3d7b947c69fd510e8669c882f023533ff25f408
4
- data.tar.gz: 392459714b4aa029c1b64e885e120870065138429cbf2426bf1f24faa106cd2e
3
+ metadata.gz: 754298755f117a405c5b758518c171c5b4e35f678c5814c05601128775f642c7
4
+ data.tar.gz: f54bc96ff203f4f73e05dd3bfa00f790558dc90adb21537a2575e7fbdfc293a7
5
5
  SHA512:
6
- metadata.gz: 889c331be8101a3dad887414b0773ecac75257cba58d095fd39f5259617c5ee1adbd28f72e71234e0cd9b4a1b1bfe7e77e8add9b9e13d14a10f88b3e7018f5f7
7
- data.tar.gz: 2fedbe4e56f4de4c5dcb28b296241a64e8a5f3bc68619cc3a2627d90bf09b368ad013b1ddacb72631f2a816d9c35e23b6c9a43442adf6002330b7672c19af015
6
+ metadata.gz: 03fd7e484cd4ce24838cd3fcfd1968d35a84ff3864ea7a6b01676f5504d1a9f8bbf324c0df9e7561dd97c16878ac221ac44ccf0eb7e144b3f99fa07db91e6165
7
+ data.tar.gz: 3b5852dbd472cc603db4f51d241b1171dd0ff73cc68df85e93e07e37d4afdd938265ca5aed2d1aea4845340885e1de54327632f34300aaf3921f4177f9b4c06b
@@ -16,5 +16,10 @@ module Adzerk
16
16
  url = "advertiser/#{advertiser_id}/creatives?page=#{page}&pageSize=#{pageSize}"
17
17
  parse_response(@client.get_request(url))
18
18
  end
19
+
20
+ def get_conversion_tracking_code(advertiser_id)
21
+ url = "advertiser/#{advertiser_id}/trackingCode"
22
+ parse_response(@client.get_request(url))
23
+ end
19
24
  end
20
25
  end
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
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.20"
2
+ VERSION = "0.24"
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"
@@ -75,6 +75,11 @@ describe "Advertiser API" do
75
75
  expect(advertiser[:is_deleted]).to eq(true)
76
76
  end
77
77
 
78
+ it "should return conversion tracking code" do
79
+ advertiser = @advertisers.get_conversion_tracking_code $advertiser_id
80
+ expect(advertiser).not_to eq(nil)
81
+ end
82
+
78
83
  it "should not update a deleted advertiser" do
79
84
  expect { @advertisers.update(:id => $advertiser_id, :title => "Cocacola") }.to raise_error("This advertiser is deleted.")
80
85
  end
@@ -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.20'
4
+ version: '0.24'
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-06-23 00:00:00.000000000 Z
20
+ date: 2022-02-07 00:00:00.000000000 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: rspec
@@ -79,14 +79,14 @@ dependencies:
79
79
  name: activesupport
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - "~>"
82
+ - - ">="
83
83
  - !ruby/object:Gem::Version
84
84
  version: '5.1'
85
85
  type: :runtime
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - "~>"
89
+ - - ">="
90
90
  - !ruby/object:Gem::Version
91
91
  version: '5.1'
92
92
  description: Ruby library for the Adzerk API
@@ -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