forked from mxmCherry/openrtb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
asset.go
105 lines (97 loc) · 3.72 KB
/
asset.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package request
import "encoding/json"
// 4.2 Asset Object
//
// The main container object for each asset requested or supported by Exchange on behalf of the rendering client.
// Any object that is required is to be flagged as such.
// Only one of the {title,img,video,data} objects should be present in each object.
// All others should be null/absent.
// The id is to be unique within the AssetObject array so that the response can be aligned.
//
// To be more explicit, it is the ID of each asset object that maps the response to the request.
// So if a request for a title object is sent with id 1, then the response containing the title should have an id of 1.
//
// Since version 1.1 of the spec, there are recommended sizes/lengths/etc with some of the asset types.
// The goal for asset requirements standardization is to facilitate adoption of native by DSPs by limiting the diverse types/sizes/requirements of assets they must have available to purchase a native ad impression.
// While great diversity may exist in publishers, advertisers/DSPs can not be expected to provide infinite headline lengths, thumbnail aspect ratios, etc.
// While we have not gone as far as creating a single standard, we've honed in on a few options that cover the most common cases.
// SSPs can deviate from these standards, but should understand they may limit applicable DSP demand by doing so.
// DSPs should feel confident that if they support these standards they'll be able to access most native inventory.
type Asset struct {
// Field:
// id
// Scope:
// required
// Type:
// int
// Description:
// Unique asset ID, assigned by exchange.
// Typically a counter for the array.
ID int64 `json:"id"`
// Field:
// required
// Scope:
// optional
// Type:
// int
// Default:
// 0
// Description:
// Set to 1 if asset is required (exchange will not accept a bid without it)
Required int8 `json:"required,omitempty"`
// Field:
// title
// Scope:
// recommended (each asset object may contain only one of title, img, data or video)
// Type:
// object
// Description:
// Title object for title assets.
// See TitleObject definition.
// Each asset object may contain only one of title, img, data or video.
Title *Title `json:"title,omitempty"`
// Field:
// img
// Scope:
// recommended (each asset object may contain only one of title, img, data or video)
// Type:
// object
// Description:
// Image object for image assets.
// See ImageObject definition.
// Each asset object may contain only one of title, img, data or video.
Img *Image `json:"img,omitempty"`
// Field:
// video
// Scope:
// optional (each asset object may contain only one of title, img, data or video)
// Type:
// object
// Description:
// Video object for video assets.
// See the Video request object definition.
// Note that in-stream (ie preroll, etc) video ads are not part of Native.
// Native ads may contain a video as the ad creative itself.
// Each asset object may contain only one of title, img, data or video.
Video *Video `json:"video,omitempty"`
// Field:
// data
// Scope:
// recommended (each asset object may contain only one of title, img, data or video)
// Type:
// object
// Description:
// Data object for brand name, description, ratings, prices etc.
// See DataObject definition.
// Each asset object may contain only one of title, img, data or video.
Data *Data `json:"data,omitempty"`
// Field:
// ext
// Scope:
// optional
// Type:
// object
// Description:
// This object is a placeholder that may contain custom JSON agreed to by the parties to support flexibility beyond the standard defined in this specification
Ext json.RawMessage `json:"ext,omitempty"`
}