<img src="https://img.shields.io/badge/%20-ENTERPRISE-%23B10031" style="float:left"/><br />

The most basic advertising implementation is to run a single VAST ad tag as a pre-roll before each playlist item.

If you are using FreeWheel, follow the steps in [Enable FreeWheel Ad Manager](🔗).

If you are using a cloud-hosted player, you can [create an ad schedule](🔗) in your JWP dashboard and associate the ad schedule with your cloud-hosted player. The ad schedule will play in every instance of the embedded player.

Since any changes made to the `advertising` object override any advertising settings made in the dashboard, be sure to include all existing advertising dashboard configurations within the `advertising` object.

<br /> <hr />

## Add a pre-roll ad break to a player

Use the following steps to add a pre-roll to an [embedded player](🔗):

  1. Within `setup()` of an embedded JWP, add an <a href="/players/reference/advertising-config-ref" target="_blank">advertising</a> object.

  2. Define the `client` property within the `advertising` object as `vast` (VAST).

  3. Define the `adscheduleid` property within the `advertising` object. Assign a randomly-generated, eight character, alpha-numeric value to this property.

  4. Define a <a href="/players/reference/advertising-config-ref#advertisingschedule" target="_blank">schedule</a> array within the `advertising` object. At the minimum, you must assign an ad tag to the `tag` property. You can also assign the URL of a VMAP tag to the `schedule` property.

As a shortcut, you can define `advertising.tag` (String) to create a single pre-roll ad break. If you use this shortcut, you cannot add multiple ad breaks.

The `advertising.tag` property and `advertising.schedule[]` property cannot be used in the same `advertising` object.

<br />

You can build on this basic implementation by [adding multiple ad breaks](🔗), [defining ad rules](🔗) or configuring Player Bidding.

<br /> <hr />

## Add multiple ad breaks to a player

Use the following steps to add multiple ad breaks to the previous VAST pre-roll example:

  1. Define an additional index within the <a href="/players/reference/advertising-config-ref#advertisingschedule" target="_blank">advertising.schedule</a> array.

  2. Assign an ad tag to the `tag` property.

  3. When defining the `offset` property, choose one of the following values to schedule a mid-roll or post-roll ad:<br /><br />**Mid-roll**<br />  - **{number}**: (Number) Ad plays after the specified number of seconds.<br />  - **{timecode}**: (String) Ad plays at a specific time, in `hh:mm:ss:mmm` format.<br />  - **{xx%}**: (String) Ad plays after xx% of the content has played.<br /><br />**Post-roll**<br />  - `post`: (String) Ad plays after the content.

You can build on this basic implementation by [defining ad rules](🔗) or setting up Player Bidding.