こんにちは。AnyMind GroupでEngineering Teamのマネージャーをしています柴田です。 この記事では、当社のDOOH(デジタル屋外広告)ビジネスにおいて取り組んでいる技術的課題についてお伝えしたいと思います。
昨年こちらでリリースを出しましたが、全日空商事様と共に羽田空港においてDOOH広告を提供しておりまして、AnyMind側ではソフトウェアの開発/運用を担当しています。
課題の話をする前に、本システムが何をしているのかについてご説明します。
まず構成ですが、本プロダクトは以下のようにスケジュール管理からカメラを用いての効果測定まで、ワンストップで提供するシステムとなっています。
■ クリエイティブ / 再生スケジュール作成
はじめに管理画面にて、キャンペーン作成、再生予定のクリエイティブの掲載可否チェックをした後、実際にサイネージで放映する再生プレイリストを作成します。 再生プレイリストの編集画面は以下のようになっていまして、掲載可能なクリエイティブが左に並ぶので、再生したいものを右のPlayListの枠に動かしていくことで再生プレイリストを作ることができます。
次に、作成したプレイリストから動画コンテンツと再生スケジュールを取得し、サイネージディスプレイに繋いでいるPCにVPN経由でアップロードします。このときはAdmin操作用の端末から、用意しているAnsibleスクリプトを実行して対象PC全台に適用します。
■ 動画の再生 / データの計測
次に動画をディスプレイで再生するのですが、当システムでは動画再生時に、顔認識システムを用いて通行客の判定をしています。 このシステムではカメラの視界に入った顔を捉え、その顔から性別・年齢・どこを向いているかなどを推測します(※1)。実際に社内で動作確認を行った画像がこちらです。見づらいですが、左から顔の識別子、顔の向き、感情、年齢といったデータが推測されています。
PC内部ではその他にも様々なプログラムが協調しており、
- 1. スケジュールに基づき動画を再生
- 2. 再生中の通行客を顔認識システムで推測し、視認時間や属性データを取得
- 3. 得られたデータをサーバーへ転送
- 4. 次の配信予定の動画を決定(1へ)
といった流れで動画を再生しています。
■ レポート機能
動画を再生し効果を計測したので、最後にレポーティングです。ここでは、各PCから得られたユーザー属性や各動画の視認時間などのデータを多様な軸で集計し表示しています。下の図はサマリー画面ですが、「動画別」「性年代別」「時間帯別」などの軸で分析することができます。
開発中のダッシュボード画面
プロダクトの紹介が長くなってしまいましたが、これらの機能を提供するDOOHプロダクトにおいて、開発時に考慮していること、加えてハードウェアを扱うということで考慮しなければいけない問題について、ここからご説明していきたいと思います。
■ ハードウェアに関わるトラブルを見積もる
AWSやGCPをはじめとしたクラウドサービスであれば、彼らがSLAを出してくれているのでその中でリスク管理出来ますし、冗長化するための仕組みや、異常値のアラートなどの機能が備わっています。 しかしハードウェアを自分たちで扱う場合、それらを全て自前で検討する必要があります。
例えば、
- – 安定性・値段・性能を考えたときにどのハードウェアが一番コスパが良いか
- – どのくらいの冗長性を確保しておくか
- – 排熱、Wi-Fiの電波強度、電源の配線による火災の恐れなど問題ないか。計画停電は考慮されているか
- – ネットワーク、PCのリソースに上限があるなかで、どんなメトリクスをどの頻度で計測しておくか
- – システムが正しく動いていない場合、どういったハードウェアトラブルが考えられるか
- – 考えられるハードウェアトラブルと対応策についてステークホルダーと認識を揃えられているか
また、DOOHでは通行客が機材に触れてしまう恐れがあります。電源ケーブルに足を引っ掛けてしまう場合もあるかもしれません。もしかするとディスプレイに繋いでいるPCが盗まれたりするかもしれません。後者であればセキュリティについても考えておく必要があります。
(ちなみに当システムではPC間の通信は許可しておらず、サーバーとのやり取りも計測用のmqttsプロトコルのみ開放しています。ソフトウェアもGoのバイナリなので解析はされづらいかと。)
■ インターネット通信環境の壁
理想的には、Web広告と同じようにリアルタイムで配信可能な動画広告を判断して表示するのがベストですよね。しかしDOOHでは大きめのディスプレイに動画広告を流すことが普通なため、どうしても動画のサイズが大きくなってしまい、即座にダウンロードして再生することは現在の4G環境においては現実的ではありません。
またDOOHにおけるPCは、場所の関係上有線でインターネット接続出来ないことがあります。この場合無線で繋ぐことになり、通信速度が不安定になりやすいと想定されます。そのため、サーバーとの通信データ量を制限したり、配信する可能性がある動画素材は事前に各PCがダウンロードしておくなどの工夫をする必要があります。
■ カメラを用いての通行客の計測と活用が難しい
当システムでは、先程説明したようにカメラから送られてくる画像から通行客の顔を推測しています。この処理は非常にCPUを消費し、そのままではディスプレイ表示などの動作に影響が出てしまう恐れがあるため、判定するフレームレートを抑えたり、使用するCPUリソースを制限するといったチューニングが必要になり、厳密なデータを取るかパフォーマンスを取るかのバランスが求められます。
また、細かいところでは手荷物や看板に掲載された顔写真をどう除外するか、マスクをしている通行客を正しく判別するには、といったことも考慮する必要があります。
ちなみに、そもそも通行客の計測は広告主へ効果を説明するためのものですが、自社独自で計測したデータを広告主がどのくらい信用してくれるのか、といった課題もあります。
■ まとめ
最後になりますが、DOOH広告業界全体としてはどうでしょうか。 これまでの課題の繰り返しになる部分もあるのですが、個人的に感じているのは以下のようなことです。
- – ロケーションによって必要なディスプレイサイズ、配線、掲載できる内容などが異なり規格化しにくい
- – リアルタイムに動画を取得して放映することが通信速度上難しいため、プログラマティックな広告配信がかなり制限されてしまう
- – 各所のDOOHを横断したアドネットワークを作るとしても、広告枠が適切に運用されているか、視認数はどの程度かを判断することは難しい。また、視聴からコンバージョンまでをトラッキングする手法が確立されていない
- – ハードウェアを揃えなければいけないため初期費用が高く、導入できる場所が限られる
いずれも一朝一夕には解決しない課題ですね。 このように業界としても我々のプロダクトとしても難しいことが多いビジネスですが、DOOH広告市場はWeb広告同様に今後も成長していくと予想されるので、引き続き開発を進めていきたいと思います。
AnyMindでは、DOOHプロダクトをはじめ様々なプロダクトを開発しており、上記のような課題に一緒に取り組んで頂けるプロダクトマネージャーを探しています。ご興味がある方はこちらのページから「Product Development」で募集されている内容をご覧ください
https://anymindgroup.com/career/また、こちらはAnyMindのエンジニア達が書いているブログです。よろしければこちらもご覧ください。
- 日本語: https://qiita.com/organizations/anymindgroup
- 英語: https://medium.com/anymind-group/tech-blog/home
※1:一般社団法人デジタルサイネージコンソーシアムのセンシングサイネージガイドライン(https://digital-signage.jp/)に基づき、適切に運用しております。