VAST4.2でつくる動画広告の世界 その0

はじめまして、Supershipのアドテクノロジーセンターで副センター長をしています三宅です。
普段は主にRailsエンジニアとしてDSP関連の開発やリードをしています。
趣味でVASTを生成するサーバーを作ったりしています。

以前、「[AdTechnology Meetup vol.2 プロダクト開発をリードするエンジニアの挑戦と苦悩](https://super-stories.com/n/ncc148208da4a?fbclid=IwAR27_yNFCroW-4EryzkKV0vZDxfhvEwhWYkcFc-2DPGKvDE83QG5XUOPjBA)」というイベントで登壇した際に動画広告ならではの仕様や苦労などを話したのですが、今回改めて [VAST4.2](https://iabtechlab.com/wp-content/uploads/2019/06/VAST_4.2_final_june26.pdf) の仕様に載せる形で面白さや苦労をまとめてみようと思います。

VAST自体もそうですが関連仕様が膨大にあるので何回かに分けて連載します。
今回は前提となる動画広告の種類([VAST3.0 Reference](https://www.iab.com/wp-content/uploads/2015/06/VASTv3_0.pdf)の `1 General Overview` の部分)についてです。
(以前の弊社の[Advent Calendar](https://qiita.com/tetuo41/items/0a638dfc6c12d9b61388)でも同様の記事がアップされてますが、今回は更に深く仕様を見ていきます)

# TL;DR

* 動画広告/音声広告はメディアの仕様や設定により様々なフォーマットがある
* アウトストリームに比べ、インストリームは効果が大きいが制約も大きい
* フォーマットによりトラフィック分散を考える必要があるなど、システム側にも影響を与える

# Web広告の種類

SupershipというのはWeb広告のサービスや運用を行っている会社なので、まずは簡単にWeb広告について説明します。
と言っても既に世の中に無数の記事があるので、ここではフォーマットについてだけ説明します。気になった方は RTB(Real-Time Bidding) とかでググってみてください。

## 大まかなフォーマット

* テキスト
    * 検索連動広告やメール広告で使われるテキストだけの広告
* 静止画
    * 画像バナーの広告
* 動画
    * 動画を使った広告
* 音声
    * 音声ストリーミングサービスなどで使われる音声のみの広告

上記のうち、この連載では動画広告や音声広告を表現するのに使われるVASTを追っていきます。

## 動画/音声広告のフォーマット

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6892/870acc64-35e4-f0ab-45f4-8fb8cfc92f4b.png)

### アウトストリーム

サイトやアプリのメインコンテンツ **外** に表示される動画広告です。
静止画広告と同じ位置に表示されるので、日常的によく見かけると思います。

コンテンツ内の表示位置により何種類かまた分類されます。

#### アウトストリームでの広告表示フォーマット

* インバナー広告
    * バナー枠内に表示される広告
* インリード(インテキスト)広告
    * ニュースメディアの記事と記事の間など、テキストの段落間に挿入される広告
* インフィード広告
    * 一覧表示されているメディアにおいて、記事本文と同じようなフォーマットで表示される広告
    * TwitterやInstagramのタイムライン内に表示されるような広告

クリエイティブ(広告素材のことをこう呼ぶ)が静止画から動画に変わっただけなので、静止画広告と比べて特に苦悩ポイントはありません。

### インストリーム

サイトやアプリのメインコンテンツ **内** に表示される動画広告です。
Youtube、ニコニコ動画、TVerなど、無料視聴できる動画サイトが増えるにつれ普及してきました。

アウトストリームに比べ、視線の離脱が少ない、音声でも訴求できる、そもそもでかいので目に入るなどメリットが大きい(=広告単価が高い)です。
しかしメインの動画プレイヤーと密接に連携する必要があるため、技術的に難易度・成約が大きいというデメリットもあります。

#### インストリームの配信形態での違い

* VOD(キャッチアップ)
    * Youtube(非Live)やニコニコ動画(非ニコ生)やTVer見逃し配信などの、予め収録している番組を視聴者任意のタイミングで再生できるコンテンツに挿入される広告
* Live配信
    * TVerのLive配信などLive配信中で挿入される広告
* リニア配信
    * Live配信のようにリアルタイムで配信されるが事前収録の番組に挿入される広告

#### CM挿入位置による違い

* Pre-Roll
    * 本編動画の再生前に挿入されるCM。いろんな動画サイトでよく見るやつ
* Mid-Roll
    * 本編動画の途中に挿入されるCM。地上波CMと同じような感じ。動画サービスによるけど挿入位置は予め決まっているため、誰が見ても同じタイミングでCMが入る(はず)
* Post-Roll
    * 本編動画の最後に挿入されるCM。動画サイト側としては本編再生後にサイトから離脱されるのが嫌なのであまり使われないらしい

Web広告と言えど中身はHTTP(S)トラフィックなのでサーバー負荷的には分散されて欲しくて、基本的にはユーザーが任意のタイミングでサイトやアプリを開くのでトラフィックはいい感じに分散されるのですが、動画配信では分散されず困るパターンがあります。
上記の Live/リニア配信 x Mid-Roll のパターンでは視聴者全員が同じタイミングでCMが入る放送を同時に見ているため、同接分だけリクエストが来ます。基本的にWeb広告は100ms程度でtimeout扱いされるため、同接1000でも1万でも100ms内でレスポンスを返す必要があり、ソフトウェア/ハードウェアそれぞれ高速化/分散化が求められます。今まで私が経験した最大のイベントは同接200万が予定されていたのでかなり大変で苦悩中の苦悩ポイントでした(トラフィック分散はVASTの話とは離れるので今回はあまり触れません)。

#### 連動広告

あと、そこまでメジャーではないですがVASTの仕様として本編動画と連動する周辺広告についての仕様も切られています。

* リニア広告
    * 動画本編中のCM
* ノンリニア広告
    * 画像の通り、動画本編内にバナーとして表示される広告
    * VAST4.1で非推奨になった
* コンパニオン広告
    * 動画近くに別枠で表示される広告
    * 音声広告では基本的にクリックできる場所がないので、コンパニオンを配置してそちらをクリックできるようにしているメディアもある

![スクリーンショット 2022-10-31 18.46.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6892/d0825733-45ec-f886-70b0-482e9130f19b.png)
(VAST3.0のReferenceより)

# 次回、VASTの構造

次回は具体的にVASTの構造を眺めつつ、トラッキングやIDの仕様を追っていこうと思います。