Ruby Decision SDK

Ruby Software Development Kit for Kevel Decision & UserDB APIs

Installation

Requires Ruby 2.5 or higher.

 gem install adzerk_decision_sdk --pre

Or add to your Gemfile:

 gem 'adzerk_decision_sdk', '~> 1.0.0-pre.beta.2'

Examples

Fetching an Ad Decision

 require "adzerk_decision_sdk"

# Demo network, site, and ad type IDs; find your own via the Adzerk UI!
 client = AdzerkDecisionSdk::Client.new(network_id: 23, site_id: 667480)

request = {
   placements: [{ adTypes: [5] }],
   user: { key: "abc" },
   keywords: ["keyword1", "keyword2"],
 }

pp client.decisions.get(request)

Recording Impression & Clicks

Use with the fetch ad example above.

 # Impression pixel; fire when user sees the ad
 client.pixels.fire(decision.impression_url)

# Click pixel; fire when user clicks on the ad
 # status: HTTP status code
 # location: click target URL
 status, location = client.pixels.fire(decision.click_url)

UserDB: Reading User Record

 require "adzerk_decision_sdk"

# Demo network ID; find your own via the Adzerk UI!
 client = AdzerkDecisionSdk::Client.new(network_id: 23)
 pp client.user_db.read("abc")

UserDB: Setting Custom Properties

 require "adzerk_decision_sdk"

# Demo network ID; find your own via the Adzerk UI!
 client = AdzerkDecisionSdk::Client.new(network_id: 23)

props = {
   favoriteColor: "blue",
   favoriteNumber: 42,
   favoriteFoods: ["strawberries", "chocolate"],
 }

client.user_db.set_custom_properties("abc", props)

UserDB: Forgetting User Record

 require "adzerk_decision_sdk"

# Demo network ID and API key; find your own via the Adzerk UI!
 client = AdzerkDecisionSdk::Client.new(network_id: 23, api_key: ENV["ADZERK_API_KEY"])
 client.user_db.forget("abc")

Decision Explainer

 require "adzerk_decision_sdk"

# Demo network, site, and ad type IDs; find your own via the Adzerk UI!
 client = AdzerkDecisionSdk::Client.new(network_id: 23, site_id: 667480)

request = {
   placements: [{ adTypes: [5] }],
   user: { key: "abc" },
   keywords: ["keyword1", "keyword2"],
 }

options = {
   include_explanation: true,
   api_key: ENV["ADZERK_API_KEY"]
 }

pp client.decisions.get(request, options)