1{
2  "auth": {
3    "oauth2": {
4      "scopes": {
5        "https://www.googleapis.com/auth/adexchange.buyer": {
6          "description": "Manage your Ad Exchange buyer account configuration"
7        }
8      }
9    }
10  },
11  "basePath": "/adexchangebuyer/v1.2/",
12  "baseUrl": "https://www.googleapis.com/adexchangebuyer/v1.2/",
13  "batchPath": "batch/adexchangebuyer/v1.2",
14  "canonicalName": "Ad Exchange Buyer",
15  "description": "Accesses your bidding-account information, submits creatives for validation, finds available direct deals, and retrieves performance reports.",
16  "discoveryVersion": "v1",
17  "documentationLink": "https://developers.google.com/ad-exchange/buyer-rest",
18  "etag": "\"Zkyw9ACJZUvcYmlFaKGChzhmtnE/F_9WJQnvLgGfABacvXvQLtkcuXw\"",
19  "icons": {
20    "x16": "https://www.google.com/images/icons/product/doubleclick-16.gif",
21    "x32": "https://www.google.com/images/icons/product/doubleclick-32.gif"
22  },
23  "id": "adexchangebuyer:v1.2",
24  "kind": "discovery#restDescription",
25  "name": "adexchangebuyer",
26  "ownerDomain": "google.com",
27  "ownerName": "Google",
28  "parameters": {
29    "alt": {
30      "default": "json",
31      "description": "Data format for the response.",
32      "enum": [
33        "json"
34      ],
35      "enumDescriptions": [
36        "Responses with Content-Type of application/json"
37      ],
38      "location": "query",
39      "type": "string"
40    },
41    "fields": {
42      "description": "Selector specifying which fields to include in a partial response.",
43      "location": "query",
44      "type": "string"
45    },
46    "key": {
47      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
48      "location": "query",
49      "type": "string"
50    },
51    "oauth_token": {
52      "description": "OAuth 2.0 token for the current user.",
53      "location": "query",
54      "type": "string"
55    },
56    "prettyPrint": {
57      "default": "true",
58      "description": "Returns response with indentations and line breaks.",
59      "location": "query",
60      "type": "boolean"
61    },
62    "quotaUser": {
63      "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
64      "location": "query",
65      "type": "string"
66    },
67    "userIp": {
68      "description": "Deprecated. Please use quotaUser instead.",
69      "location": "query",
70      "type": "string"
71    }
72  },
73  "protocol": "rest",
74  "resources": {
75    "accounts": {
76      "methods": {
77        "get": {
78          "description": "Gets one account by ID.",
79          "httpMethod": "GET",
80          "id": "adexchangebuyer.accounts.get",
81          "parameterOrder": [
82            "id"
83          ],
84          "parameters": {
85            "id": {
86              "description": "The account id",
87              "format": "int32",
88              "location": "path",
89              "required": true,
90              "type": "integer"
91            }
92          },
93          "path": "accounts/{id}",
94          "response": {
95            "$ref": "Account"
96          },
97          "scopes": [
98            "https://www.googleapis.com/auth/adexchange.buyer"
99          ]
100        },
101        "list": {
102          "description": "Retrieves the authenticated user's list of accounts.",
103          "httpMethod": "GET",
104          "id": "adexchangebuyer.accounts.list",
105          "path": "accounts",
106          "response": {
107            "$ref": "AccountsList"
108          },
109          "scopes": [
110            "https://www.googleapis.com/auth/adexchange.buyer"
111          ]
112        },
113        "patch": {
114          "description": "Updates an existing account. This method supports patch semantics.",
115          "httpMethod": "PATCH",
116          "id": "adexchangebuyer.accounts.patch",
117          "parameterOrder": [
118            "id"
119          ],
120          "parameters": {
121            "id": {
122              "description": "The account id",
123              "format": "int32",
124              "location": "path",
125              "required": true,
126              "type": "integer"
127            }
128          },
129          "path": "accounts/{id}",
130          "request": {
131            "$ref": "Account"
132          },
133          "response": {
134            "$ref": "Account"
135          },
136          "scopes": [
137            "https://www.googleapis.com/auth/adexchange.buyer"
138          ]
139        },
140        "update": {
141          "description": "Updates an existing account.",
142          "httpMethod": "PUT",
143          "id": "adexchangebuyer.accounts.update",
144          "parameterOrder": [
145            "id"
146          ],
147          "parameters": {
148            "id": {
149              "description": "The account id",
150              "format": "int32",
151              "location": "path",
152              "required": true,
153              "type": "integer"
154            }
155          },
156          "path": "accounts/{id}",
157          "request": {
158            "$ref": "Account"
159          },
160          "response": {
161            "$ref": "Account"
162          },
163          "scopes": [
164            "https://www.googleapis.com/auth/adexchange.buyer"
165          ]
166        }
167      }
168    },
169    "creatives": {
170      "methods": {
171        "get": {
172          "description": "Gets the status for a single creative. A creative will be available 30-40 minutes after submission.",
173          "httpMethod": "GET",
174          "id": "adexchangebuyer.creatives.get",
175          "parameterOrder": [
176            "accountId",
177            "buyerCreativeId"
178          ],
179          "parameters": {
180            "accountId": {
181              "description": "The id for the account that will serve this creative.",
182              "format": "int32",
183              "location": "path",
184              "required": true,
185              "type": "integer"
186            },
187            "buyerCreativeId": {
188              "description": "The buyer-specific id for this creative.",
189              "location": "path",
190              "required": true,
191              "type": "string"
192            }
193          },
194          "path": "creatives/{accountId}/{buyerCreativeId}",
195          "response": {
196            "$ref": "Creative"
197          },
198          "scopes": [
199            "https://www.googleapis.com/auth/adexchange.buyer"
200          ]
201        },
202        "insert": {
203          "description": "Submit a new creative.",
204          "httpMethod": "POST",
205          "id": "adexchangebuyer.creatives.insert",
206          "path": "creatives",
207          "request": {
208            "$ref": "Creative"
209          },
210          "response": {
211            "$ref": "Creative"
212          },
213          "scopes": [
214            "https://www.googleapis.com/auth/adexchange.buyer"
215          ]
216        },
217        "list": {
218          "description": "Retrieves a list of the authenticated user's active creatives. A creative will be available 30-40 minutes after submission.",
219          "httpMethod": "GET",
220          "id": "adexchangebuyer.creatives.list",
221          "parameters": {
222            "maxResults": {
223              "description": "Maximum number of entries returned on one result page. If not set, the default is 100. Optional.",
224              "format": "uint32",
225              "location": "query",
226              "maximum": "1000",
227              "minimum": "1",
228              "type": "integer"
229            },
230            "pageToken": {
231              "description": "A continuation token, used to page through ad clients. To retrieve the next page, set this parameter to the value of \"nextPageToken\" from the previous response. Optional.",
232              "location": "query",
233              "type": "string"
234            },
235            "statusFilter": {
236              "description": "When specified, only creatives having the given status are returned.",
237              "enum": [
238                "approved",
239                "disapproved",
240                "not_checked"
241              ],
242              "enumDescriptions": [
243                "Creatives which have been approved.",
244                "Creatives which have been disapproved.",
245                "Creatives whose status is not yet checked."
246              ],
247              "location": "query",
248              "type": "string"
249            }
250          },
251          "path": "creatives",
252          "response": {
253            "$ref": "CreativesList"
254          },
255          "scopes": [
256            "https://www.googleapis.com/auth/adexchange.buyer"
257          ]
258        }
259      }
260    }
261  },
262  "revision": "20180222",
263  "rootUrl": "https://www.googleapis.com/",
264  "schemas": {
265    "Account": {
266      "description": "Configuration data for an Ad Exchange buyer account.",
267      "id": "Account",
268      "properties": {
269        "bidderLocation": {
270          "description": "Your bidder locations that have distinct URLs.",
271          "items": {
272            "properties": {
273              "maximumQps": {
274                "description": "The maximum queries per second the Ad Exchange will send.",
275                "format": "int32",
276                "type": "integer"
277              },
278              "region": {
279                "description": "The geographical region the Ad Exchange should send requests from. Only used by some quota systems, but always setting the value is recommended. Allowed values:  \n- ASIA \n- EUROPE \n- US_EAST \n- US_WEST",
280                "type": "string"
281              },
282              "url": {
283                "description": "The URL to which the Ad Exchange will send bid requests.",
284                "type": "string"
285              }
286            },
287            "type": "object"
288          },
289          "type": "array"
290        },
291        "cookieMatchingNid": {
292          "description": "The nid parameter value used in cookie match requests. Please contact your technical account manager if you need to change this.",
293          "type": "string"
294        },
295        "cookieMatchingUrl": {
296          "description": "The base URL used in cookie match requests.",
297          "type": "string"
298        },
299        "id": {
300          "description": "Account id.",
301          "format": "int32",
302          "type": "integer"
303        },
304        "kind": {
305          "default": "adexchangebuyer#account",
306          "description": "Resource type.",
307          "type": "string"
308        },
309        "maximumActiveCreatives": {
310          "description": "The maximum number of active creatives that an account can have, where a creative is active if it was inserted or bid with in the last 30 days. Please contact your technical account manager if you need to change this.",
311          "format": "int32",
312          "type": "integer"
313        },
314        "maximumTotalQps": {
315          "description": "The sum of all bidderLocation.maximumQps values cannot exceed this. Please contact your technical account manager if you need to change this.",
316          "format": "int32",
317          "type": "integer"
318        },
319        "numberActiveCreatives": {
320          "description": "The number of creatives that this account inserted or bid with in the last 30 days.",
321          "format": "int32",
322          "type": "integer"
323        }
324      },
325      "type": "object"
326    },
327    "AccountsList": {
328      "description": "An account feed lists Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single buyer account.",
329      "id": "AccountsList",
330      "properties": {
331        "items": {
332          "description": "A list of accounts.",
333          "items": {
334            "$ref": "Account"
335          },
336          "type": "array"
337        },
338        "kind": {
339          "default": "adexchangebuyer#accountsList",
340          "description": "Resource type.",
341          "type": "string"
342        }
343      },
344      "type": "object"
345    },
346    "Creative": {
347      "description": "A creative and its classification data.",
348      "id": "Creative",
349      "properties": {
350        "HTMLSnippet": {
351          "description": "The HTML snippet that displays the ad when inserted in the web page. If set, videoURL should not be set.",
352          "type": "string"
353        },
354        "accountId": {
355          "annotations": {
356            "required": [
357              "adexchangebuyer.creatives.insert"
358            ]
359          },
360          "description": "Account id.",
361          "format": "int32",
362          "type": "integer"
363        },
364        "advertiserId": {
365          "description": "Detected advertiser id, if any. Read-only. This field should not be set in requests.",
366          "items": {
367            "format": "int64",
368            "type": "string"
369          },
370          "type": "array"
371        },
372        "advertiserName": {
373          "annotations": {
374            "required": [
375              "adexchangebuyer.creatives.insert"
376            ]
377          },
378          "description": "The name of the company being advertised in the creative.",
379          "type": "string"
380        },
381        "agencyId": {
382          "description": "The agency id for this creative.",
383          "format": "int64",
384          "type": "string"
385        },
386        "apiUploadTimestamp": {
387          "description": "The last upload timestamp of this creative if it was uploaded via API. Read-only. The value of this field is generated, and will be ignored for uploads. (formatted RFC 3339 timestamp).",
388          "format": "date-time",
389          "type": "string"
390        },
391        "attribute": {
392          "description": "All attributes for the ads that may be shown from this snippet.",
393          "items": {
394            "format": "int32",
395            "type": "integer"
396          },
397          "type": "array"
398        },
399        "buyerCreativeId": {
400          "annotations": {
401            "required": [
402              "adexchangebuyer.creatives.insert"
403            ]
404          },
405          "description": "A buyer-specific id identifying the creative in this ad.",
406          "type": "string"
407        },
408        "clickThroughUrl": {
409          "annotations": {
410            "required": [
411              "adexchangebuyer.creatives.insert"
412            ]
413          },
414          "description": "The set of destination urls for the snippet.",
415          "items": {
416            "type": "string"
417          },
418          "type": "array"
419        },
420        "corrections": {
421          "description": "Shows any corrections that were applied to this creative. Read-only. This field should not be set in requests.",
422          "items": {
423            "properties": {
424              "details": {
425                "description": "Additional details about the correction.",
426                "items": {
427                  "type": "string"
428                },
429                "type": "array"
430              },
431              "reason": {
432                "description": "The type of correction that was applied to the creative.",
433                "type": "string"
434              }
435            },
436            "type": "object"
437          },
438          "type": "array"
439        },
440        "disapprovalReasons": {
441          "description": "The reasons for disapproval, if any. Note that not all disapproval reasons may be categorized, so it is possible for the creative to have a status of DISAPPROVED with an empty list for disapproval_reasons. In this case, please reach out to your TAM to help debug the issue. Read-only. This field should not be set in requests.",
442          "items": {
443            "properties": {
444              "details": {
445                "description": "Additional details about the reason for disapproval.",
446                "items": {
447                  "type": "string"
448                },
449                "type": "array"
450              },
451              "reason": {
452                "description": "The categorized reason for disapproval.",
453                "type": "string"
454              }
455            },
456            "type": "object"
457          },
458          "type": "array"
459        },
460        "filteringReasons": {
461          "description": "The filtering reasons for the creative. Read-only. This field should not be set in requests.",
462          "properties": {
463            "date": {
464              "description": "The date in ISO 8601 format for the data. The data is collected from 00:00:00 to 23:59:59 in PST.",
465              "type": "string"
466            },
467            "reasons": {
468              "description": "The filtering reasons.",
469              "items": {
470                "properties": {
471                  "filteringCount": {
472                    "description": "The number of times the creative was filtered for the status. The count is aggregated across all publishers on the exchange.",
473                    "format": "int64",
474                    "type": "string"
475                  },
476                  "filteringStatus": {
477                    "description": "The filtering status code. Please refer to the creative-status-codes.txt file for different statuses.",
478                    "format": "int32",
479                    "type": "integer"
480                  }
481                },
482                "type": "object"
483              },
484              "type": "array"
485            }
486          },
487          "type": "object"
488        },
489        "height": {
490          "annotations": {
491            "required": [
492              "adexchangebuyer.creatives.insert"
493            ]
494          },
495          "description": "Ad height.",
496          "format": "int32",
497          "type": "integer"
498        },
499        "impressionTrackingUrl": {
500          "description": "The set of urls to be called to record an impression.",
501          "items": {
502            "type": "string"
503          },
504          "type": "array"
505        },
506        "kind": {
507          "default": "adexchangebuyer#creative",
508          "description": "Resource type.",
509          "type": "string"
510        },
511        "productCategories": {
512          "description": "Detected product categories, if any. Read-only. This field should not be set in requests.",
513          "items": {
514            "format": "int32",
515            "type": "integer"
516          },
517          "type": "array"
518        },
519        "restrictedCategories": {
520          "description": "All restricted categories for the ads that may be shown from this snippet.",
521          "items": {
522            "format": "int32",
523            "type": "integer"
524          },
525          "type": "array"
526        },
527        "sensitiveCategories": {
528          "description": "Detected sensitive categories, if any. Read-only. This field should not be set in requests.",
529          "items": {
530            "format": "int32",
531            "type": "integer"
532          },
533          "type": "array"
534        },
535        "status": {
536          "description": "Creative serving status. Read-only. This field should not be set in requests.",
537          "type": "string"
538        },
539        "vendorType": {
540          "description": "All vendor types for the ads that may be shown from this snippet.",
541          "items": {
542            "format": "int32",
543            "type": "integer"
544          },
545          "type": "array"
546        },
547        "version": {
548          "description": "The version for this creative. Read-only. This field should not be set in requests.",
549          "format": "int32",
550          "type": "integer"
551        },
552        "videoURL": {
553          "description": "The url to fetch a video ad. If set, HTMLSnippet should not be set.",
554          "type": "string"
555        },
556        "width": {
557          "annotations": {
558            "required": [
559              "adexchangebuyer.creatives.insert"
560            ]
561          },
562          "description": "Ad width.",
563          "format": "int32",
564          "type": "integer"
565        }
566      },
567      "type": "object"
568    },
569    "CreativesList": {
570      "description": "The creatives feed lists the active creatives for the Ad Exchange buyer accounts that the user has access to. Each entry in the feed corresponds to a single creative.",
571      "id": "CreativesList",
572      "properties": {
573        "items": {
574          "description": "A list of creatives.",
575          "items": {
576            "$ref": "Creative"
577          },
578          "type": "array"
579        },
580        "kind": {
581          "default": "adexchangebuyer#creativesList",
582          "description": "Resource type.",
583          "type": "string"
584        },
585        "nextPageToken": {
586          "description": "Continuation token used to page through creatives. To retrieve the next page of results, set the next request's \"pageToken\" value to this.",
587          "type": "string"
588        }
589      },
590      "type": "object"
591    }
592  },
593  "servicePath": "adexchangebuyer/v1.2/",
594  "title": "Ad Exchange Buyer API",
595  "version": "v1.2"
596}