Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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
languagehtml
<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
languagejs
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
languagejs
myPlacement = new avDisplay(placementConfig);
myPlacement.play();

Putting it all together

Code Block
languagehtml
<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

minHeight

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

NoSkip

}]

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

Boolean

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

skipText

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.
The AdImpression event passes a parameter with extra data that is used for 3rd party reporting:

Code Block
{
  "asid": "Ad source id",
  "clickThrough": "Ad click url if available",
  "videoUrl": "Url of media file if available",
  "mt": "Media type, vast or vpaid",
  "tagInfo" : {
    "url": "Actual ad source meta data, template of url",
    "bidCpm": Actual bid cpm (prebid, rtb) or floor if vast/platform link,
    "pubCpm": Publisher CPM after rev share,
    "floorCpm": floor price used
    "bidCode": "Bidder code from prebid",
    "vast": Array of vast chain
  }
}

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
languagejs
player.on("Inventory", function(){
  //Player is initialized
});

Impression Event

Code Block
languagejs
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
languagejs
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

false

Name

Mandatory

Default Value

Values

Description

playOnView

reqOnView

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

reqOnView

false

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

vitab

false

Boolean

If set to true, tab viewability is taken into account when checking viewability

pauseOnUnseen

false

startOnView

true

Boolean

If set to true, the player will

pause when its out of view

pauseOnBlur

false

Boolean

Pause when browser window lose focus

openAnim

start only when in view. This means that inventory will be sent only when in view and the player loads

vitab

false

Boolean

If

true, player opens in animation

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

}]

Specific dimensions for the creatives to be rendered to this placement.

set to true, tab viewability is taken into account when checking viewability