Class: AdzerkDecisionSdk::UserDbClient

Inherits:
Object
  • Object
show all
Defined in:
lib/adzerk_decision_sdk/user_db_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(network_id, api_client, logger) ⇒ UserDbClient

Returns a new instance of UserDbClient.



5
6
7
8
9
# File 'lib/adzerk_decision_sdk/user_db_client.rb', line 5

def initialize(network_id, api_client, logger)
  @network_id = network_id
  @api = UserdbApi.new(api_client)
  @logger = logger
end

Instance Method Details

#add_interest(user_key, interest, network_id: nil) ⇒ Object



16
17
18
19
# File 'lib/adzerk_decision_sdk/user_db_client.rb', line 16

def add_interest(user_key, interest, network_id: nil)
  @logger.info("Adding interest #{interest} for #{user_key} on #{network_id || @network_id}")
  @api.add_interests(network_id || @network_id, user_key, interest)
end

#add_retargeting_segment(user_key, advertiser_id, retargeting_segment_id, network_id: nil) ⇒ Object



21
22
23
24
# File 'lib/adzerk_decision_sdk/user_db_client.rb', line 21

def add_retargeting_segment(user_key, advertiser_id, retargeting_segment_id, network_id: nil)
  @logger.info("Adding #{advertiser_id}.#{retargeting_segment_id} rt segment for #{user_key} on #{network_id || @network_id}")
  @api.add_retargeting_segment(network_id || @network_id, advertiser_id, retargeting_segment_id, user_key)
end

#forget(user_key, network_id: nil) ⇒ Object



26
27
28
29
# File 'lib/adzerk_decision_sdk/user_db_client.rb', line 26

def forget(user_key, network_id: nil)
  @logger.info("Forgetting #{user_key} on #{network_id || @network_id}")
  @api.forget(network_id || @network_id, user_key)
end


31
32
33
34
35
# File 'lib/adzerk_decision_sdk/user_db_client.rb', line 31

def gdpr_consent(gdpr_consent, network_id: nil)
  body = gdpr_consent.respond_to?('to_hash') ? gdpr_consent.to_hash() : gdpr_consent
  @logger.info("Setting GDPR consent on #{network_id || @network_id} with: #{body}")
  @api.gdpr_consent(network_id || @network_id, { debug_body: body })
end

#ip_override(user_key, ip, network_id: nil) ⇒ Object



37
38
39
40
# File 'lib/adzerk_decision_sdk/user_db_client.rb', line 37

def ip_override(user_key, ip, network_id: nil)
  @logger.info("Overriding IP for #{user_key} on #{network_id || @network_id} to #{ip}")
  @api.ip_override(network_id || @network_id, user_key, ip)
end

#match_user(user_key, partner_id, user_id, network_id: nil) ⇒ Object



42
43
44
45
# File 'lib/adzerk_decision_sdk/user_db_client.rb', line 42

def match_user(user_key, partner_id, user_id, network_id: nil)
  @logger.info("Matching user #{user_key} on #{network_id || @network_id} to #{partner_id}.#{user_id}")
  @api.match_user(network_id || @network_id, user_key, partner_id, user_id)
end

#opt_out(user_key, network_id: nil) ⇒ Object



47
48
49
50
# File 'lib/adzerk_decision_sdk/user_db_client.rb', line 47

def opt_out(user_key, network_id: nil)
  @logger.info("Opting out for #{user_key} on #{network_id || @network_id}")
  @api.opt_out(network_id || @network_id, user_key)
end

#read(user_key, network_id: nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/adzerk_decision_sdk/user_db_client.rb', line 52

def read(user_key, network_id: nil)
  bad_keys = [
    :cookieMonster,
    :dirtyCookies,
    :isNew,
    :adViewTimes,
    :advertiserViewTimes,
    :flightViewTimes,
    :siteViewTimes,
    :campaignViewTimes,
    :pendingConversions,
    :campaignConversions
  ]

  @logger.info("Requesting record for #{user_key} on #{network_id || @network_id}")
  user_record = @api.read(network_id || @network_id, user_key)

  @logger.info("Received unfiltered response of: #{user_record}")
  clean_record = user_record.delete_if do |key, _|
    bad_keys.include?(key)
  end

  @logger.info("Returning filtered response of: #{clean_record}")
  clean_record
end

#set_custom_properties(user_key, properties, network_id: nil) ⇒ Object



11
12
13
14
# File 'lib/adzerk_decision_sdk/user_db_client.rb', line 11

def set_custom_properties(user_key, properties, network_id: nil)
  @logger.info("Setting custom properties for #{user_key} on #{network_id || @network_id} to: #{properties}")
  @api.add_custom_properties(network_id || @network_id, user_key, { debug_body: properties })
end