[レポート] 急成長するビジネスを支えるエンジニアリング – モバイル動画広告 FIVE #linedevday_report

2019年11月20日(水)・21日(木)にLINEのデベロッパーカンファレンス「LINE DEVELOPER DAY 2019」が開催されました。本記事ではセッション「急成長するビジネスを支えるエンジニアリング - モバイル動画広告 FIVE」をレポートします。
2019.11.21

急成長するビジネスを支えるエンジニアリング - モバイル動画広告 FIVE

2019年11月20日(水)・21日(木)にグランドニッコー東京 台場でLINEのデベロッパーカンファレンス「LINE DEVELOPER DAY 2019」が開催されました。

本記事は、セッション「急成長するビジネスを支えるエンジニアリング - モバイル動画広告 FIVE」をレポートします。

スピーカー

小西 祐介(ファイブ株式会社 Co-founder, CTO)

東京大学大学院修士課程にてコンピューターサイエンスを修了。 2014 年に FIVE を設立し、 CTO としてエンジニアチームを率いる。 2017 年に LINE グループ入りし、現在は LINE Ads Platform for Publishers の開発を行っている。 FIVE の設立前は、 Google にて Google Play, Google ショッピングなどの製品開発を担当していた。

セッション概要

このセッションでは、FIVE のシステム構成やその移り変わり、採用する技術の選択、ビジネス上の議論などを、例を紹介しながら、スタートアップとして不確実な状況下でビジネスを速く進めるための設計方針や考え方についてお話しできればと思います。 FIVE はモバイル空間に向けて動画広告を配信しているスタートアップです。 2014年10月に設立した後、早いペースでビジネスを拡大し、 2017年12月に LINE グループに参画、 現在は LINE の運用型広告プラットフォーム: LINE Ads Platform (LAP) と連携し、さらに多くの広告を、さらに効果良く配信するべく開発を続けております。 FIVE はスタートアップとして、ビジネスを可能な限り速く進めることを重点に置いています。エンジニアチームは Android, iOS SDK の開発, 大量のトラフィックを捌くサーバの開発、ログ集計、配信ロジックの構築、運用、監視、データ分析、戦略立案などを行なっております。

スライド

公開され次第更新します。

レポート

FIVEについて

モバイル動画広告配信を行なっている。広告主に対してクリック数に基づき広告料を請求し、メディアへ広告売り上げを還元するという仕組み。
動画広告と配信先のアプリとの相性(ターゲットのマッチング)が大切。このマッチングを機械学習も使って提供しているのがFIVE。

スタートアップ企業として

将来は機械学習による動画広告と配信先のマッチングを行うプラットフォームになることを目指していた。 ただし、スタートアップ立ち上げ当初の売り上げは千円。メディアも1社のみ。この状態ではマッチングもできない状態だった。 現在はLINEの子会社になっているが、この経験を通じて得たスタートアップの立ち上げのポイントを紹介する。

スタートアップ立ち上げのポイント: Speedがすべて

1. 設計は手を抜かない

  • コンポーネントをきちんと分ける
  • 最終防衛ラインを決める
  • ロバストにする
      設計の際に上記の三つをとにかく組み込むとコードを早くかけるようになる。

  • コンポーネントをきちんと分ける
     EX) Ad Serverのコンポーネントは五つ。
     きちんと分割しておくことで、何をするべきか、障害などが起こった時に捨てるべき部分などもすぐにわかるようになる。

  • 最終防衛ラインを決める

    • SDKはお客様にお渡しするもの。容易にアップデートできないため、SDKにバグはあってはならない。→ここだけは絶対安全に。スピード優先にしない。
    • 配信部分、お金周りに関しては確実に確認する。
  • ロバストにする
    • 耐障害性
    • 再起動が容易な構成にしておく
    • Trafficの防火壁を作る

品質とスピードのトレードオフだというのはおかしいと思っている。最初にきちんと設計しているからこそ、開発のスピードアップができる。

コードを1行も書かないのは最速の開発方法。 不要な開発をしないのは、作業を減らすためにも、メンテナンス量を減らすためにも大切。

  • 営業チームとよく話すこと
    • お客様から静止画広告出稿の希望があったが、よくよくヒアリングすると静止画である必要はなかった。
    • 開発はするが、売り上げが上がるかどうかをよく考える必要がある。
  • 小さくスタートする:仮説検証を先にする  - 特定の機能が役に立つと思った場合、まず一つのキャンペーンIDなど、最低限の工数で効果検証するようにしている。

  • 売り上げがたつかどうか、リピートができるかどうかで、きちんと作り込むかを考える。

2. 実装は可能な限り手抜きする

余計な実装をしないことで、メンテナンスも削減できる。

ただし、広告配信がうまくいくかどうかは、広告プラットフォームの問題だけではなく、外部要因で決まることが多い。 そのため、外部要因(広告の質、運用の巧拙)をなくすことを考えた。

  • FIVEが動画広告を作成
  • FIVEが最適な配信を実施
  • 広告レイアウトもFIVEで調整

全てFIVEが一括で行うようにして、広告品質のばらつきなどをコントロールできるようにした。 そのため、ロジックはお客様側のSDKではなく、FIVEが操作できるサーバ側に保つようにした。 実際に運用をしてみると、色々見えてくるものがあった。 例えば、「5秒動画のFIVE」というコンセプトで始めたビジネスだが、予想外にユーザーは見ない。2秒で離脱する人が約半数。 さらに、同じ動画だと離脱率が高まる。

これらを推進することで取り先とデータが増えてきて、効率的なノウハウの横展開と、効率の良い配信組み合わせの発見に向かうことができるようになってきた。 3年ほどして、一定規模を超えたため、機械学習に取り組むことができるようになった。

3.本当に必要なことだけやる。

  • 会社のボトルネックを分析する
    • もともと「必要のないものはやらない」と考えているが、会社としてのボトルネックになりうるものには対応していくのが違い。
    • 投資として開発することで、ビジネスが回っていく。
  • チームビルディング
    • 全員で考える
    • ビジネスモデルを考えることができる営業が育っていく
    • 開発体制をロバストにする
    • プロジェクト単位で人に当てる。コンポーネントは2〜3人がわかる状態にしておく。 そうすると、「筋肉質の」エンジニアができる。Webサービスだったら、なんでも一人で作れるエンジニアが育つ。

終わりに

コードを書く前に勝負のほとんどは決まっている。スピードアップのためには、ビジネスを考えることが大切。
今後は、LINEの子会社として、データ連携をすることで機械学習をさらに洗練させていくなど、LINEでしかできないことをやっていきたいと考えている。

まとめ

技術を追求するのではなく、ビジネスモデルとしての成立を突き詰めて考えているのが面白かったです。
手をつけない部分と、自ら手がけてノウハウ蓄積を行なっていく部分の切り分け方が参考になりました。