summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/SevereCloud/vksdk/v2/object/ads.go
blob: e0c379b472a822b5c57ced75bc7a243e734cc216 (plain) (blame)
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
package object // import "github.com/SevereCloud/vksdk/v2/object"

// AdsAccesses struct.
type AdsAccesses struct {
	ClientID string `json:"client_id"`
	Role     string `json:"role"`
}

// AdsAccount struct.
type AdsAccount struct {
	AccessRole    string      `json:"access_role"`
	AccountID     int         `json:"account_id"` // Account ID
	AccountName   string      `json:"account_name"`
	AccountStatus BaseBoolInt `json:"account_status"` // Information whether account is active
	CanViewBudget BaseBoolInt `json:"can_view_budget"`
	AccountType   string      `json:"account_type"`
}

// AdsAdLayout struct.
type AdsAdLayout struct {
	AdFormat       interface{} `json:"ad_format"`    // Ad format
	Description    string      `json:"description"`  // Ad description
	ImageSrc       string      `json:"image_src"`    // Image URL
	ImageSrc2x     string      `json:"image_src_2x"` // URL of the preview image in double size
	LinkDomain     string      `json:"link_domain"`  // Domain of advertised object
	LinkURL        string      `json:"link_url"`     // URL of advertised object
	PreviewLink    string      `json:"preview_link"` // preview an ad as it is shown on the website
	Title          string      `json:"title"`        // Ad title
	Video          BaseBoolInt `json:"video"`        // Information whether the ad is a video
	ID             string      `json:"id"`
	CampaignID     int         `json:"campaign_id"`
	GoalType       int         `json:"goal_type"`
	CostType       int         `json:"cost_type"`
	AgeRestriction string      `json:"age_restriction"`
	LinkType       string      `json:"link_type"`
}

// AdsCampaign struct.
type AdsCampaign struct {
	AllLimit  string `json:"all_limit"`  // Campaign's total limit, rubles
	DayLimit  string `json:"day_limit"`  // Campaign's day limit, rubles
	ID        int    `json:"id"`         // Campaign ID
	Name      string `json:"name"`       // Campaign title
	StartTime int    `json:"start_time"` // Campaign start time, as Unixtime
	Status    int    `json:"status"`
	StopTime  int    `json:"stop_time"` // Campaign stop time, as Unixtime
	Type      string `json:"type"`
}

// AdsCategory struct.
type AdsCategory struct {
	ID            int                  `json:"id"`   // Category ID
	Name          string               `json:"name"` // Category name
	Subcategories []BaseObjectWithName `json:"subcategories"`
}

// AdsClient struct.
type AdsClient struct {
	AllLimit string `json:"all_limit"` // Client's total limit, rubles
	DayLimit string `json:"day_limit"` // Client's day limit, rubles
	ID       int    `json:"id"`        // Client ID
	Name     string `json:"name"`      // Client name
}

// AdsCriteria struct.
type AdsCriteria struct {
	AgeFrom            int    `json:"age_from"`            // Age from
	AgeTo              int    `json:"age_to"`              // Age to
	Apps               string `json:"apps"`                // Apps IDs
	AppsNot            string `json:"apps_not"`            // Apps IDs to except
	Birthday           int    `json:"birthday"`            // Days to birthday
	Cities             string `json:"cities"`              // Cities IDs
	CitiesNot          string `json:"cities_not"`          // Cities IDs to except
	Country            int    `json:"country"`             // Country ID
	Districts          string `json:"districts"`           // Districts IDs
	Groups             string `json:"groups"`              // Communities IDs
	InterestCategories string `json:"interest_categories"` // Interests categories IDs
	Interests          string `json:"interests"`           // Interests

	// Information whether the user has proceeded VK payments before.
	Paying               BaseBoolInt `json:"paying"`
	Positions            string      `json:"positions"`              // Positions IDs
	Religions            string      `json:"religions"`              // Religions IDs
	RetargetingGroups    string      `json:"retargeting_groups"`     // Retargeting groups IDs
	RetargetingGroupsNot string      `json:"retargeting_groups_not"` // Retargeting groups IDs to except
	SchoolFrom           int         `json:"school_from"`            // School graduation year from
	SchoolTo             int         `json:"school_to"`              // School graduation year to
	Schools              string      `json:"schools"`                // Schools IDs
	Sex                  int         `json:"sex"`
	Stations             string      `json:"stations"`      // Stations IDs
	Statuses             string      `json:"statuses"`      // Relationship statuses
	Streets              string      `json:"streets"`       // Streets IDs
	Travellers           int         `json:"travellers"`    // Travellers only
	UniFrom              int         `json:"uni_from"`      // University graduation year from
	UniTo                int         `json:"uni_to"`        // University graduation year to
	UserBrowsers         string      `json:"user_browsers"` // Browsers
	UserDevices          string      `json:"user_devices"`  // Devices
	UserOs               string      `json:"user_os"`       // Operating systems
}

// AdsDemoStats struct.
type AdsDemoStats struct {
	ID    int                `json:"id"` // Object ID
	Stats AdsDemostatsFormat `json:"stats"`
	Type  string             `json:"type"`
}

// AdsDemostatsFormat struct.
type AdsDemostatsFormat struct {
	Age     []AdsStatsAge    `json:"age"`
	Cities  []AdsStatsCities `json:"cities"`
	Day     string           `json:"day"`     // Day as YYYY-MM-DD
	Month   string           `json:"month"`   // Month as YYYY-MM
	Overall int              `json:"overall"` // 1 if period=overall
	Sex     []AdsStatsSex    `json:"sex"`
	SexAge  []AdsStatsSexAge `json:"sex_age"`
}

// AdsFloodStats struct.
type AdsFloodStats struct {
	Left    int `json:"left"`    // Requests left
	Refresh int `json:"refresh"` // Time to refresh in seconds
}

// AdsLinkStatus link status.
type AdsLinkStatus string

// Possible values.
const (
	// allowed to use in ads.
	AdsLinkAllowed AdsLinkStatus = "allowed"

	// prohibited to use for this type of the object.
	AdsLinkDisallowed AdsLinkStatus = "disallowed"

	// checking, wait please.
	AdsLinkInProgress AdsLinkStatus = "in_progress"
)

// AdsParagraphs struct.
type AdsParagraphs struct {
	Paragraph string `json:"paragraph"` // Rules paragraph
}

// AdsRejectReason struct.
type AdsRejectReason struct {
	Comment string     `json:"comment"` // Comment text
	Rules   []AdsRules `json:"rules"`
}

// AdsRules struct.
type AdsRules struct {
	Paragraphs []AdsParagraphs `json:"paragraphs"`
	Title      string          `json:"title"` // Comment
}

// AdsStats struct.
type AdsStats struct {
	ID    int            `json:"id"` // Object ID
	Stats AdsStatsFormat `json:"stats"`
	Type  string         `json:"type"`
}

// AdsStatsAge struct.
type AdsStatsAge struct {
	ClicksRate      float64 `json:"clicks_rate"`      // Clicks rate
	ImpressionsRate float64 `json:"impressions_rate"` // Impressions rate
	Value           string  `json:"value"`            // Age interval
}

// AdsStatsCities struct.
type AdsStatsCities struct {
	ClicksRate      float64 `json:"clicks_rate"`      // Clicks rate
	ImpressionsRate float64 `json:"impressions_rate"` // Impressions rate
	Name            string  `json:"name"`             // City name
	Value           int     `json:"value"`            // City ID
}

// AdsStatsFormat struct.
type AdsStatsFormat struct {
	Clicks          int    `json:"clicks"`            // Clicks number
	Day             string `json:"day"`               // Day as YYYY-MM-DD
	Impressions     int    `json:"impressions"`       // Impressions number
	JoinRate        int    `json:"join_rate"`         // Events number
	Month           string `json:"month"`             // Month as YYYY-MM
	Overall         int    `json:"overall"`           // 1 if period=overall
	Reach           int    `json:"reach"`             // Reach
	Spent           int    `json:"spent"`             // Spent funds
	VideoClicksSite int    `json:"video_clicks_site"` // Click-thoughts to the advertised site
	VideoViews      int    `json:"video_views"`       // Video views number
	VideoViewsFull  int    `json:"video_views_full"`  // Video views (full video)
	VideoViewsHalf  int    `json:"video_views_half"`  // Video views (half of video)
}

// AdsStatsSex struct.
type AdsStatsSex struct {
	ClicksRate      float64 `json:"clicks_rate"`      // Clicks rate
	ImpressionsRate float64 `json:"impressions_rate"` // Impressions rate
	Value           string  `json:"value"`
}

// AdsStatsSexAge struct.
type AdsStatsSexAge struct {
	ClicksRate      float64 `json:"clicks_rate"`      // Clicks rate
	ImpressionsRate float64 `json:"impressions_rate"` // Impressions rate
	Value           string  `json:"value"`            // Sex and age interval
}

// AdsTargSettings struct.
type AdsTargSettings struct{}

// AdsTargStats struct.
type AdsTargStats struct {
	AudienceCount  int     `json:"audience_count"`  // Audience
	RecommendedCpc float64 `json:"recommended_cpc"` // Recommended CPC value
	RecommendedCpm float64 `json:"recommended_cpm"` // Recommended CPM value
}

// AdsTargSuggestions struct.
type AdsTargSuggestions struct {
	ID   int    `json:"id"`   // Object ID
	Name string `json:"name"` // Object name
}

// AdsTargSuggestionsCities struct.
type AdsTargSuggestionsCities struct {
	ID     int    `json:"id"`     // Object ID
	Name   string `json:"name"`   // Object name
	Parent string `json:"parent"` // Parent object
}

// AdsTargSuggestionsRegions struct.
type AdsTargSuggestionsRegions struct {
	ID   int    `json:"id"`   // Object ID
	Name string `json:"name"` // Object name
	Type string `json:"type"` // Object type
}

// AdsTargSuggestionsSchools struct.
type AdsTargSuggestionsSchools struct {
	Desc   string `json:"desc"`   // Full school title
	ID     int    `json:"id"`     // School ID
	Name   string `json:"name"`   // School title
	Parent string `json:"parent"` // City name
	Type   string `json:"type"`
}

// AdsTargetGroup struct.
type AdsTargetGroup struct {
	AudienceCount   int         `json:"audience_count"` // Audience
	ID              int         `json:"id"`             // Group ID
	Lifetime        int         `json:"lifetime"`       // Number of days for user to be in group
	Name            string      `json:"name"`           // Group name
	LastUpdated     int         `json:"last_updated"`
	IsAudience      BaseBoolInt `json:"is_audience"`
	IsShared        BaseBoolInt `json:"is_shared"`
	FileSource      BaseBoolInt `json:"file_source"`
	APISource       BaseBoolInt `json:"api_source"`
	LookalikeSource BaseBoolInt `json:"lookalike_source"`
	Domain          string      `json:"domain,omitempty"` // Site domain
	Pixel           string      `json:"pixel,omitempty"`  // Pixel code
}

// AdsUsers struct.
type AdsUsers struct {
	Accesses []AdsAccesses `json:"accesses"`
	UserID   int           `json:"user_id"` // User ID
}

// AdsAd struct.
type AdsAd struct {
	Approved                string      `json:"approved"`
	AllLimit                string      `json:"all_limit"`
	Category1ID             string      `json:"category1_id"`
	Category2ID             string      `json:"category2_id"`
	Cpm                     string      `json:"cpm"`
	AdFormat                int         `json:"ad_format"`   // Ad format
	AdPlatform              interface{} `json:"ad_platform"` // Ad platform
	CampaignID              int         `json:"campaign_id"` // Campaign ID
	CostType                int         `json:"cost_type"`
	Cpc                     int         `json:"cpc"`                    // Cost of a click, kopecks
	DisclaimerMedical       BaseBoolInt `json:"disclaimer_medical"`     // Information whether disclaimer is enabled
	DisclaimerSpecialist    BaseBoolInt `json:"disclaimer_specialist"`  // Information whether disclaimer is enabled
	DisclaimerSupplements   BaseBoolInt `json:"disclaimer_supplements"` // Information whether disclaimer is enabled
	Video                   BaseBoolInt `json:"video"`                  // Information whether the ad is a video
	ImpressionsLimited      BaseBoolInt `json:"impressions_limited"`    // Information whether impressions are limited
	Autobidding             BaseBoolInt `json:"autobidding"`
	ImpressionsLimit        int         `json:"impressions_limit"` // Impressions limit
	ID                      string      `json:"id"`                // Ad ID
	Name                    string      `json:"name"`              // Ad title
	Status                  int         `json:"status"`
	CreateTime              string      `json:"create_time"`
	UpdateTime              string      `json:"update_time"`
	GoalType                int         `json:"goal_type"`
	DayLimit                string      `json:"day_limit"`
	StartTime               string      `json:"start_time"`
	StopTime                string      `json:"stop_time"`
	AgeRestriction          string      `json:"age_restriction"`
	EventsRetargetingGroups interface{} `json:"events_retargeting_groups"`
	ImpressionsLimitPeriod  string      `json:"impressions_limit_period"`
}

// AdsPromotedPostReach struct.
type AdsPromotedPostReach struct {
	Hide             int `json:"hide"`              // Hides amount
	ID               int `json:"id"`                // Object ID from 'ids' parameter
	JoinGroup        int `json:"join_group"`        // Community joins
	Links            int `json:"links"`             // Link clicks
	ReachSubscribers int `json:"reach_subscribers"` // Subscribers reach
	ReachTotal       int `json:"reach_total"`       // Total reach
	Report           int `json:"report"`            // Reports amount
	ToGroup          int `json:"to_group"`          // Community clicks
	Unsubscribe      int `json:"unsubscribe"`       // 'Unsubscribe' events amount
	VideoViews100p   int `json:"video_views_100p"`  // Video views for 100 percent
	VideoViews25p    int `json:"video_views_25p"`   // Video views for 25 percent
	VideoViews3s     int `json:"video_views_3s"`    // Video views for 3 seconds
	VideoViews50p    int `json:"video_views_50p"`   // Video views for 50 percent
	VideoViews75p    int `json:"video_views_75p"`   // Video views for 75 percent
	VideoViewsStart  int `json:"video_views_start"` // Video starts
}