Placements are entities representing “real-estate spaces” on screen, i.e. HTML elements into which we render ads. Placement entities connect channels to custom placements on any site utilizing CSS selectors and allow customization of the placement’s behavior when showing AniView Aniview instream or outstream players.
Table of Contents |
---|
Placement Element
The player is created on an element id specified by placementConfig.position
:
Code Block | ||
---|---|---|
| ||
<div id="aniplayer"></div> |
Placement Configuration
The configuration of the placement is a configuration object with properties that instruct the placement on how to handle the placement element and render the correct ad.
...
Code Block | ||
---|---|---|
| ||
var placementConfig = { publisherId: '[Publisher_ID]', channelId: '[Channel_ID]', ref1: '', width: 300, height: 250, errorLimit: 5, position : 'aniplayer' }; |
Placement Javascript
The player code is located at https://player.aniview.com/script/webm/aniview-displayads.js
Placement Instantiation
Code Block | ||
---|---|---|
| ||
myPlacement = new avDisplay(placementConfig); myPlacement.play(); |
Putting it all together
Code Block | ||
---|---|---|
| ||
<div id="aniplayer"></div> <script type="text/javascript" id="aniviewJS"> (function() { var myPlacement; var placementConfig = { publisherId: '[Publisher_ID]', channelId: '[Channel_ID]', ref1: '', width: 300, height: 250, errorLimit: 5, position : 'aniplayer' }; (new Image).src = "https://track1.aniview.com/track?pid="+placementConfig.publisherId+"&cid="+placementConfig.channelId+"&e=playerLoaded"+"&cb="+Date.now(); var placementUrl = 'https://player.aniview.com/script/webm/aniview-displayads.js'+'?v=1&type=s&pid='+placementConfig.publisherId; function downloadScript(src,adData) { var scp = document.createElement('script'); scp.src = src; scp.onload = function() { myPlacement = new avDisplay(placementConfig); myPlacement.play(); }; document.getElementsByTagName('head')[0].appendChild(scp); }; downloadScript(placementUrl,placementConfig); })(); </script> |
placementConfig Configuration Options
Name | Mandatory | Default Value | Values | Description |
publisherId | Yes | String | Aniview publisher id | |
channelId | Yes | String | Aniview channel id from the same account of the publisher id used | |
position | Yes | String | the div id where the player should be created | |
width | yes | Number | The player width in pixels If width = 100 and height = 0, width is auto detected based on containing element | |
height | yes | Number | The player height in pixels If width = 100 and height = 0, height is auto detected based on containing element and is calculated as width / 1.777 |
creativeDimensions | No | [{ w: Number, h: Number |
Minimum player height - Used with width/height of 100/0
minWidth
No
Number
Minimum player width - Used with width/height of 100/0
maxRun
}] | Specific dimensions for the creatives to be rendered to this placement. | |||
refresh | No | Object | refresh policy config | |
strategy | No | Interval | String | AutoStart, Interval, None |
interval | No | 30 000 | Number | 30 000 / 60 000 / 90 000 miliseconds |
maxRun | No | 9999 | Number | Maximum number of waterfall runs in the player session |
maxImp | No | 9999 | Number | Maximum number of impressions per player session |
errorLimit | No | 5 | Number | Maximum number of (1 + vastRetry) runs of the waterfall that do not generate impression. This means (1 + vastRetry) * (1 + errorLimit) - max number of consecutive waterfall runs that do not generate impression If there is an impression the counter reset to 0 |
ref1 | No | String | Macro list ref1: “AV_MACRO1=value1&AV_MACRO2=value2“ Values should be URL encoded |
clickthrough
String
Array
Clickthrough url when clicking on the content. Not relevant in js
If preloader is Content, can also be an array of clickthrough urls per video in the content array
clickThrough | No |
false
Object | Show or not the skip button |
skipTimer
No
Number
Time to wait before showing the skip button. Required to be > 0 for skip button functionality
stickyPosition?
string
different position to the placement if needed
color
string
isPassbackEnabled
boolean
refresh
object
as per refresh config
playerInReadSize
{width: Number, height: Number}
playerStickySize
{width: Number, height: Number}
hideControls
No
false
Boolean
Hide player controls or not
refresh
No
object
refresh policy config
strategy
string
AutoStart, Interval, None
interval
No
number
30/60/90 seconds
url | No | String |
Text to show in skip button
passback
No
object
config for showing passback for placement
desktopSettings
No
object
allows setting overriding configs to the placement in case of desktop
width
No
number
height
No
number
creativeDimensions
No
[{
w:Number,
h: Number
}]
mobileSettings
No
object
just like desktop settings but for mobile, with 2 extra fields
Clickthrough url when clicking on the ad |
Placement API
avDisplay(placementConfig)
Instantiate the placement object with the placementConfig configuration.
start()
Start/resume the placement instance, including ad flow.
stop()
Stop the placement, including ad flow.
close() / destroy()
Close the placement and stop its functionality completely.
getWidth()
Returns the player width in pixels
getHeight()
Returns the player height in pixels
on(evt, func, context)
Register an event listener for placement events
hasNext()
Returns whether we have a ready ad to render for this placement.
show()
Shows the placement, resuming it and the ad flow (no re-construction).
hide()
Hides the placement, stopping it and the ad flow (no destruction).
startInRead()
Applies in-read appearance to the placement.
startInFloat(FloatingConfig
)
Applies floating appearance to the placement, as specific in FloatingConfig:
startInSticky(StickyConfig
)
Applies floating appearance to the placement, as specific in StickyConfig:
resetAppearance()
...
width
Returns the placement width in pixels.
height
Returns the placement height in pixels.
hasLoadedAd
Returns whether we have a ready ad to render for this placement.
adWidth
Returns the ad width in pixels inside the placement.
adHeight
Returns the ad height in pixels inside the placement.
next()
Start/resume the placement instance, including ad flow.
stop()
Stop the placement, including ad flow.
showAd()
Shows the ad inside the placement.
hideAd()
Hides the ad inside the placement.
on(evt, func)
Register an event listener for placement events.
destroy()
Close the placement and stop its functionality completely.
Placement Events
The player on() function can be used to subscribe to events. Multiple listeners can be set for each event
...
The supported events are:
Event name | Description | ||
---|---|---|---|
AdImpression | Called when there is an impression, regardless of creative type.
| ||
AdError | Called by the player every time it finish running 1 + vastRetry waterfall runs without impression Called also whenever the player decides that it should stop running, for example when maxImp or maxRun is reached, in this case the event will pass a parameter: {errorlimit: true} to indicate the player is stopping calls for ads | ||
Inventory | Called when the player is initialized | ||
InventoryRequest | Called every time the player starts a waterfall run |
Sample Events
Player Initialized Event
The player is initialized on the inventory event
Code Block | ||
---|---|---|
| ||
player.on("Inventory", function(){ //Player is initialized }); |
Impression Event
Code Block | ||
---|---|---|
| ||
player.on("AdImpression", function(){ //Ad impression occured }); |
Identify when the Player Finished Calls
An AdError event is called every time a set of calls to the waterfall finished without impression or when at least one limit of the player configuration is reached (maxRun, maxImp, errorLimit)
...
Code Block | ||
---|---|---|
| ||
player.on("AdError", function(res){ if(res && res.errorlimit) { //Player stopped } }); |
Placement Behavior
The player support advanced behaviors such as In Article, Floating, Sticky and many customizations.
...
In order to activate the template, its is required to wrap the player element in additional elements and call the startTemplate API passing the element of the parent of the player position element
Template Position Wrapper
The player position (<div id="aniplayer_aniviewJS562811134">) is wrapped with an aniBox div and another wrapper
...
The player is created inside the position div with a unique id
Starting Template
In order to start running a template with the below configuration options, it is required to call startTemplate passing the element of the parent of the position passed in position. In this case it will be the aniBox element
Code Block |
---|
player.startTemplate(document.getElementById(placementConfig.position).parentNode) |
Templates Configuration
The templates configuration ads additional configurations to placementConfig
Those configurations are used only if startTemplate is called
false
Boolean
If set to true, the player will automatically check viewability and will call startAd only when in view.
startOnView
Name | Mandatory | Default Value | Values | Description |
---|
playOnView
reqOnView | true | Boolean | If set to true, the player |
will |
reqOnView
false
Boolean
run the waterfall and call ad sources only when in view. When out of view, when its time to call the ad sources, the player will verify that its in view and if not it will wait till the player is in view |
vitab
false
Boolean
If set to true, tab viewability is taken into account when checking viewability
pauseOnUnseen
startOnView | true | Boolean | If set to true, the player will |
pauseOnBlur
false
Boolean
Pause when browser window lose focus
start only when in view. This means that inventory will be sent only when in view and the player loads | ||||
vitab | false | Boolean | If |
hideInitPreloader
false
Boolean
Hide player when searching for ads
showPlayer
Boolean
Force showing the player
scriptId
Yes
String
Id of script used to position the player if no pos defined
posId
String
Position id
If defined the player will be located on the element with the specified id
posTag
String
Position tag
If defined the player will be located on the element with the specified tag name
posClass
String
Position class
If defined the player will be located on the first element with the specified class
posSelector
String
Position selector
If defined, the player position will use querySelector with the given string
Sticky/Floating
Object
A sticky player is always sticking i a fixed position on the screen, typically in one of the screen corners
size
Number
The size of the sticky player will be the size of the original placement x size
Set to 1 for easy configuration
position
String
Defines the position of the sticky player. Can be one of:
Bottom-Right
Bottom-Left
Top-Right
Top-Left
right
Number
Create a margin of the defined number from the right side of the window
left
Number
Create a margin of the defined number from the left side of the window
top
Number
Create a margin of the defined number from the top side of the window
bottom
Number
Create a margin of the defined number from the bottom side of the window
creativeDimensions
[{
w:Number,
h: Number
}]
set to true, tab viewability is taken into account when checking viewability |