adzerk_decision_sdk 1.0.0.pre.beta.3 → 1.0.0.pre.beta.4
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 +4 -4
- data/Gemfile.lock +6 -6
- data/docs/Placement.md +3 -1
- data/docs/UserdbApi.md +0 -49
- data/lib/adzerk_decision_sdk/api/userdb_api.rb +0 -67
- data/lib/adzerk_decision_sdk/client.rb +2 -2
- data/lib/adzerk_decision_sdk/models/placement.rb +39 -5
- data/lib/adzerk_decision_sdk/pixel_client.rb +8 -2
- data/lib/adzerk_decision_sdk/user_db_client.rb +16 -2
- data/lib/adzerk_decision_sdk/version.rb +1 -1
- data/pkg/adzerk_decision_sdk-1.0.0.pre.beta.3.gem +0 -0
- metadata +3 -5
- data/pkg/adzerk_decision_sdk-1.0.0.gem +0 -0
- data/pkg/adzerk_decision_sdk-1.0.0.pre.beta.1.gem +0 -0
- data/pkg/adzerk_decision_sdk-1.0.0.pre.beta.2.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d830e7e6e25ec7ae418affc0b46b52890aeb194c09eec309f4cf96eea8c1117
|
4
|
+
data.tar.gz: d3ab9c88d2bb6bcda4a10bfa0868144de86392b038dab1896d07ad9cdb5e258f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d7bc469e35b4578389cc518337b495d54df6650bd1c5e97ec00bf333668623da24fb05325a6d15a59bf47dc134cbc1941ac023f117f97668f018ae332340bf40
|
7
|
+
data.tar.gz: cb2e7afe0f9ec11cba6eed0389e2ea81e99b5686e927d297ba15024931c62e69ba6a27736cb8d1f1b8b87cd613a7046f80144f1f611fe145a92c48517a4d1271
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
adzerk_decision_sdk (1.0.0)
|
4
|
+
adzerk_decision_sdk (1.0.0.pre.beta.3)
|
5
5
|
json (~> 2.1, >= 2.1.0)
|
6
6
|
typhoeus (~> 1.0, >= 1.0.1)
|
7
7
|
|
@@ -14,9 +14,9 @@ GEM
|
|
14
14
|
diff-lcs (1.3)
|
15
15
|
ethon (0.12.0)
|
16
16
|
ffi (>= 1.3.0)
|
17
|
-
ffi (1.
|
17
|
+
ffi (1.13.1)
|
18
18
|
jaro_winkler (1.5.4)
|
19
|
-
json (2.3.
|
19
|
+
json (2.3.1)
|
20
20
|
method_source (0.9.2)
|
21
21
|
parallel (1.19.1)
|
22
22
|
parser (2.7.0.2)
|
@@ -29,7 +29,7 @@ GEM
|
|
29
29
|
pry (~> 0.10)
|
30
30
|
psych (3.1.0)
|
31
31
|
rainbow (3.0.0)
|
32
|
-
rake (
|
32
|
+
rake (13.0.1)
|
33
33
|
rspec (3.9.0)
|
34
34
|
rspec-core (~> 3.9.0)
|
35
35
|
rspec-expectations (~> 3.9.0)
|
@@ -52,7 +52,7 @@ GEM
|
|
52
52
|
ruby-progressbar (~> 1.7)
|
53
53
|
unicode-display_width (>= 1.4.0, < 1.6)
|
54
54
|
ruby-progressbar (1.10.1)
|
55
|
-
typhoeus (1.
|
55
|
+
typhoeus (1.4.0)
|
56
56
|
ethon (>= 0.9.0)
|
57
57
|
unicode-display_width (1.5.0)
|
58
58
|
|
@@ -62,7 +62,7 @@ PLATFORMS
|
|
62
62
|
DEPENDENCIES
|
63
63
|
adzerk_decision_sdk!
|
64
64
|
pry-byebug
|
65
|
-
rake (~>
|
65
|
+
rake (~> 13.0.1)
|
66
66
|
rspec (~> 3.6, >= 3.6.0)
|
67
67
|
rubocop (~> 0.66.0)
|
68
68
|
|
data/docs/Placement.md
CHANGED
@@ -20,6 +20,7 @@ Name | Type | Description | Notes
|
|
20
20
|
**count** | **Integer** | (BETA) The number of ads to return per placement. Integer between 1 and 20 | [optional]
|
21
21
|
**proportionality** | **Boolean** | (BETA) If true, fills ads in a multi-winner placement in proportion to the flight's goals | [optional]
|
22
22
|
**ecpm_partition** | **String** | (BETA) The name of the eCPM Partition that should be used to source eCPM data for auctions | [optional]
|
23
|
+
**event_multiplier** | **Integer** | | [optional]
|
23
24
|
|
24
25
|
## Code Sample
|
25
26
|
|
@@ -41,7 +42,8 @@ instance = AdzerkDecisionSdk::Placement.new(div_name: null,
|
|
41
42
|
content_keys: null,
|
42
43
|
count: null,
|
43
44
|
proportionality: null,
|
44
|
-
ecpm_partition: null
|
45
|
+
ecpm_partition: null,
|
46
|
+
event_multiplier: null)
|
45
47
|
```
|
46
48
|
|
47
49
|
|
data/docs/UserdbApi.md
CHANGED
@@ -13,7 +13,6 @@ Method | HTTP request | Description
|
|
13
13
|
[**match_user**](UserdbApi.md#match_user) | **GET** /udb/{networkId}/sync/i.gif |
|
14
14
|
[**opt_out**](UserdbApi.md#opt_out) | **GET** /udb/{networkId}/optout/i.gif |
|
15
15
|
[**read**](UserdbApi.md#read) | **GET** /udb/{networkId}/read |
|
16
|
-
[**set_user_cookie**](UserdbApi.md#set_user_cookie) | **GET** /udb/{networkId}/set/i.gif |
|
17
16
|
|
18
17
|
|
19
18
|
|
@@ -486,51 +485,3 @@ No authorization required
|
|
486
485
|
- **Content-Type**: Not defined
|
487
486
|
- **Accept**: application/json
|
488
487
|
|
489
|
-
|
490
|
-
## set_user_cookie
|
491
|
-
|
492
|
-
> File set_user_cookie(network_id, user_key)
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
Set User Cookie
|
497
|
-
|
498
|
-
### Example
|
499
|
-
|
500
|
-
```ruby
|
501
|
-
# load the gem
|
502
|
-
require 'adzerk_decision_sdk'
|
503
|
-
|
504
|
-
api_instance = AdzerkDecisionSdk::UserdbApi.new
|
505
|
-
network_id = 56 # Integer | Your Network Id
|
506
|
-
user_key = 'user_key_example' # String | UserDB Id for the user
|
507
|
-
|
508
|
-
begin
|
509
|
-
result = api_instance.set_user_cookie(network_id, user_key)
|
510
|
-
p result
|
511
|
-
rescue AdzerkDecisionSdk::ApiError => e
|
512
|
-
puts "Exception when calling UserdbApi->set_user_cookie: #{e}"
|
513
|
-
end
|
514
|
-
```
|
515
|
-
|
516
|
-
### Parameters
|
517
|
-
|
518
|
-
|
519
|
-
Name | Type | Description | Notes
|
520
|
-
------------- | ------------- | ------------- | -------------
|
521
|
-
**network_id** | **Integer**| Your Network Id |
|
522
|
-
**user_key** | **String**| UserDB Id for the user |
|
523
|
-
|
524
|
-
### Return type
|
525
|
-
|
526
|
-
**File**
|
527
|
-
|
528
|
-
### Authorization
|
529
|
-
|
530
|
-
No authorization required
|
531
|
-
|
532
|
-
### HTTP request headers
|
533
|
-
|
534
|
-
- **Content-Type**: Not defined
|
535
|
-
- **Accept**: image/gif
|
536
|
-
|
@@ -660,72 +660,5 @@ module AdzerkDecisionSdk
|
|
660
660
|
end
|
661
661
|
return data, status_code, headers
|
662
662
|
end
|
663
|
-
|
664
|
-
# Set User Cookie
|
665
|
-
# @param network_id [Integer] Your Network Id
|
666
|
-
# @param user_key [String] UserDB Id for the user
|
667
|
-
# @param [Hash] opts the optional parameters
|
668
|
-
# @return [File]
|
669
|
-
def set_user_cookie(network_id, user_key, opts = {})
|
670
|
-
data, _status_code, _headers = set_user_cookie_with_http_info(network_id, user_key, opts)
|
671
|
-
data
|
672
|
-
end
|
673
|
-
|
674
|
-
# Set User Cookie
|
675
|
-
# @param network_id [Integer] Your Network Id
|
676
|
-
# @param user_key [String] UserDB Id for the user
|
677
|
-
# @param [Hash] opts the optional parameters
|
678
|
-
# @return [Array<(File, Integer, Hash)>] File data, response status code and response headers
|
679
|
-
def set_user_cookie_with_http_info(network_id, user_key, opts = {})
|
680
|
-
if @api_client.config.debugging
|
681
|
-
@api_client.config.logger.debug 'Calling API: UserdbApi.set_user_cookie ...'
|
682
|
-
end
|
683
|
-
# verify the required parameter 'network_id' is set
|
684
|
-
if @api_client.config.client_side_validation && network_id.nil?
|
685
|
-
fail ArgumentError, "Missing the required parameter 'network_id' when calling UserdbApi.set_user_cookie"
|
686
|
-
end
|
687
|
-
# verify the required parameter 'user_key' is set
|
688
|
-
if @api_client.config.client_side_validation && user_key.nil?
|
689
|
-
fail ArgumentError, "Missing the required parameter 'user_key' when calling UserdbApi.set_user_cookie"
|
690
|
-
end
|
691
|
-
# resource path
|
692
|
-
local_var_path = '/udb/{networkId}/set/i.gif'.sub('{' + 'networkId' + '}', CGI.escape(network_id.to_s))
|
693
|
-
|
694
|
-
# query parameters
|
695
|
-
query_params = opts[:query_params] || {}
|
696
|
-
query_params[:'userKey'] = user_key
|
697
|
-
|
698
|
-
# header parameters
|
699
|
-
header_params = opts[:header_params] || {}
|
700
|
-
# HTTP header 'Accept' (if needed)
|
701
|
-
header_params['Accept'] = @api_client.select_header_accept(['image/gif'])
|
702
|
-
|
703
|
-
# form parameters
|
704
|
-
form_params = opts[:form_params] || {}
|
705
|
-
|
706
|
-
# http body (model)
|
707
|
-
post_body = opts[:body]
|
708
|
-
|
709
|
-
# return_type
|
710
|
-
return_type = opts[:return_type] || 'File'
|
711
|
-
|
712
|
-
# auth_names
|
713
|
-
auth_names = opts[:auth_names] || []
|
714
|
-
|
715
|
-
new_options = opts.merge(
|
716
|
-
:header_params => header_params,
|
717
|
-
:query_params => query_params,
|
718
|
-
:form_params => form_params,
|
719
|
-
:body => post_body,
|
720
|
-
:auth_names => auth_names,
|
721
|
-
:return_type => return_type
|
722
|
-
)
|
723
|
-
|
724
|
-
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
725
|
-
if @api_client.config.debugging
|
726
|
-
@api_client.config.logger.debug "API called: UserdbApi#set_user_cookie\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
727
|
-
end
|
728
|
-
return data, status_code, headers
|
729
|
-
end
|
730
663
|
end
|
731
664
|
end
|
@@ -36,8 +36,8 @@ module AdzerkDecisionSdk
|
|
36
36
|
api_client.default_headers['X-Adzerk-Sdk-Version'] = "adzerk-decision-sdk-ruby:#{version}"
|
37
37
|
|
38
38
|
@decisions = DecisionClient.new(network_id, site_id, api_client, configuration.logger)
|
39
|
-
@user_db = UserDbClient.new(network_id, api_client)
|
40
|
-
@pixels = PixelClient.new(api_client)
|
39
|
+
@user_db = UserDbClient.new(network_id, api_client, configuration.logger)
|
40
|
+
@pixels = PixelClient.new(api_client, configuration.logger)
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
@@ -62,6 +62,8 @@ module AdzerkDecisionSdk
|
|
62
62
|
# (BETA) The name of the eCPM Partition that should be used to source eCPM data for auctions
|
63
63
|
attr_accessor :ecpm_partition
|
64
64
|
|
65
|
+
attr_accessor :event_multiplier
|
66
|
+
|
65
67
|
# Attribute mapping from ruby-style variable name to JSON key.
|
66
68
|
def self.attribute_map
|
67
69
|
{
|
@@ -80,7 +82,8 @@ module AdzerkDecisionSdk
|
|
80
82
|
:'content_keys' => :'contentKeys',
|
81
83
|
:'count' => :'count',
|
82
84
|
:'proportionality' => :'proportionality',
|
83
|
-
:'ecpm_partition' => :'ecpmPartition'
|
85
|
+
:'ecpm_partition' => :'ecpmPartition',
|
86
|
+
:'event_multiplier' => :'eventMultiplier'
|
84
87
|
}
|
85
88
|
end
|
86
89
|
|
@@ -102,7 +105,8 @@ module AdzerkDecisionSdk
|
|
102
105
|
:'content_keys' => :'Hash<String, Integer>',
|
103
106
|
:'count' => :'Integer',
|
104
107
|
:'proportionality' => :'Boolean',
|
105
|
-
:'ecpm_partition' => :'String'
|
108
|
+
:'ecpm_partition' => :'String',
|
109
|
+
:'event_multiplier' => :'Integer'
|
106
110
|
}
|
107
111
|
end
|
108
112
|
|
@@ -120,7 +124,8 @@ module AdzerkDecisionSdk
|
|
120
124
|
:'content_keys',
|
121
125
|
:'count',
|
122
126
|
:'proportionality',
|
123
|
-
:'ecpm_partition'
|
127
|
+
:'ecpm_partition',
|
128
|
+
:'event_multiplier'
|
124
129
|
])
|
125
130
|
end
|
126
131
|
|
@@ -210,21 +215,49 @@ module AdzerkDecisionSdk
|
|
210
215
|
if attributes.key?(:'ecpm_partition')
|
211
216
|
self.ecpm_partition = attributes[:'ecpm_partition']
|
212
217
|
end
|
218
|
+
|
219
|
+
if attributes.key?(:'event_multiplier')
|
220
|
+
self.event_multiplier = attributes[:'event_multiplier']
|
221
|
+
end
|
213
222
|
end
|
214
223
|
|
215
224
|
# Show invalid properties with the reasons. Usually used together with valid?
|
216
225
|
# @return Array for valid properties with the reasons
|
217
226
|
def list_invalid_properties
|
218
227
|
invalid_properties = Array.new
|
228
|
+
if !@event_multiplier.nil? && @event_multiplier > 100000000
|
229
|
+
invalid_properties.push('invalid value for "event_multiplier", must be smaller than or equal to 100000000.')
|
230
|
+
end
|
231
|
+
|
232
|
+
if !@event_multiplier.nil? && @event_multiplier < -100000000
|
233
|
+
invalid_properties.push('invalid value for "event_multiplier", must be greater than or equal to -100000000.')
|
234
|
+
end
|
235
|
+
|
219
236
|
invalid_properties
|
220
237
|
end
|
221
238
|
|
222
239
|
# Check to see if the all the properties in the model are valid
|
223
240
|
# @return true if the model is valid
|
224
241
|
def valid?
|
242
|
+
return false if !@event_multiplier.nil? && @event_multiplier > 100000000
|
243
|
+
return false if !@event_multiplier.nil? && @event_multiplier < -100000000
|
225
244
|
true
|
226
245
|
end
|
227
246
|
|
247
|
+
# Custom attribute writer method with validation
|
248
|
+
# @param [Object] event_multiplier Value to be assigned
|
249
|
+
def event_multiplier=(event_multiplier)
|
250
|
+
if !event_multiplier.nil? && event_multiplier > 100000000
|
251
|
+
fail ArgumentError, 'invalid value for "event_multiplier", must be smaller than or equal to 100000000.'
|
252
|
+
end
|
253
|
+
|
254
|
+
if !event_multiplier.nil? && event_multiplier < -100000000
|
255
|
+
fail ArgumentError, 'invalid value for "event_multiplier", must be greater than or equal to -100000000.'
|
256
|
+
end
|
257
|
+
|
258
|
+
@event_multiplier = event_multiplier
|
259
|
+
end
|
260
|
+
|
228
261
|
# Checks equality by comparing each attribute.
|
229
262
|
# @param [Object] Object to be compared
|
230
263
|
def ==(o)
|
@@ -245,7 +278,8 @@ module AdzerkDecisionSdk
|
|
245
278
|
content_keys == o.content_keys &&
|
246
279
|
count == o.count &&
|
247
280
|
proportionality == o.proportionality &&
|
248
|
-
ecpm_partition == o.ecpm_partition
|
281
|
+
ecpm_partition == o.ecpm_partition &&
|
282
|
+
event_multiplier == o.event_multiplier
|
249
283
|
end
|
250
284
|
|
251
285
|
# @see the `==` method
|
@@ -257,7 +291,7 @@ module AdzerkDecisionSdk
|
|
257
291
|
# Calculates hash code according to all attributes.
|
258
292
|
# @return [Integer] Hash code
|
259
293
|
def hash
|
260
|
-
[div_name, network_id, site_id, ad_types, zone_ids, campaign_id, flight_id, ad_id, click_url, properties, event_ids, overrides, content_keys, count, proportionality, ecpm_partition].hash
|
294
|
+
[div_name, network_id, site_id, ad_types, zone_ids, campaign_id, flight_id, ad_id, click_url, properties, event_ids, overrides, content_keys, count, proportionality, ecpm_partition, event_multiplier].hash
|
261
295
|
end
|
262
296
|
|
263
297
|
# Builds the object from hash
|
@@ -3,23 +3,29 @@ require 'typhoeus'
|
|
3
3
|
|
4
4
|
module AdzerkDecisionSdk
|
5
5
|
class PixelClient
|
6
|
-
def initialize(api_client)
|
6
|
+
def initialize(api_client, logger)
|
7
7
|
@api_client = api_client
|
8
|
+
@logger = logger
|
8
9
|
end
|
9
10
|
|
10
|
-
def fire(url, revenue_override: nil, additional_revenue: nil)
|
11
|
+
def fire(url, revenue_override: nil, additional_revenue: nil, event_multiplier: nil)
|
11
12
|
uri = URI(url)
|
13
|
+
@logger.info("Firing Pixel at base url of: #{uri.to_s}")
|
14
|
+
|
12
15
|
query_params = URI.decode_www_form(uri.query)
|
13
16
|
query_params << ["override", revenue_override] if not revenue_override.nil?
|
14
17
|
query_params << ["additional", additional_revenue] if not additional_revenue.nil?
|
18
|
+
query_params << ["eventMultiplier", event_multiplier] if not event_multiplier.nil?
|
15
19
|
uri.query = URI.encode_www_form(query_params)
|
16
20
|
new_url = uri.to_s()
|
17
21
|
|
22
|
+
@logger.info("After url building with overrides, requesting: #{new_url}")
|
18
23
|
request = @api_client.build_request(:GET, '')
|
19
24
|
request.base_url = new_url
|
20
25
|
response = request.run()
|
21
26
|
location = response.response_code == 302 ? response.headers['location'] : nil
|
22
27
|
|
28
|
+
@logger.info("Received response from pixel url: #{response.response_code} with location: #{location}")
|
23
29
|
[response.response_code, location]
|
24
30
|
end
|
25
31
|
end
|
@@ -2,41 +2,50 @@ require 'adzerk_decision_sdk/api/userdb_api'
|
|
2
2
|
|
3
3
|
module AdzerkDecisionSdk
|
4
4
|
class UserDbClient
|
5
|
-
def initialize(network_id, api_client)
|
5
|
+
def initialize(network_id, api_client, logger)
|
6
6
|
@network_id = network_id
|
7
7
|
@api = UserdbApi.new(api_client)
|
8
|
+
@logger = logger
|
8
9
|
end
|
9
10
|
|
10
11
|
def set_custom_properties(user_key, properties, network_id: nil)
|
12
|
+
@logger.info("Setting custom properties for #{user_key} on #{network_id || @network_id} to: #{properties}")
|
11
13
|
@api.add_custom_properties(network_id || @network_id, user_key, { body: properties })
|
12
14
|
end
|
13
15
|
|
14
16
|
def add_interest(user_key, interest, network_id: nil)
|
17
|
+
@logger.info("Adding interest #{interest} for #{user_key} on #{network_id || @network_id}")
|
15
18
|
@api.add_interests(network_id || @network_id, user_key, interest)
|
16
19
|
end
|
17
20
|
|
18
21
|
def add_retargeting_segment(user_key, advertiser_id, retargeting_segment_id, network_id: nil)
|
22
|
+
@logger.info("Adding #{advertiser_id}.#{retargeting_segment_id} rt segment for #{user_key} on #{network_id || @network_id}")
|
19
23
|
@api.add_retargeting_segment(network_id || @network_id, advertiser_id, retargeting_segment_id, user_key)
|
20
24
|
end
|
21
25
|
|
22
26
|
def forget(user_key, network_id: nil)
|
27
|
+
@logger.info("Forgetting #{user_key} on #{network_id || @network_id}")
|
23
28
|
@api.forget(network_id || @network_id, user_key)
|
24
29
|
end
|
25
30
|
|
26
31
|
def gdpr_consent(gdpr_consent, network_id: nil)
|
27
32
|
body = gdpr_consent.respond_to?('to_hash') ? gdpr_consent.to_hash() : gdpr_consent
|
33
|
+
@logger.info("Setting GDPR consent on #{network_id || @network_id} with: #{body}")
|
28
34
|
@api.gdpr_consent(network_id || @network_id, { body: body })
|
29
35
|
end
|
30
36
|
|
31
37
|
def ip_override(user_key, ip, network_id: nil)
|
38
|
+
@logger.info("Overriding IP for #{user_key} on #{network_id || @network_id} to #{ip}")
|
32
39
|
@api.ip_override(network_id || @network_id, user_key, ip)
|
33
40
|
end
|
34
41
|
|
35
42
|
def match_user(user_key, partner_id, user_id, network_id: nil)
|
43
|
+
@logger.info("Matching user #{user_key} on #{network_id || @network_id} to #{partner_id}.#{user_id}")
|
36
44
|
@api.match_user(network_id || @network_id, user_key, partner_id, user_id)
|
37
45
|
end
|
38
46
|
|
39
47
|
def opt_out(user_key, network_id: nil)
|
48
|
+
@logger.info("Opting out for #{user_key} on #{network_id || @network_id}")
|
40
49
|
@api.opt_out(network_id || @network_id, user_key)
|
41
50
|
end
|
42
51
|
|
@@ -54,11 +63,16 @@ module AdzerkDecisionSdk
|
|
54
63
|
:campaignConversions
|
55
64
|
]
|
56
65
|
|
66
|
+
@logger.info("Requesting record for #{user_key} on #{network_id || @network_id}")
|
57
67
|
user_record = @api.read(network_id || @network_id, user_key)
|
58
68
|
|
59
|
-
|
69
|
+
@logger.info("Received unfiltered response of: #{user_record}")
|
70
|
+
clean_record = user_record.delete_if do |key, _|
|
60
71
|
bad_keys.include?(key)
|
61
72
|
end
|
73
|
+
|
74
|
+
@logger.info("Returning filtered response of: #{clean_record}")
|
75
|
+
clean_record
|
62
76
|
end
|
63
77
|
end
|
64
78
|
end
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adzerk_decision_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.pre.beta.
|
4
|
+
version: 1.0.0.pre.beta.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adzerk, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|
@@ -123,9 +123,7 @@ files:
|
|
123
123
|
- lib/adzerk_decision_sdk/rate_type.rb
|
124
124
|
- lib/adzerk_decision_sdk/user_db_client.rb
|
125
125
|
- lib/adzerk_decision_sdk/version.rb
|
126
|
-
- pkg/adzerk_decision_sdk-1.0.0.gem
|
127
|
-
- pkg/adzerk_decision_sdk-1.0.0.pre.beta.1.gem
|
128
|
-
- pkg/adzerk_decision_sdk-1.0.0.pre.beta.2.gem
|
126
|
+
- pkg/adzerk_decision_sdk-1.0.0.pre.beta.3.gem
|
129
127
|
- spec/.gitkeep
|
130
128
|
- spec/placeholder_spec.rb
|
131
129
|
homepage: http://adzerk.com
|
Binary file
|
Binary file
|
Binary file
|