Skip to content

Commit

Permalink
Add metric object to impression
Browse files Browse the repository at this point in the history
From the docs: This object is associated with an impression as an array of metrics. These metrics can offer insight into
the impression to assist with decisioning such as average recent viewability, click-through rate, etc. Each
metric is identified by its type, reports the value of the metric, and optionally identifies the source or
vendor measuring the value.
We need it for adx, but i guess we can add it to all SSP since it's standart openrtb
  • Loading branch information
Baumanar committed Oct 23, 2024
1 parent 410aa84 commit 26c5908
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
1 change: 1 addition & 0 deletions impression.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ type Impression struct {
Exp int `json:"exp,omitempty"` // Advisory as to the number of seconds that may elapse between the auction and the actual impression.
IFrameBusters []string `json:"iframebuster,omitempty"` // Array of names for supportediframe busters.
Rewarded int `json:"rwdd,omitempty"` // Impression is rewarded, Default: 0 ("1": yes, "0": no)
Metric []Metric `json:"metric,omitempty"`
Ext json.RawMessage `json:"ext,omitempty"`
}

Expand Down
48 changes: 48 additions & 0 deletions metric.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package openrtb

import "encoding/json"

// 3.2.5 Object: Metric
//
// This object is associated with an impression as an array of metrics.
// These metrics can offer insight into the impression to assist with decisioning such as average recent viewability, click-through rate, etc.
// Each metric is identified by its type, reports the value of the metric, and optionally identifies the source or vendor measuring the value.
type Metric struct {

// Attribute:
// type
// Type:
// string; required
// Description:
// Type of metric being presented using exchange curated string
// names which should be published to bidders a priori.
Type string `json:"type"`

// Attribute:
// value
// Type:
// float; required
// Description:
// Number representing the value of the metric. Probabilities
// must be in the range 0.0 – 1.0.
Value float64 `json:"value,omitempty"`

// Attribute:
// vendor
// Type:
// string; recommended
// Description:
// Source of the value using exchange curated string names
// which should be published to bidders a priori. If the exchange
// itself is the source versus a third party, “EXCHANGE” is
// recommended.
Vendor string `json:"vendor,omitempty"`

// Attribute:
// ext
// Type:
// object
// Description:
// Placeholder for exchange-specific extensions to OpenRTB.
Ext json.RawMessage `json:"ext,omitempty"`
}

0 comments on commit 26c5908

Please sign in to comment.