Skip to content

Advertising

Advertising is a powerful way to monetize your content while keeping it free for viewers. Vidori supports server-side ad insertion (SSAI) for seamless, buffer-free ad experiences.

Advertising

Ads that play before your content starts.

Best practices:

  • Keep under 30 seconds total
  • Skip option after 5 seconds improves experience
  • Higher CPMs than mid-roll
  1. Go to Monetization → Advertising

  2. Toggle Enable Advertising on — this is the master switch that controls whether the ad SDK loads in the player

  3. Enter your VAST URL — the Video Ad Serving Template endpoint used to fetch video ads — and click Save

  4. Configure the ad settings described below

The advertising page lets you configure the following settings:

SettingRangeDescription
Preferred Interstitial Ad length5–120 secondsThe preferred length of individual ads displayed during breaks
Ad break frequency1–60 min/hourHow many minutes of ad time are scheduled per hour of content. Higher values mean more frequent breaks.
Preferred Ad break duration15–300 secondsTarget duration for each ad break. Multiple ads may play consecutively depending on individual ad length.
Pre-rollsOn/OffWhen enabled, an ad break plays before the video starts for both on-demand and live content. Uses the ad length configuration above.

Regardless of the ad break frequency setting, Vidori enforces the following guardrails to protect the viewer experience:

  • Ad breaks are spaced at least 7 minutes apart
  • A maximum of 6 ad breaks per hour
  • Mid-roll ads are only inserted in content longer than 8 minutes
  • Seek behavior: When a viewer skips ahead, the most recent ad break before their new position is shown. To prevent ad fatigue, subsequent ad breaks within 60 seconds of the seek position are skipped.

Most common integration for premium inventory.

  1. Create a GAM account at admanager.google.com

  2. Set up your ad units

  3. Generate a VAST tag URL from your GAM ad unit

  4. In Vidori, paste the VAST tag URL into the VAST URL field at Monetization → Advertising

  5. Click Save

The VAST URL above applies to your whole catalog. Individual channels, events and groups can each refine it, so different content can serve different ads.

A Google Ad Manager VAST tag names the ad unit it requests in its iu parameter, and carries key-value targeting in cust_params:

https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/mychannel/default&cust_params=tier%3Dfree&sz=640x480&...

Two fields let you change those per piece of content:

FieldWhat it doesWhen to use it
Ad UnitReplaces iu — the request goes to a different GAM ad unitYou want separate inventory, separate reporting, or a direct-sold deal for this content
Ad TargetingAdds key-values to cust_paramsYou want to slice one ad unit by channel, genre, sponsor or anything else, without creating new ad units in GAM

Everything else in your VAST URL — sizes, macros, your own cust_params keys — is left exactly as you configured it.

  1. Channels — Catalog → Channels → select a channel → Publishing tab

  2. Events — Catalog → Events → select an event → Publishing tab

  3. Groups — Catalog → Groups → edit a static group → Advertising section

Leave a field empty to inherit. Clearing a field that was set removes the override.

An asset can inherit from both its own settings and any group it belongs to. The two fields resolve differently, because GAM treats them differently:

  • Ad Unit — the group wins. A request carries exactly one ad unit, so a group’s ad unit replaces whatever the channel or event sets. This is what makes sponsor and partner groups work: put content in the group and it all serves from the sponsor’s ad unit, whatever the individual channels say.
  • Ad Targeting — everything merges. The asset’s key-values and the group’s are combined. If both set the same key, the group’s value wins.

If an asset is in several groups with settings, the group ordering decides.

A worked example — a channel in a sponsored group:

Ad UnitAd Targeting
Channel “Sports 1”/21775744923/mychannel/sportschannel=sports1&type=live
Group “Acme Sponsored”/21775744923/mychannel/sponsorsponsor=acme
Ad request/21775744923/mychannel/sponsorchannel=sports1&type=live&sponsor=acme

Enter the full GAM ad unit path, including your network code:

/21775744923/mychannel/sports

The network code must match the one in your VAST URL. An ad unit from a different GAM network is ignored and the tenant VAST URL is used instead — requesting a unit your network does not own would simply return no ads.

Enter key-value pairs the way GAM writes them, joined by &:

channel=sports1&type=live

Use a comma for a key with several values: genre=sport,news.

Play the content and inspect the outgoing ad request in your browser’s network tab. Check that iu shows the ad unit you configured and that cust_params contains your keys. In GAM, the request appears under the ad unit you set.

Track ad performance at Analytics → Advertising:

MetricDescription
ImpressionsTotal ad views
Fill rate% of requests filled
CPMRevenue per 1000 impressions
Completion rate% watched to end
RevenueTotal earnings