
Summary
Overview
Demo
Compliancy
Creatives
Creative template parameters
Features
Metrics
Limitations
Known issues
Release notes
Overview
Formerly named "Smart Video-Read" / "RTB+ Smart Video-Read". The "In-read" creative template displays a video ad, for which it automatically determines the best position within the page content. It automatically pauses/resumes video playback when video visibility is below/above 50% ensuring maximum advertising impact.
Demo
In-read demo
Compliancy
Criterion | Compliancy |
---|
RTB | ✅ |
VAST 4.2 and lower | ✅ |
VAST wrapper | ✅ |
VPAID | ✅ |
SIMID | ❌ |
Creative rotation | ✅ |
Responsive web design | ✅ |
Friendly iFrame | ✅ |
Viewability counting (MRC standard)* | ✅ |
* Viewability measurement is limited to the initial position of the ad - no viewability measurement when the ad is in mini player mode
Creatives
This section applies for the direct creative template only.
Supported video files:
- mp4, webm (use files with high resolution and bitrate)
- any VAST redirect containing the formats: mp4, ogg, webm, javascript (for VPAID only)
Note 1: In case of VAST redirects, the ad format picks the most appropriate file to play according to the following priorities: (1) mp4, (2) webm, (3) ogg, (4) javascript.
Note 2: In case of VAST redirects, use the "Paste script" creation method and paste the URL or the entire XML into the "Creative script" field.
Note 3: This ad format will be billed only when the user watches the first frame of the ad or when the banner will be displayed ("Show banner first" feature).
Creative template parameters
Name | Description | Default value |
---|
Position |
Selected position
|
Select position of the ad
- ad placement: display the ad where Equativ tags are inserted. If you choose this option, leave the other positions fields empty.
- automatic: place ad automatically in the page content. This beta option may be helpful for customers who want to deliver one insertion on many sites. If you choose this option, leave the other positions fields empty. Read more about the automatic positioning algorithm in the chapter "Positioning options" below
- paragraph by id: specifies id or more ids of elements which contain article text. Separate them by semicolon if needed. Equativ will try find paragraphs inside this element.
- paragraph by class name: specifies class name or more class names of elements which contain article text. Separate them by semicolon if needed. Equativ will try find paragraphs inside this element.
- paragraph by itemprop: specifies item prop or more item props of elements which contain article text. Separate them by semicolon if needed. Equativ will try find paragraphs inside this element.
- specified element by id: appends ad inside element with specified id.
- specified element by class name: appends ad inside element with specified class name.
| ad placement |
Identifier's names | Specifies identifier or more identifiers of elements. Separate them by semicolon if needed. Equativ will put an ad inside it | |
Paragraph type | Specifies type of paragraph (p, div, ...) inside specified article. Value of this field won't be taken into account if ad placement or automatic is selected | p |
Position in paragraph | Specifies position of an ad in paragraph. If you choose automatic, algorithm will pick the best place for showing an ad. Top/bottom means ad will be placed in the top/bottom of specified article. To have an ad placed in specified position - choose specified paragraph. | automatic |
Specified paragraph's number | Places an ad after the specified paragraph, e.g. paragraph no. 3. If there is not enough paragraphs on a page - the ad will be placed after the last one. This field will be used only if you chosen the specified paragraph in the Position in paragraph option. | 1 |
Player options |
Max ad's container width (px/%) |
Specifies max width of the ad's container. Do not forget the unit (e.g. 750px, 100%)! Please note that percentage value refers to max width of parent container. There is no height param. This creative template calculates it by itself. Note: Use '!' symbol to have a fixed width of the video player (e.g. 400px! what means that the video player will have 400px width and proportional height. Make sure you read the warning "Player width in RTB In-read creative template" below.
| 100% |
Trigger start/pause | Part of the player (in %) which needs to be visible to start/pause the video ad. Note, if you put 0, the player will be shown immediately even it's not in the viewport. | 50 |
Animation | Specifies if there is a transition when player and mini player are showing and hiding | true |
Mute/Unmute on hover | Specifies if sound is muted/unmuted on mouse out/on.
Please notice that the newest version of Chrome and Safari browsers do not allow to programmatically mute / unmute video. In that case video player may be paused instead of muted / unmuted. We recommend to keep this option disabled. | false |
Loop video | Specifies if video is looped | false |
Collapse at the end | Specifies if the video will collapse at the end or will the replay button appear | true |
zIndex | Specifies zIndex of the creative | 1 |
Tracking url(s) | Separate tracking URLs by "||" if required; make sure you add [timestamp] to the URL for cache busting | |
Duration label |
Specifies the duration label; Note: Use {0} in label to count down the time until the end of the ad
| End of ad break in {0} s |
Button options |
Creative feedback | Shows creative feedback button | true |
Fullscreen button | Specifies if player has a fullscreen button | false |
Play/pause button | Specifies if player has play/pause buttons | false |
Volume button | Specifies if player has a volume button | true |
Force close button | Forces an additional close button coming from the template to be able to close 3rd party VPAID creatives which are not allowing to close the ad | false |
Controls color | Specifies the controls color | #cccccc |
Auto hide | Specifies if buttons should be hidden after a while; this option works only if "Bar mode" param is set to "FLOATING" | true |
Skipping options |
Skip time |
Specifies the delay time before the close button will appear; Note: VAST wrappers overwrite this value
| 5 |
Skip label | Specifies the skip label; Note: use {0} in label to count down the time | You can close Ad in {0} s |
Bar options |
Bar mode | Specifies the bar mode | FLOATING |
Bar opacity | Specifies the opacity of the bar; this option works only if "Bar mode" param is set to "FLOATING" | 0.5 |
Mini player options |
Enable mini player | Unleashes the player from its position when scrolling, if its visibility is less than 51% | false |
Start mini player on page loaded | On page load, if the main player isn't visible, directly start the video using the mini-player. This option is useful when "Enable mini-player" is active. See animation of a mini player loaded on page load in chapter "Demo" above. Note: also the option Trigger start/pause should be set to 0 | false |
Width of mini player | Specifies the max. width of the mini player; make sure you enter the unit (e.g. 750px, 100%); a percentage value refers to the "max-width" of the initial container; there is no height param (this creative template calculates it by itself) | 50% |
Mini player position |
Specifies the position of the mini-player:
- "left/right" - moves the mini-player to the left/right side relative to the top-left corner of the initial place of the ad container
- "top-left/top-right/bottom-right/bottom-left" - pins the mini-player to the chosen corner of the viewport
| bottom-right |
Mini player Offset X (in px) |
Specifies the horizontal offset of the mini player:
- if the Position option is set to "left/right", it is measured from the top-left corner of initial place of the ad container
- if the Position option is set to "top-left/top-right/bottom-right/bottom-left", it is measured from the chosen corner of viewport
This value must be greater than or equal to 0.
| 0 |
Mini player Offset Y (in px) |
Specifies the vertical offset of the mini player:
- if the Position option is set to "left/right", it is measured from the top of the browser window
- if the Position option is set to "top-left/top-right/bottom-right/bottom-left", it is measured from the chosen corner of viewport
This value must be greater than or equal to 0.
| 0 |
Text label options |
Label text | Specifies the label which appears above the player | Advertisement |
Label font size | Specifies the font size of the label | 12 |
Label font color | Specifies the color of the label text | #cccccc |
Banner options |
Banner url | Specifies if the ad has a banner above the video | |
Banner width | Specifies the width of the banner | 300px |
Banner height | Specifies the height of the banner | 50px |
Is banner scalable | Specifies if the banner is scalable; Note: the banner scales in relation to the "Max width" param of the video | true |
Expand options: |
Enable expand | Enable expand mode | false |
Expand direction | Specifies expand direction | bottom left |
Expand width | Specifies expand width. Do not forget the unit! E.g. 750px, 100%. Please note that percentage value refers to width of the initial container. | 600px |
Expand height | Specifies expand height.Do not forget the unit! E.g. 750px, 100%. Please note that percentage value refers to height of the initial container. | 400px |
Expand tracking url | It will be called when expand action occurs. Remember to add [timestamp] to url so it is called correctly | |
Collapse tracking url | It will be called when collapse action occurs. Remember to add [timestamp] to url so it is called correctly | |
RTB options (only for the RTB template) |
Video player width | Specifies the video player width (in px); the height will be calculated automatically using the aspect ratio (16:9). Make sure you read the warning "Player width in RTB In-read creative template" below. | |
Minimum duration | The minimum ad duration, in second(s) | |
Maximum duration | The maximum ad duration, in second(s) | |
Minimum bitrate | The minimum expected bitrate for the video creative, in Kbps | |
Maximum bitrate | The maximum expected bitrate for the video creative, in Kbps | |
Features
The In-read can analyze the publisher's content and automatically identify the best position where the ad can be displayed. When the user scrolls down the page while reading the content, the In-read waits until more than a specified percentage of the ad's surface (50% by default) is visible. At that point it will autoplay expanding the publisher's page. Once the video ad is watched until the end, it automatically disappears.
This ad format also has the ability to unleash the player from its position while scrolling (Mini player option) and to expand player to preset size (Expand option).
Responsive web design support
The size of the video ad can be adjusted to the container where the video player is placed if you choose a percentage value for the "max width" parameter.
Player width in In-read creative template
When using the In-read creative template:
- make sure you define the "Video player width" parameter in the "RTB options". The height will be calculated automatically using the aspect ratio (16:9). For example, if you set a width of 300px, the height will be 168px.
- make sure you define the "Max ad's container width (px/%)" in the "Player options". This value (100% by default) refers to the max. width of the parent container. If you want the width of the ad to match the "Video player width" parameter defined in the "RTB options", use the '!' character to set a fixed video player width; for instance, define 300px! for a video player width of 300px and the proportional height
Automatic pausing/resuming
The In-read automatically pauses/resumes the video when the visibility is below/above a specified percentage in order to ensure maximum impact for the advertiser.

Mute/Unmute
By default, the sound is off upon mouse hover but the behavior is completely customizable.
Positioning options
You can position the ad as follows:
- ad placement (default) - video is appended inside the Equativ tag
- automatic - it places your ad automatically in the page content; it is useful when serving the In-read on many different sites; no other positioning options are required; see explanation of the automatic positioning algorithm below
- paragraph by id, paragraph by class name, paragraph by item prop, specified element by id, specified element by class name - place ad in a specific element (which can be determined by Identifier's names and Paragraph type options)
- position in paragraph - allow to set specific place in paragraph where to show video
- specified paragraph's number - allow to place ad after the specified paragraph
If the creative template cannot find the element where you chose to position the ad, a fallback mechanism will kick in to determine and display the ad at the best possible location. This ensures monetization even if the ad placement configuration is incorrect.
Automatic positioning algorithm
The algorithm, applied if the position of the ad is set to "automatic", works as follows:
- list all HTML nodes except script, style, title, label, header, h2, li, a, ul, form, figure, noscript, iframe as soon as the page is rendered
- determine if the page is an article based on the criteria: (1) at least 3 text nodes with the same parent; (2) at least 150 characters per text node; (3) 300px offset of the parent node from the top of the page; if the criteria apply, then the ad is placed at approximately 30% of the article content
- if the page is not an article, attempt to find a collection of HTML nodes with the same parent matching with the criteria: (1) ordered from top to bottom and by width (the wider the better); (2) nodes with at least 300x100px; (3) parent node with a 300px offset from the top of the page (4) no style overflow:hidden of parent node (5) no position absolute, fixed of parent node
- attempt to find a node matching the criteria: (1) placed in the first 50% of the page; (2) offset from top about 75% the height of the screen; (3) size of at least 300x100px; (4) no position absolute, fixed
If the algorithm cannot find any appropriate spot, an error is logged in the console.
Event listening
The In-read supports the following events: adBegin, adDuration, adEnd and adError. You can listen to these events to control the functioning of your site.
Any event contains the parameter formatId to get which formatId (on the page) fired the event:
window.addEventListener('adBegin', function (e) {
console.log(e.formatId);
});
adBegin / adEnd
For instance, if your website has a video player playing video content, you can mute that player when the ad appears and unmute when it disappears:
window.addEventListener('adBegin', function (e) {
document.querySelector('video').muted = true;
});
adDuration
The adDuration provides access to the videoDuration property, which can be useful to retrieve the duration of the whole video ad:
window.addEventListener('adDuration', function (e) {
console.log(e.videoDuration);
});
adError
To take an action when there is an error or the VAST is empty:
window.addEventListener('adError', function (e) {
console.log("Ad error occured");
});
The legacy names of custom events are still supported (sasVideoStart, sasVideoEnd, sasVideoDuration).
Force VPAID media files
To update media files selection and prioritize VPAID creatives the sasVpaidFirst variable can be used with a value of true. The below snippet can be added as a custom script:
<script> sasVpaidFirst = true; </script>
Metrics
The player and event logging start when the player is visible at least as defined in the Trigger start/pause parameter. Additionally, if there is problem with the VAST parsing (error or empty response), the "viewerror" metric is logged.
Also see the Video metrics article.
Limitations
- The newest version of Chrome and Safari browsers do not allow to programmatically mute / unmute video. In that case video player may be paused instead of muted / unmuted. We recommend to keep "On mouse over unmute" and "On mouse out mute" options disabled.
- Mini player can't be correctly positioned on a page in case a parent element is affected by a transform or position:fixed style effect
Known issues
- Some of the VPAID creatives are not scalable so they may be rendered incorrectly in the fullscreen and mini-player mode
- If an In-read insertion is called from another primary ad server (e. g. Google), the ad call may be in too many containers, resulting in incorrect dimension calculations: the creative may be shown smaller than it should be. Pasting the script below into the Custom script field may fix this issue:
<script type="text/javascript">
(function(w){
var d=w.document, h=d.getElementsByTagName('head')[0], b=d.body;
var css='#sas_[sas_formatId], #sas_container_[sas_insertionId]{width:300px !important;height:250px !important;}#sas_[sas_formatId]{margin:auto;}#sas_videoDiv_formatId], #sas_relDiv_[sas_insertionId]{width:300px !important;height:200px !important;}',
style=d.createElement('style');
style.type='text/css';
if (style.styleSheet) style.styleSheet.cssText=css;
else style.appendChild(document.createTextNode(css));
if (typeof w.sas_ajax != 'undefined' && w.sas_ajax) w.sas_appendToContainer([sas_formatId], style);
else h.appendChild(style);
})(window.top);
</script>
Release notes
- 20-01-2025 - Update for click counting URL for RTB template
- 08-01-2025 - Improved CLS score
- 12-11-2024 - Fixed double banner
- 29-10-2024 - Fixed skip label for mini player
- 21-10-2024
- Added creative feedback and DSA button
- Removed "Show video button options", "Show banner first", "Banner position" parameters,
- 25-09-2024 - Added support for OMSDK
- 24-01-2024 - Removed support for obsolete macros
- 16-10-2023 - Updated Video Placement Type parameter
- 03-10-2023 - Technical improvements
- 18-07-2023 - Added new RTB macros
- 05-04-2023 - Updated sas-libs version to 1.1
- 25-01-2023 - Select the most appropriate creative encoded version based on bandwidth and resolution
- 14-06-2022 - RTB send Playback Method with Bid Request
- 30-05-2022 - Add 'Collapse ad the end' option
- 04-11-2021 - Fix for video resizing in the mini-player mode for Android device
- 21-04-2021 - Fix for creatives rotation mode
- 13-05-2020 - Removed start muted custom parameter
- 20-04-2020 - Removed RTB parameters from click count pixel
- 25-03-2020 - Fix click issue of some VPAID creatives
- 07-01-2020 - Fix CSS issue for rendering VPAID creatives
- 05-08-2019 - Add new options for banner position
- 19-06-2019 - Add new user parameter *Start player on page loaded*, which activates mini player when ad is loaded
- 13-06-2019 - Added the ‘Start on page load’ option to the mini-player to allow it to directly start even when the main player isn’t visible.
- 30-05-2019 - Added support for video placement types (OpenRTB 2.5) in RTB template
- 05-02-2019 - Viewability module improvements - Measures are now more accurate and more integrations are covered
- 28-01-2019 - Add RTB dimensions in click url
- 03-01-2019 - Fix for pausing video on hover for VPAID creatives
- 10-10-2018 - To be able to use the In-read template in the same way as the deprecated Video-Inline the option Animation has been added to specify if there are transitions when player and mini player are showing and hiding. Additionally, there is a possibility to set the start/pause trigger to 0 what means that the player will be showed and start playing immediately even the placement is not visible.
- 26-09-2018 - Fix for media files without protocol
- 11-09-2018 - Add tracking pixel for "Expand" module
- 03-09-2018 - Fix for Header Bidding compliancy, add support of extra parameter to "Max-width" option
- 18-07-2018 - Merged with In-read for Mobile and Video-Inline
- 23-05-2018 - Changed default values of mouse over options
- 07-05-2018 - Mini-player fix (not pausing player in mini-player mode)
- 03-04-2018 - Triggering video play and pause depends on player visibility
- 28-03-2018 - Positioning ad inside the Equativ tag
- 05-02-2018 - Checking offset top value of element
- 22-01-2018 - Updated meta parameters
- 05-12-2017 - Fix for pages with body's height set to 100%
- 13-11-2017 - Improved creative resizing for "Mini player" feature
- 18-10-2017 - Updated meta parameters in RTB template
- 27-09-2017 - Updated meta parameters in RTB template
- 22-09-2017 - Update for tracking URL parameters
- 21-08-2017 - Fix for sas.clean and sas.refresh functions; Support for standalone tag
- 10-08-2017 - New algorithm for automatic position feature
- 06-07-2017 - Remove "Minimum duration" and "Maximum duration" default values for RTB template
- 05-07-2017 - Remove "Playback method" user parameter from RTB template and replace it with value from "Start muted" field
- 04-07-2017 - Add possibility to pin mini-player to screen corners
- 22-06-2017 - Forced close button added
- 20-06-2017 - Remove duplicated "complete" tracking pixel in VPAID
- 23-05-2017 - Update for HTML5 player
- 22-05-2017 - Add "Offset Y" parameter for "Mini player"
- 17-05-2017 - Rename option "Unleash" by "Mini player"
- 21-04-2017 - Add Unleash the player option
- 13-04-2017 - New fields order in the position section
- 21-03-2017 - Remove useless option "Show anyway"
- 14-03-2017 - Fix for URL for media files with get-parameters at the end
- 23-02-2017 - Automatic position of the ad
- 01-12-2016 - Update for html5 player
- 28-11-2016 - Support for custom events and add the Specified paragraph's number option
- 07-11-2016 - Fix for blocked video player on latest version of Google Chrome
- 18-10-2016 - Choose the best file to play according to priority (VAST redirects)
- 06-10-2016 - Support for .flv files and VPAID with flash creatives
- 04-10-2016 - Stretch video to the container instead of zooming it
- 29-09-2016 - Fix for FIF delivery
- 26-09-2016 - Add Max width and Scalable options
- 21-09-2016 - Update for HTML5 player + fix for VPAID
- 26-08-2016 - Show banner first option