> For the complete documentation index, see [llms.txt](https://targetmycom.gitbook.io/openrtb_spec/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://targetmycom.gitbook.io/openrtb_spec/openrtb/vk-ad-network-rtb-protocols/bidrequest-specification-requirements.md).

# BidRequest specification requirements

VK Ad Network supports a subset of **OpenRTB API Specification 2.3** ([specification](https://www.iab.com/wp-content/uploads/2015/06/OpenRTB-API-Specification-Version-2-3.pdf)) **or OpenRTB API Specification 2.5** ([specification](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf)), **and Native ADS API version 1.2** ([specification](https://www.iab.com/wp-content/uploads/2018/03/OpenRTB-Native-Ads-Specification-Final-1.2.pdf))**.**\
If you support the OpenRTB API Specification 2.5, we strongly recommend adding the HTTP header: “`x-openrtb-version: 2.5`” to the request to use bURL field. \
It will minimize impression and cost data discrepancy. (The message may contain a different version number than the request HTTP header: “`x-openrtb-version: 2.5”`) with the following extensions.&#x20;

### Additional requirements

**Bid Request requirements clarification**

**Object: Device**

| name           | type                    |                                                                                                                                                                                                                                                                                             |
| -------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| dnt            | integer; recommended    | Standard “Do Not Track” flag as set in the header by the browser, where 0 = tracking is unrestricted, 1 = do not track.                                                                                                                                                                     |
| geo.lat        | float; recommended      | Location: latitude (server-side greater than 0, south less than 0)                                                                                                                                                                                                                          |
| geo.lon        | float; recommended      | Location: longitude (eastern greater than 0, western less than 0)                                                                                                                                                                                                                           |
| geo.country    | string; **required**    | Country code using ISO-3166-1-alpha-3                                                                                                                                                                                                                                                       |
| geo.type       | integer; recommended    | Only type = 1 (GPS / Location Services) allowed                                                                                                                                                                                                                                             |
| geo.accuracy   | integer; recommended    | Location accuracy (meters)                                                                                                                                                                                                                                                                  |
| geo.lastfix    | integer; recommended    | Elapsed time since the last coordinate update (seconds)                                                                                                                                                                                                                                     |
| lmt            | integer; **required**   | Setting value "Limit Ad Tracking"                                                                                                                                                                                                                                                           |
| ip             | string; **required** \* | IPv4 client device address                                                                                                                                                                                                                                                                  |
| ipv6           | string; **required** \* | IPv6 client device address                                                                                                                                                                                                                                                                  |
| devicetype     | integer; recommended    | 4 - Phone, 5 - Tablet                                                                                                                                                                                                                                                                       |
| ua             | string; **required**    | Browser user agent string.                                                                                                                                                                                                                                                                  |
| make           | string; recommended     | Manufacturer, examples: "Apple", "LGE", "samsung"                                                                                                                                                                                                                                           |
| model          | string; recommended     | Technical identifier of the model, examples: "iPhone8,1" (iPhone 6S), "bullhead" (LG Nexus 5X) (this requirement is from the OpenRTB specification where it is recommended to indicate human-readable rather than technical names, for example model = "iPhone" + hwv = "5S" for iPhone 5S) |
| os             | string; **required**    | "iOS" (iOS), "Android" (Android)                                                                                                                                                                                                                                                            |
| osv            | string; **required**    | Operating system version, examples: "9.3.2" (iOS), "6.0.1" (Android)                                                                                                                                                                                                                        |
| language       | string; recommended     | Application / operating system language, two-letter code according to ISO-639-1, example: "ru"                                                                                                                                                                                              |
| carrier        | string; recommended     | Name of mobile operator                                                                                                                                                                                                                                                                     |
| connectiontype | integer; recommended    | <p>Connection type: <br>2 - WIFI, 3 - GSM Unspecified, 4 - GSM 2G, 5 - GSM 3G, 6 - GSM 4G</p>                                                                                                                                                                                               |
| ifa            | string; **required**    | IDFA (iOS), GAID (Android)                                                                                                                                                                                                                                                                  |
| ext.oaid       | string; recommended     | Huawei OAID                                                                                                                                                                                                                                                                                 |

{% hint style="info" %}
IP address is required, depending on the type of connection, you must fill out either **.device.ip** or **.device.ipv6**
{% endhint %}

#### Object User

| name        | type                 | description                                                                                          |
| ----------- | -------------------- | ---------------------------------------------------------------------------------------------------- |
| id          | string; recommended  | Exchange-specific ID for the user. At least one of id or buyeruid is recommended.                    |
| buyeruid    | string; recommended  | user ID VK Ad Network received via cookie sync (if configured)                                       |
| yob         | integer; recommended | User year of birth (if known)                                                                        |
| gender      | string; recommended  | Gender                                                                                               |
| ext.consent | string; recommended  | String that indicates the user has provided GDPR consent. “0” = No Consent ,“1” = User has consented |

#### Object app

| parameters  | type                 | descriptions                                                                                                                                                |
| ----------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| .app.bundle | string; **required** | Platform-specific application identifier. On Android, this should be a bundle or package name (e.g., com.foo.mygame). On iOS, it is typically a numeric ID. |

#### Object Imp

| parameters   | type                     | descriptions                                                     |
| ------------ | ------------------------ | ---------------------------------------------------------------- |
| instl        | integer; **required** \* | 1 = the ad is interstitial or full screen, 0 = not interstitial. |
| ext.rewarded | integer; **required** \* | 1 = the ad is rewarded                                           |

#### Object Regs<br>

| parameters     | type                 | descriptions                                                                                                                                                                                                             |
| -------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| .regs.ext.gdpr | integer; recommended | The `regs` object signals whether or not the request is subject to GDPR regulations. It does so via the extension attribute `gdpr`, which is an integer that indicates: ‘0’ = No, ‘1’ = Yes. The extension is an object. |

For test can use `BidRequest.test`

| parameters | type    | descriptions                                                                                                                                               |
| ---------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| test       | integer | Indicator of test mode in which auctions are not billable, where 0 = live mode, 1 = test mode. Keep in mind: when using test\_mode cost in response = 0.00 |

#### **OpenRTB** Dynamic Native Ads API Specification 1.2 with addition

<table><thead><tr><th width="180.8181818181818">parameters</th><th width="150">type</th><th>descriptions</th></tr></thead><tbody><tr><td>ext.agerestrictions</td><td>string; recommended</td><td>Age restrictions of the form "18+" (they are also added to the beginning of .title.text as the string "[18 +]")</td></tr></tbody></table>
