動画エンジニアの祭典Demuxed 2019のセッションハイライト -大規模ライブ配信での動画広告のパーソナライゼーションにおける課題とその解決策

10月23日、24日の2日間にわたってサンフランシスコで開催された動画エンジニアの祭典Demuxedで、数千万同時視聴があるような大規模ライブ配信に於いて広告サーバーの負荷を減らしつつ動画広告をパーソナライズして配信する事例を紹介したセッションがありましたのでご紹介しようと思います。

日本でも同時再送信が解禁された昨今、それに付随してくる動画広告でターゲティングを行いつついかに効率的に配信するかというノウハウは知っておいて損はありません。

インド最大規模のライブ配信でのマネタイズにおける課題

Hotstarの規模感

Hotstarの規模感

インドではクリケットというスポーツが非常に人気で、インドのHotstarというプレミアム動画配信プラットフォームが2019年7月のクリケットのセミファイナル試合をライブ配信したところ、最大で同時に2,530万ユーザーが10種類の異なるプラットフォームからアクセスしてくるという実績をたたき出しました。

このような規模の大きなライブ配信なので、当然Hotstarはライブ配信を動画広告でマネタイズしようとするのですが、2つの壁にぶつかります。

crickett_live_ad_breaks.png

クリケットのライブ配信ではどのような広告枠があるのかという図

まず、クリケットのゲームの進め方による難しさにぶつかります。それは、『いつCMを挿入できるタイミングが来るか分からない』と言うどのスポーツ試合でもありうるものと、『CM枠の長さが事前に決まっていないので、どれぐらいの長さになるのかは当日にならないと分からない』というクリケットの性質によるものがあります。

次に、うまく収益を上げるような広告配信を行うこと自体の難しさがあります。

Hotstarでは従来、日本の地上波でのCMの流し方と同じようなやり方で、『300万人が視聴する動画広告枠をxxx円で販売します』というように枠を販売するような売り方をしていました。このような売り方だと配信される動画広告は静的に決まってしまうため、ターゲティングによる広告単価向上が期待できず、また、想定以上にユーザーが来たとしても販売した価格以上には収益を上げることができないという課題がありました。

そのような課題に対する一般的なアプローチとしては、パーソナライズした動画広告をインプレッション数ベースで販売するという方法があります。具体的な手法としては、サーバー側でターゲティングした動画広告を本編へ動的に差し込むServer-side Ad Insertion (SSAI)と、クライアントサイドで動的に広告を本編へ差し込むClient-side Ad Insertion (CSAI)があります。しかしながら、SSAIもCSAIも大規模ライブ配信で利用するにはそれぞれの課題があります。

ssai_difficulties.png

SSAIでの動画広告挿入のPros/Cons

SSAIの課題は、サーバー側でユーザー毎にマニフェストを動的に生成する必要があるので、マニフェスト生成サーバーを大規模にスケールさせるのが厳しい(大量のリクエストを即座に処理することのできるサーバーを維持するにはコストがかかる)という点に尽きます。また、マニフェストの中には複数の広告挿入枠があるため、1つのマニフェストについて複数回の広告リクエストが走ることになり、それら広告リクエストを処理する広告サーバーにも大変なコストがかかります。

csai_difficulties.png

CSAIでの動画広告挿入のPros/Cons

他方CSAIの課題としては、『広告挿入タイミングが到達したときにCSAIでスムーズに広告動画を再生開始するためにはクライアント側で事前に動画広告を読み込んでおく必要があるが、インドのネット環境はあまり良くないため、本編再生中に広告を事前読み込みしていると本編がバッファリングを起こしたり画質が悪くなったりする』と言うことがあげられます。

インドでのライブ配信の実情

インドでのライブ配信の実情

Hotstarでのライブ視聴のうち90%はモバイルデバイスから行われ、85%はキャリア回線を使って視聴しており、かつ50%のユーザーは郊外にいるなど、あまり充実していないネット環境から行われています。そのため、多くのユーザーのネット環境は、本編と動画広告を同時に読み込むだけの余裕がありません。
また、ライブ配信のCM挿入タイミングは全クライアントを通じて概ね同じぐらいの時刻に集中するため、それを高速に捌ききれる高性能な広告サーバーが必要(そしてそれにはコストがかかる)というSSAIと同じような課題が出てきます。

これらのSSAIやCSAIでの課題に対し、Hotstarではどのように対処したのでしょうか。

あらかじめ視聴者をターゲティング属性別にグループ分けしておく

grouped_ssai.png

あらかじめ視聴者をターゲティング属性毎にグループ分けしておき、サーバー側ではそれぞれのグループ単位でパーソナライズした動画広告が挿入され終わった状態のストリームを準備して配信する

これらSSAIとCSAIでの課題に対し、Hotstarでは『あらかじめ視聴者をターゲティング属性毎にグループ分けしておき、サーバー側ではそれぞれのグループ単位でパーソナライズした動画広告が挿入され終わった状態のストリームを準備して配信する』という方法を取りました。

grouped_ssai_architecture.png

グループ化する方法のアーキテクチャ概要図

このようにすることで、サーバー側で動的に生成するマニフェストのバリエーションは最大でもグループの数だけになるので、マニフェスト自体をCDNキャッシュに乗せることができ、SSAIでのマニフェスト生成サーバーの負荷を減らしつつ高速に配信することができるようになります。

grouped_ssai_scalability.png

キャッシュが効くことでスケーラビリティーが高いアーキテクチャーになっている

実際、マニフェストや動画セグメントファイル配信用CDNのキャッシュヒット率は85%程度で、クライアントからCDNエッジへ秒間300万リクエストあったとしても、Originへは秒間5万リクエスト程度に抑えることができました。また、Originの全リクエストのうちの99.99%は200ms以内に完了しているなど、Originの健全性やスケーラビリティーも担保できています。

SSAI・CSAI共通の課題である広告サーバーへのリクエストに関しても、マニフェストのバリエーションが最大でもグループの数だけになったことから大幅に軽減されています。また、動画広告本編はサーバー側でストリーム内に織り込まれた状態で配信されるため、CSAIのような広告配信が本編の視聴体験に影響を及ぼしてしまうということもありません。

まとめ

いくら動画広告はパーソナライズすることができるとはいえども、パーソナライズのバリエーションはたかだか数十程度であることが一般的かと思います。であるならば、あらかじめ数十程度のグループにユーザーを振り分けておき、それぞれのグループに対してターゲティングされた動画広告が織り込み済みのストリームを準備しておくというのはとてもスマートな方法です。日本の同時再送信でもこのような手法を活用することで、ターゲティング動画広告配信をスケーラブルに行うことができます。

参考情報

上で紹介したHotstarのセッションは次のURLで視聴できます。

そのほかのDemuxed関連記事はこちら。

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s