Placement API Implementation
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 instream or outstream players.
- 1 Placement Element
- 1.1 Placement Configuration
- 1.2 Placement Javascript
- 1.3 Placement Instantiation
- 1.4 Putting it all together
- 1.5 placementConfig Configuration Options
- 1.6 Placement API
- 1.6.1 avDisplay(placementConfig)
- 1.6.2 width
- 1.6.3 height
- 1.6.4 hasLoadedAd
- 1.6.5 adWidth
- 1.6.6 adHeight
- 1.6.7 next(force: boolean)
- 1.6.8 stop()
- 1.6.9 requestBids()
- 1.6.10 renderAd()
- 1.6.11 showAd()
- 1.6.12 hideAd()
- 1.6.13 on(evt, func)
- 1.6.14 destroy()
- 1.7 Placement Events
- 1.8 Sample Events
- 1.9 Placement Behavior
- 1.10 Templates Configuration
Placement Element
The player is created on an element id specified by placementConfig.position
:
<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.
For example:
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/ads.js
Placement Instantiation
myPlacement = new avDisplay(placementConfig);
Putting it all together
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 }] | Specific dimensions for the creatives to be rendered to this placement. |
autoStart | No | true | Boolean | Immediately start showing an ad after the initialization |
refresh | No |
| Object | Refresh policy config |
strategy | No | interval | “interval”, “none” | Auto-refresh an ad or manually control it via API |
minViewTime | No | 5 000 | Number | Minimum time in milliseconds an ad should be in view before the next refresh |
minRenderTime | No | 30 000 | Number | Minimum time in milliseconds (30 000 / 60 000 / 90 000) between refreshes |
noNewInventory | No | false | Boolean | Don’t send inventory reporting |
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 | No |
| Object | Show or not the skip button |
url | No |
| String | Clickthrough url when clicking on the ad |
Placement API
avDisplay(placementConfig)
Instantiate the placement object with the placementConfig configuration.
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(force: boolean)
Start/resume the placement instance, including ad flow. force
flag means you want to kill the current refresh.minViewTime
and refresh.minRenderTime
timers and force the next ad to be requested instead of showing again the current ad if these timers didn’t pass yet.
stop()
Stop the placement, including ad flow.
requestBids()
Allows manually request bids if the refresh strategy is “none”.
renderAd()
Allows manually render the next winning bid’s HTML if the refresh strategy is “none”.
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
In addition, callback on functions are supported to the events
Note: With vpaid ad sources, the player relies on events triggered by the vpaid. In some cases, some events are not supported by vpaids so those events might not be called sometimes.
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 |
AdViewableImpression | Called whenever an ad was in view at least 1 sec (by default, but this time can be configured in Admin UI for each ad source, except Google) |
AdShow | Will be triggered on each |
AdHide | Will be triggered on each |
Sample Events
Player Initialized Event
The player is initialized on the inventory event
Impression Event
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)
When the player finished calls and will not continue anymore, it calls AdError event and passes an errorlimit parameter
Placement Behavior
The player support advanced behaviors such as In Article, Floating, Sticky and many customizations.
Aniview provides a tool for managing templates configuration. this section describes the configuration flags available for templates configuration
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 template generator automatically build this structure
The player is created inside the position div with a unique id
Templates Configuration
The templates configuration ads additional configurations to placementConfig.
Name | Mandatory | Default Value | Values | Description |
---|---|---|---|---|
reqOnView |
| true | Boolean | If set to true, the player will 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 |
startOnView |
| true | Boolean | If set to true, the player will start only when in view. This means that inventory will be sent only when in view and the player loads |
vitab |
| false | Boolean | If set to true, tab viewability is taken into account when checking viewability |