Publisher OpenRTB integration guidelines
Copyright
This document is the property of TheViewPoint Media Inc. ("TheViewPoint").
The information contained in this document is confidential and no part of it may be reproduced, displayed, distributed, or disclosed by any means, unless otherwise agreed.
Disclaimer
The information provided in this document serves as a guideline and is subject to change at any time.
This document does not create any legally enforceable obligations on the part of TheViewPoint.
Introduction
This document contains integration guidelines and required information for publishers.
TheViewPoint utilizes a custom protocol based on OpenRTB Specification Version 2.5 (“Specification”) https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf
This document is intended to be used in addition to the Specification.
All required objects and fields should be present in every bid request.
Recommended and optional fields should be populated where possible, taking into account Publisher policies and data availability.
Publishers should be ready to send and be able to read all fields according to the Specification.
Transport, encoding, data format
HTTP POST method is used to receive Bid requests.
SSL is supported and recommended.
HTTP Keep-Alive is recommended.
Bid requests and responses are formatted as JSON with UTF-8 encoding.
The bid request specifies the representation as a mime type using the “Content-Type” HTTP header.
The mime type for the standard JSON representation is “application/json”.
The format of the bid response is the same as the bid request. Content-Type: application/json
Bid requests should include an Accept-Encoding: gzip header to indicate support for gzipped bid responses.
Network
TheViewPoint is located in AWS US-EAST (Ohio). We recommend publishers to be located in a data center near AWS US-EAST. Other endpoint locations are available upon request.
Tmax value passed in a bid request will be used as a maximum time to respond. If no tmax passed, the default value is used.
Publishers should follow the agreed QPS limit.
Endpoint specifics
Endpoint URL will be provided upon the start of the integration.
Default type of integration requires passing TheViewPoint provided IDs in the query string parameters of the URL.
Example:
https://tvp.tv/tvp/rtb/hb/request?account_id=XXXX&placement_id=XXXXYYYYYYY&c1=test&c2=5&c3=35 |
Query string parameters description:
Parameter | Scope | Type | Description |
account_id | required | string | TVP account ID from the endpoint URL. Provided by TheViewPoint |
placement_id | required | string | TVP placement ID from the endpoint URL. Provided by TheViewPoint |
c1-с10 | optional | string | Custom values 1 – 10 in the endpoint URL. c1-c5 can be used in reporting. c1-c10 can be used in targeting. |
Required parameters are used to map requests to the Publisher account and placement. Should be passed upon each request.
Custom parameters can be passed in the endpoint URL for providing parameters that are not described in OpenRTB specs (publisher-specific parameters) and can be used in reporting and targeting on TheViewPoint side.
If passing parameters in the query string is not supported other customized options of integration are possible.
Bid request specifics
TheViewPoint supports multiple impression objects within a bid request.
An “Impression” object has to contain a “video” object (other impression types are not supported).
Both Open Auction and Private deals (“PMP”) are supported.
Only 1st price auction type and currency “USD” are supported.
Ad pod impressions are not supported by default.
Supported video protocols are VAST 2.0/3.0 and VAST Wrapper 2.0/3.0
PMP Deals
TheViewPoint supports multiple pmp.deals objects with pmp.deals.id provided by TheViewPoint. Invalid pmp.deals objects will not be processed.
Mapping of pmp.deals.id to the publisher provided values are supported but require customized integration.
Bid request parameter custom scope
The list of important bid request parameters with custom scope:
Parameter | Scope | Type | Description |
cur | recommended | string | Only “USD” is supported. |
imp.video | required | object | A video object required if this impression is offered as a video ad opportunity. |
imp.video.mimes | required | string array | Content MIME types supported. Popular MIME types may include “video/x-ms-wmv” for Windows Media and “video/x-flv” for Flash Video. |
imp.video.protocols | optional (if passed must be one of the following values [2,3,5,6]) | integer array | The array of supported video protocols, supported [2,3,5,6] only. |
imp.video.w | required | integer | Width of the video player in device independent pixels (DIPS). |
imp.video.h | required | integer | Height of the video player in device independent pixels (DIPS). |
imp.video.placement | optional (if passed must be 1) | integer | Placement type for the impression. Only in-Stream is supported. |
imp.video.linearity | optional (if passed must be 1) | integer | Video Linearity. Only Linear is supported. |
imp.video.startdelay | recommended | integer | Indicates the start delay in seconds for pre-roll, mid-roll, or post-roll ad placements. |
app.bundle / site.domain | required | string | A platform-specific application identifier intended to be unique to the app and independent of the exchange. On Android, this should be a bundle or package name (e.g., com.foo.mygame). On iOS, it is a numeric ID. |
imp.pmp.deals.id | required | string | A Deal ID provided by TheViewPoint |
imp.pmp.private_auction | recommended | integer | Indicator of auction eligibility to seats named in a “direct deal” object; when 0 = then all bids are accepted when 1 = then bids are restricted to the deals specified and the terms thereof. |
imp.pmp.deals.bidfloorcur | optional | string | Only “USD” is supported. |
imp.pmp.deals.bidfloor | recommended | float; default 0 | Minimum bid for this impression expressed in CPM. |
imp.pmp.deals.at | optional (if passed must be 1) | integer | Optional override of the overall auction type of the bid request, only 1 = First Price is supported |
device.ip | recommended if geo object is not supplied | string | IPv4 address is closest to the device. |
site | required for web inventory | object | Details via a site object about the publisher’s website. Only applicable and recommended for websites. |
app | required for app inventory | object | Details via an app object about the publisher’s app (i.e., non-browser applications). Only applicable and recommended for apps. |
Bid request examples
Open Auction App bid request
{ "id": "eaf308f0ee96c2d1bb3bb4e4e9104529", "imp": [ { "id": "1", "video": { "mimes": [ "video/mp4" ], "minduration": 1, "maxduration": 90, "protocols": [ 1, 2, 3, 4, 5, 6 ], "w": 1280, "h": 720, "startdelay": -1, "linearity": 1, "sequence": 1, "battr": [ 9, 14 ], "minbitrate": 1, "maxbitrate": 280000, "pos": 0 }, "tagid": "329505279", "bidfloor": 19.8948, "bidfloorcur": "USD", "secure": 1, "exp": 7200 } ], "app": { "id": "2450220430534", "name": "KOLO 8 News Now", "bundle": "b00v3uruli", "storeurl": "https://www.amazon.com/Gray-Television-Group-Inc-KOLO/dp/B00V3URULI", "cat": [ "IAB12" ], "publisher": { "id": "12426643" }, "content": { "contentrating": "TV-PG", "genre": "news", "ext": { "network": "CNN", "channel": "CNN-news" } } }, "device": { "ua": "Mozilla/5.0 (Linux; Android 7.1.2; AFTMM) AppleWebKit/537.36 (KHTML, like Gecko) Silk/112.7.5 like Chrome/112.0.5615.213 Safari/537.36", "geo": { "lat": 39.55, "lon": -119.8, "type": 2, "country": "USA", "region": "NV", "metro": "811", "city": "reno", "zip": "89512", "utcoffset": -420, "ipservice": 4 }, "dnt": 0, "lmt": 0, "ip": "24.205.220.223", "devicetype": 3, "make": "Amazon", "model": "AFTMM", "os": "Fire OS", "language": "en" }, "at": 1, "tmax": 365, "bcat": [ "IAB25", "IAB26" ], "regs": { "ext": { "us_privacy": "1---", "gdpr": 0 } }, "source": { "ext": { "schain": { "complete": 1, "ver": "1.0", "nodes": [ { "asi": "springserve.com", "sid": "662", "hp": 1 }]}}}} |
PMP Deal App bid request
{ "id": "1faeaae7ef072aa89a5057aff597fa14", "imp": [ { "id": "1::::6N-RX1-29076-20230601195301", "video": { "mimes": [ "video/mp4" ], "minduration": 1, "maxduration": 30, "protocols": [ 1, 2, 3, 4, 5, 6 ], "w": 1920, "h": 1080, "startdelay": -1, "linearity": 1, "sequence": 1, "battr": [ 9, 14 ], "minbitrate": 400, "maxbitrate": 5000, "pos": 0 }, "tagid": "2182308864", "secure": 1, "pmp": { "private_auction": 1, "deals": [ { "id": "AA11O1653", "bidfloor": 21.0527, "at": 1 } ] }, "exp": 7200 } ], "app": { "id": "9860098102544", "name": "TiVo", "bundle": "tivo.dvr", "cat": [ "IAB1" ], "publisher": { "id": "36363235" }, "content": { "producer": { "name": "TiVo" } } }, "device": { "ua": "TiVo TCD849000 TiVo_STB/S6 (Linux) 21.11.1.v22-USC-11-849", "geo": { "lat": 40.48, "lon": -74.63, "type": 2, "country": "USA", "region": "NJ", "metro": "501", "city": "hillsborough", "zip": "08844", "utcoffset": -240, "ipservice": 4 }, "dnt": 0, "lmt": 0, "ip": "76.116.12.49", "devicetype": 3, "make": "Generic", "model": "SmartTV", "os": "Linux", "language": "en", "ifa": "d6745b0c-bc4c-4498-94a4-ae22051a6071", "ext": { "ifa_type": "ppid" } }, "at": 1, "tmax": 365, "bcat": [ "IAB25", "IAB26" ], "source": { "ext": { "schain": { "complete": 1, "ver": "1.0", "nodes": [ { "asi": "publica.com", "sid": "36363235", "hp": 1 }]}}}} |
Bid response specifics
The creative content will be included in the "adm" field of the bid response. This field will contain VAST XML.
TheViewPoint requires a win notification to be sent through the win notification URL (nurl).
Loss notifications (lurl) or billing notice URLs (burl) are not supported.
In the scenario where no ad is available to be served, TheViewPoint will respond with an HTTP 204 No Content status. This indicates that no ad can be displayed at that particular moment.
Bid response parameters
Field | Scope | Type | Description |
id | required | string | Identifier of the bid request. |
seatbid | required | objects array | The array of seatbid objects. |
seatbid.bid | required | objects array | The array of bid objects; each bid object relates to an imp object in the bid request. Note that, if supported by an exchange, one imp object can have many bid objects. |
seatbid.bid.id | required | string | ID for the bid object chosen by the bidder for tracking and debugging purposes. Useful when multiple bids are submitted for a single impression for a given seat. |
seatbid.bid.impid | required | string | The ID of the impression object to which this bid applies. |
seatbid.bid.price | required | float | Bid price in CPM. WARNING/Best Practice Note: Although this value is a float, OpenRTB strongly suggests using integer math for accounting to avoid rounding errors. |
seatbid.bid.nurl | required | string | Win notice URL. Note that ad markup is also typically, but not necessarily, returned via this URL. |
seatbid.bid.adm | required | string | Actual ad markup. XHTML if a response to a banner object, or VAST XML if a response to a video object, or JSON if the response is a Native object. Supersedes the win notice if the markup is included in both. |
seatbid.bid.adomain | required | string array | Advertiser’s primary or top-level domain for advertiser checking. This can be a list of domains if there is a rotating creative. However, exchanges may mandate that only one landing domain is allowed. |
seatbid.bid.cid | required | string | Campaign ID or similar that appears within the ad markup. |
seatbid.bid.crid | required | string | Creative ID for reporting content issues or defects. This could also be used as a reference to a creative ID that is posted with an exchange. |
seatbid.bid.dealid | optional | string | A unique identifier for the direct deal associated with the bid. If the bid is associated and in response to a dealid in the Request object it is required in the response object. |
seatbid.bid.h | optional | integer | Height of the ad in pixels. If the bid request contains the wmax/hmax and wmin/hmin optional fields it is recommended that the response bid contains this field to signal the size of the Ad chosen. |
seatbid.bid.w | optional | integer | Width of the ad in pixels. If the bid request contained the wmax/hmax and wmin/hmin optional fields it is recommended that the response bid contains this field to signal the size of the Ad chosen. |
seatbid.bid.protocol | optional | integer | Video response protocol of the markup if applicable. Refer to List 5.8. |
seatbid.seat | required | string | Identifier of the bidder seat on whose behalf this bid is made. |
bidid | required | string | Bid response ID to assist tracking for bidders. This value is chosen by the bidder for cross-‐reference. |
cur | required | string | Bid currency using ISO-‐4217 alphabetic codes; default is “USD”. |
Bid response example
{ "id": "85c5ec8c4ec1de9dbd42090cb4b1e41d", "seatbid": [ { "bid": [ { "id": "aae4c3c6-f108-4a0b-a66a-eb343ff0362a", "impid": "1", "price": 22.6, "nurl": "https://tvp.tv/tracking/events?data=AUsAAR4B_hgC_HYD1KYCBIi9BAULBgExOTIwLTEwOLAHAAgACQAKAAsADAANAA4ADwAQABEBVGlWbyBUQ0Q4NDkwMDAgVGlWb19TVEIvUzYgKExpbnV4KSAyMS4xMS4xLnYyMi1VU0MtMTEtODS5EgE3My4yNy4xNzMuMTWwE-ouFAAVAYEWABfUBhgBGQAaATJjNjQxMTBhLTExMGItNGNkZC1hYzE5LTI5OWM2MGFmMTcwuBv0RBzwkAwdngEeBQF0aXbvAB8JAXRpdm8uZHbyACABAAAhDAHnDwcKCzsJmpKmBAAiAQAAIwEAACQBBAAlAQYAJgEOACcCAYEAKEQBwgE4NWM1ZWM4YzRlYzFkZTlkYmQ0MjA5MGNiNGIxZTQxZC0xOjo6OjFSLVJYMS0yOTA3Ni0yMDIzMDYwMTE5NTMwMQApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEIADED6KoFADIBAgAzAQAANAEAADUBAAA2AQAANwEAADgEAAAAAAA5BAAAAAAAOgEAADsIAU1PREVMX7EAPAUBcHBp5AA9AQAAPgEAAD8BAABAAWQAQQEAAEIWAQBqYXZhLnV0aWwuVHJlZVNl9AEAAABDAQEARAEAAEUBAABGAQAARwcBAAEAAQIMAEgBDABJAQwASgEMAA==", "adm": "<VAST version=\"3.0\"><Ad id=\"tvp_AA11D1141\"><Wrapper><AdSystem>TheViewPoint</AdSystem><VASTAdTagURI><![CDATA[https://rtr.innovid.com/r1.5e108439503b77.01430018;cb=8893633776702803672?dipn=deviceid&deviceid=3EF986D8-AB07-46A0-B712-4DFBD6A8FE65&ivc_deviceid_raw=3EF986D8-AB07-46A0-B712-4DFBD6A8FE65&ivc_package=1606794418&ivc_line_item=1606794420&ivc_insertion_id=1606794331&ivc_creativeid=1606790285&ivc_advertiser_name=RECKITTBENCKISER-ZENITH&ivc_call_id=8893633776702803672]]></VASTAdTagURI><Error><![CDATA[https://tvp.tv/tracking/events?error_code=[ERRORCODE]&data=AUsAARwB_hgC_HYD1KYCBIi9BAULBgExOTIwLTEwOLAHAAgACQAKAAsADAANAA4ADwAQABEBVGlWbyBUQ0Q4NDkwMDAgVGlWb19TVEIvUzYgKExpbnV4KSAyMS4xMS4xLnYyMi1VU0MtMTEtODS5EgE3My4yNy4xNzMuMTWwE-ouFAAVAYEWABfUBhgBGQAaATJjNjQxMTBhLTExMGItNGNkZC1hYzE5LTI5OWM2MGFmMTcwuBv0RBzwkAwdngEeBQF0aXbvAB8JAXRpdm8uZHbyACABAAAhDAHnDwcKCzsJmpKmBAAiAQAAIwEAACQBBAAlAQYAJgEOACcCAYEAKEQBwgE4NWM1ZWM4YzRlYzFkZTlkYmQ0MjA5MGNiNGIxZTQxZC0xOjo6OjFSLVJYMS0yOTA3Ni0yMDIzMDYwMTE5NTMwMQApAf8AKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEIADED6KoFADIBAgAzAQAANAEAADUBAAA2AQAANwEAADgEAAAAAAA5BAAAAAAAOgEAADsIAU1PREVMX7EAPAUBcHBp5AA9AQAAPgEAAD8BAABAAWQAQQEAAEIWAQBqYXZhLnV0aWwuVHJlZVNl9AEAAABDAQEARAEAAEUBAABGAQAARwcBAAEAAQIMAEgBDABJAQwASgEMAA==]]></Error><Impression><![CDATA[https://tvp.tv/tracking/events?data=AUsAAQMB_hgC_HYD1KYCBIi9BAULBgExOTIwLTEwOLAHAAgACQAKAAsADAANAA4ADwAQABEBVGlWbyBUQ0Q4NDkwMDAgVGlWb19TVEIvUzYgKExpbnV4KSAyMS4xMS4xLnYyMi1VU0MtMTEtODS5EgE3My4yNy4xNzMuMTWwE-ouFAAVAYEWABfUBhgBGQEAamF2YS5tYXRoLkJpZ0RlY2ltYewBAy7gDBoBMmM2NDExMGEtMTEwYi00Y2RkLWFjMTktMjk5YzYwYWYxNzC4G_REHPCQDB2eAR4FAXRpdu8AHwkBdGl2by5kdvIAIAEAACEMAecPBwoLOwmakqYEACIHAQABAwlgDAAjAQAAJAEEACUBBgAmAQ4AJwIBgQAoRAHCATg1YzVlYzhjNGVjMWRlOWRiZDQyMDkwY2I0YjFlNDFkLTE6Ojo6MVItUlgxLTI5MDc2LTIwMjMwNjAxMTk1MzAxACkBAAAqAQAAKwEAACwBAAAtAQAALgEAAC8BAAAwAQkAMQPoqgUAMgECADMBAAA0AQAANQEAADYBAAA3AQAAOAQAAAAAADkEAAAAAAA6AQAAOwgBTU9ERUxfsQA8BQFwcGnkAD0BAAA-AQAAPwEAAEABZABBAQAAQhYBAWphdmEudXRpbC5UcmVlU2X0AQAAAEMBAQBEAQAARQEAAEYBAABHBwEBAQABAgwASAEOAEkBDgBKAQ4A&account_id=BC15]]></Impression><Creatives><Creative><Linear><TrackingEvents><Tracking event=\"complete\"><![CDATA[https://tvp.tv/tracking/events?data=AUsAAQcB_hgC_HYD1KYCBIi9BAULBgExOTIwLTEwOLAHAAgACQAKAAsADAANAA4ADwAQABEBVGlWbyBUQ0Q4NDkwMDAgVGlWb19TVEIvUzYgKExpbnV4KSAyMS4xMS4xLnYyMi1VU0MtMTEtODS5EgE3My4yNy4xNzMuMTWwE-ouFAAVAYEWABfUBhgBGQAaATJjNjQxMTBhLTExMGItNGNkZC1hYzE5LTI5OWM2MGFmMTcwuBv0RBzwkAwdngEeBQF0aXbvAB8JAXRpdm8uZHbyACABAAAhDAHnDwcKCzsJmpKmBAAiAQAAIwEAACQBBAAlAQYAJgEOACcCAYEAKEQBwgE4NWM1ZWM4YzRlYzFkZTlkYmQ0MjA5MGNiNGIxZTQxZC0xOjo6OjFSLVJYMS0yOTA3Ni0yMDIzMDYwMTE5NTMwMQApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEIADED6KoFADIBAgAzAQAANAEAADUBAAA2AQAANwEAADgEAAAAAAA5BAAAAAAAOgEAADsIAU1PREVMX7EAPAUBcHBp5AA9AQAAPgEAAD8BAABAAWQAQQEAAEIWAQBqYXZhLnV0aWwuVHJlZVNl9AEAAABDAQEARAEAAEUBAABGAQAARwcBAAEAAQIMAEgBDABJAQwASgEMAA==]]></Tracking><Tracking event=\"firstQuartile\"><![CDATA[https://tvp.tv/tracking/events?data=AUsAAQQB_hgC_HYD1KYCBIi9BAULBgExOTIwLTEwOLAHAAgACQAKAAsADAANAA4ADwAQABEBVGlWbyBUQ0Q4NDkwMDAgVGlWb19TVEIvUzYgKExpbnV4KSAyMS4xMS4xLnYyMi1VU0MtMTEtODS5EgE3My4yNy4xNzMuMTWwE-ouFAAVAYEWABfUBhgBGQAaATJjNjQxMTBhLTExMGItNGNkZC1hYzE5LTI5OWM2MGFmMTcwuBv0RBzwkAwdngEeBQF0aXbvAB8JAXRpdm8uZHbyACABAAAhDAHnDwcKCzsJmpKmBAAiAQAAIwEAACQBBAAlAQYAJgEOACcCAYEAKEQBwgE4NWM1ZWM4YzRlYzFkZTlkYmQ0MjA5MGNiNGIxZTQxZC0xOjo6OjFSLVJYMS0yOTA3Ni0yMDIzMDYwMTE5NTMwMQApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEIADED6KoFADIBAgAzAQAANAEAADUBAAA2AQAANwEAADgEAAAAAAA5BAAAAAAAOgEAADsIAU1PREVMX7EAPAUBcHBp5AA9AQAAPgEAAD8BAABAAWQAQQEAAEIWAQBqYXZhLnV0aWwuVHJlZVNl9AEAAABDAQEARAEAAEUBAABGAQAARwcBAAEAAQIMAEgBDABJAQwASgEMAA==]]></Tracking><Tracking event=\"midpoint\"><![CDATA[https://tvp.tv/tracking/events?data=AUsAAQUB_hgC_HYD1KYCBIi9BAULBgExOTIwLTEwOLAHAAgACQAKAAsADAANAA4ADwAQABEBVGlWbyBUQ0Q4NDkwMDAgVGlWb19TVEIvUzYgKExpbnV4KSAyMS4xMS4xLnYyMi1VU0MtMTEtODS5EgE3My4yNy4xNzMuMTWwE-ouFAAVAYEWABfUBhgBGQAaATJjNjQxMTBhLTExMGItNGNkZC1hYzE5LTI5OWM2MGFmMTcwuBv0RBzwkAwdngEeBQF0aXbvAB8JAXRpdm8uZHbyACABAAAhDAHnDwcKCzsJmpKmBAAiAQAAIwEAACQBBAAlAQYAJgEOACcCAYEAKEQBwgE4NWM1ZWM4YzRlYzFkZTlkYmQ0MjA5MGNiNGIxZTQxZC0xOjo6OjFSLVJYMS0yOTA3Ni0yMDIzMDYwMTE5NTMwMQApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEIADED6KoFADIBAgAzAQAANAEAADUBAAA2AQAANwEAADgEAAAAAAA5BAAAAAAAOgEAADsIAU1PREVMX7EAPAUBcHBp5AA9AQAAPgEAAD8BAABAAWQAQQEAAEIWAQBqYXZhLnV0aWwuVHJlZVNl9AEAAABDAQEARAEAAEUBAABGAQAARwcBAAEAAQIMAEgBDABJAQwASgEMAA==]]></Tracking><Tracking event=\"thirdQuartile\"><![CDATA[https://tvp.tv/tracking/events?data=AUsAAQYB_hgC_HYD1KYCBIi9BAULBgExOTIwLTEwOLAHAAgACQAKAAsADAANAA4ADwAQABEBVGlWbyBUQ0Q4NDkwMDAgVGlWb19TVEIvUzYgKExpbnV4KSAyMS4xMS4xLnYyMi1VU0MtMTEtODS5EgE3My4yNy4xNzMuMTWwE-ouFAAVAYEWABfUBhgBGQAaATJjNjQxMTBhLTExMGItNGNkZC1hYzE5LTI5OWM2MGFmMTcwuBv0RBzwkAwdngEeBQF0aXbvAB8JAXRpdm8uZHbyACABAAAhDAHnDwcKCzsJmpKmBAAiAQAAIwEAACQBBAAlAQYAJgEOACcCAYEAKEQBwgE4NWM1ZWM4YzRlYzFkZTlkYmQ0MjA5MGNiNGIxZTQxZC0xOjo6OjFSLVJYMS0yOTA3Ni0yMDIzMDYwMTE5NTMwMQApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEIADED6KoFADIBAgAzAQAANAEAADUBAAA2AQAANwEAADgEAAAAAAA5BAAAAAAAOgEAADsIAU1PREVMX7EAPAUBcHBp5AA9AQAAPgEAAD8BAABAAWQAQQEAAEIWAQBqYXZhLnV0aWwuVHJlZVNl9AEAAABDAQEARAEAAEUBAABGAQAARwcBAAEAAQIMAEgBDABJAQwASgEMAA==]]></Tracking><Tracking event=\"start\"><![CDATA[https://tvp.tv/tracking/events?data=AUsAAQIB_hgC_HYD1KYCBIi9BAULBgExOTIwLTEwOLAHAAgACQAKAAsADAANAA4ADwAQABEBVGlWbyBUQ0Q4NDkwMDAgVGlWb19TVEIvUzYgKExpbnV4KSAyMS4xMS4xLnYyMi1VU0MtMTEtODS5EgE3My4yNy4xNzMuMTWwE-ouFAAVAYEWABfUBhgBGQAaATJjNjQxMTBhLTExMGItNGNkZC1hYzE5LTI5OWM2MGFmMTcwuBv0RBzwkAwdngEeBQF0aXbvAB8JAXRpdm8uZHbyACABAAAhDAHnDwcKCzsJmpKmBAAiAQAAIwEAACQBBAAlAQYAJgEOACcCAYEAKEQBwgE4NWM1ZWM4YzRlYzFkZTlkYmQ0MjA5MGNiNGIxZTQxZC0xOjo6OjFSLVJYMS0yOTA3Ni0yMDIzMDYwMTE5NTMwMQApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAAMAEIADED6KoFADIBAgAzAQAANAEAADUBAAA2AQAANwEAADgEAAAAAAA5BAAAAAAAOgEAADsIAU1PREVMX7EAPAUBcHBp5AA9AQAAPgEAAD8BAABAAWQAQQEAAEIWAQBqYXZhLnV0aWwuVHJlZVNl9AEAAABDAQEARAEAAEUBAABGAQAARwcBAAEAAQIMAEgBDABJAQwASgEMAA==]]></Tracking></TrackingEvents></Linear></Creative></Creatives><Extensions><Pricing currency=\"USD\" model=\"CPM\"><![CDATA[ 22.6 ]]></Pricing></Extensions></Wrapper></Ad></VAST>", "adomain": [ "lysol.com" ], "cid": "AA11D1141", "crid": "AA11D1141", "w": 1, "h": 1, "protocol": 6, "dealid": "AA11O1653" } ], "seat": "AA11B001" } ], "bidid": "eb3b2416-d50e-4835-b21b-3a75f533481e", "cur": "USD" } |
Impression tracking
TheViewPoint provides an impression pixel in the ADM field of the bid response, in the standard VAST XML <Impression> object.
TheViewPoint expects the Publisher video player automatically fires the impression pixel once the video starts to display on the consumers screen.
TheViewPoint default Impression pixel lifespan is 2 hours. The impressions will be tracked successfully if the notification came within 2 hours after the bid request was received. Impression pixel lifespan change is supported but requires customized integration.
Duplication of the same impression pixel, an impression for the same bid request id, impression pixels that came after 2 hours of the bid request time will not be tracked on TheViewPoint side and may lead to the discrepancies.