More Related Content
Similar to ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
Similar to ニコニコ動画iOSアプリの UX・マネタイズ・技術の話 (20)
ニコニコ動画iOSアプリの UX・マネタイズ・技術の話
- 13. ver1.0
• まず“iPhoneでニコ動が見れる”
• ガラケー向けに変換された動画を流用(低画質)
• UITableViewを使ったシンプルなUI
- 14. ver2.0
• 画質の向上
• WiFi接続時のみ、mp4で高画質再生
• UIはver1.0から大きな変更なし
- 15. ver3.0
• さらなる画質の向上
• WiFi/3G問わず、常にmp4で高画質再生
• UIをHTML/CSSで実装、デザインの見直し
- 16. ver4.0
• UXの再設計
• ver3.0で基本は完成
• ver4.0でUXを再設計
- 18. UXのハニカム構造
The User Experience Honeycomb
http://semanticstudios.com/publications/semantics/000029.php
- 21. 画面の向き
• 現状
• 動画を探すとき:縦固定
• 動画を視聴するとき:横固定
• 問題点
• 頻繁に端末をクルクルと持ち替える必要がある
• 快適な動画視聴の妨げ
• 動画系のiPhoneアプリでは一般的なUI
• ex) Youtube、Ustream、Hulu
- 22. 画面の向き
• 実際の利用シーン
• 片手しか使えない状況(外出時など)→縦
• 両手が使える状況(自宅でまったり)→横
• フリック入力でコメントを入力したい→縦
• じっくり全画面で動画をみたい→横
• 状況ごとに最適な画面の向きがある
• 縦横両方に対応して、より使いやすく
- 24. タブバーの廃止
• 従来
• 広告は表示したい
• 画面領域は確保したい
• 改善
• タブバーによるメニューは廃止
• 必要なときに”ひっぱり出す”メニュー
- 35. 新しい動画視聴スタイル
• 従来
• 動画を一覧から選んで視聴、の繰り返し
• もっと気軽に動画を見てほしい
• ながら見
• 毎日アプリを起動してみたくなる仕掛け
• ダラ見
- 36. ながら見
• 動画を見ながら、他の動画を探せる
• ちょっと気になったらタップしてプレ
ビュー再生
• 面白そうなら全画面で引き続き再生
• 興味がなければ別の動画にすぐ切り替え
- 50. デザインの刷新
• 見た目はやはり重要
• 変わった感
• ユーザに飽きられるのを防ぐ
• ニコ動で、先進的・クールな感じ・未来感
• といえば・・・
- 63. コメ数・視聴者数表示
• 動画一覧からコメント数・視聴者数の表示を削除
• 「コメント数や視聴者数で動画を探してたので不便」
• →UIを変更する際は、既存の文化を破壊しないように
注意
- 64. 画面の向き
• 加速度センサで画面の向きを変更
• 「ロック解除がめんどくさい」
• 「そもそもロック解除の方法が分からない」
• →明示的に設定できるようにした
• iPhoneの標準のUIに従った
• 標準のUIが最良とは限らない
- 71. iPhoneアプリでの導線
• アプリ内の各所に導線を設置
• 動画再生前、生放送追い出し時
• リンクをタップするとSafariが起動して入会web
ページに遷移( クレカ決済、携帯キャリア決済、
webマネー決済など)
• プレミアム入会導線としてのアプリ
• ニコ動アプリからは、毎月それなりの数の入会
がある
- 72. 従来の入会導線
Safari起動
アプリ Safari Safari
- 73. 2011年11月事件発生
• ニコ生アプリがリジェクト
• リジェクト理由
• 「プレミアム入会ページへリンクするためのボタン
等はアプリ内に設置してはいけない(審査ガイドラ
イン11.13違反)」
• 「アプリ内課金(IAP)機能を使って決済してプレミア
ム入会させるのはOK」
App Store Review Guidelineより
11.13 外部の課金メカニズムにリンクしているアプリはリジェクトされる。たとえば「購入」ボタン
をタップすると、電子書籍の販売サイトが開くような仕組みをもつアプリなど。
- 74. どうしよう
• アプリ内から入会導線を消す?
• アプリ経由の入会がまるごと消滅?
• IAPを使って入会機能を実装?
• Appleへの30%の手数料を受け入れるのか?
• 今回はニコ生アプリがリジェクトされたが・・
• ニコ動アプリも次回審査時にリジェクトされ
ることは間違いなし!
- 82. 価格をいくらに設定するか
• たとえば
• 月額課金:¥700/月 (取り分¥490)
• チケット:¥2000/3ヶ月 (取り分¥1400)
• 要判断
• 自動更新購読型ではない
• 実はwebから入会してくれたほうが嬉しい
- 83. 価格をいくらに設定するか
• たとえば
• 月額課金:¥700/月 (取り分¥490)
• チケット:¥2000/3ヶ月 (取り分¥1400)
• 要判断
• 自動更新購読型ではない
• 実はwebから入会してくれたほうが嬉しい
- 84. 経理まわりの注意点
• 翌月:速報値を元に仮計上
• 翌々月:ファイナンシャルレポートを元に本計上
• →速報値と数値が合わない!
クレジットカードの入金タイミングや締め日の問
題で必ずしも数値は一致しない。全体的に見れば
帳尻は合っているはずだから気にするな by Apple
- 86. 広告周りの改善
• これまで
• AdMobなどアドネットワークの広告を表示
• 各社提供のSDKをアプリに組み込み
• 問題点
• 新しいアドネットワークを追加するたびにアプ
リの改修が必要
• 広告表示ロジックがアプリ組み込みなので、そ
の時々の最適な広告表示ができない
- 87. 広告周りの改善
従来
広告業者A
A用SDK
B用SDK 広告業者B
C用SDK
広告業者C
D用SDK
広告業者D
各業者ごとにSDK
の組み込み必要
そのたびに
審査が必要
- 89. 広告配信システム+Web
広告業者A
広告業者B
<iframe> 広告配信
web サーバー 広告業者C
広告業者D
配信比率
Webベースなので の最適化
SDKの組み込み不要
- 91. ところで
• アプリで稼ぐのは大変
• Appleの規約による制限
• アプリ修正のたびに審査が必要
• アプリをやめて、webでやれば良いのでは?
• webなら入会導線貼り放題
• 審査もいらない
- 92. HTML5でニコ動
• ニコ動HTML5プレイヤー
• アプリなしでSafari上で動画再生
• HTML5のvideoタグを使用
• iPhoneのSafariでは動画にコメントを
重ねられない!
• iOSについてはしばらくはアプリが
メイン
- 106. Web-アプリ間の連携
• Web→アプリの連携
• URL Schemaを使ってwebからアプリの機能
を呼び出し
• ex) “nicovideo://play/sm9”
• ex) “nicovideo://web?/Ranking/genre=game”
• アプリ→webの連携
• UIWebViewに対するJSの実行
- 107. 1. web上でリンクをタップ
<a href=”nicovideo://web?/Ranking/genre?type=game”>..
2. appはUIWebViewを新規生成してスタック
UIWebView
3. appはスタックした新規UIWebViewに
”/Ranking/genre?type=game”をロード
- 108. 1. 動画視聴開始後、
アプリはUIWebViewに対して以下のコードを実行
NSString js = @”playHisotory.add(‘sm123’)”;
[webview stringByEvaluatingJavaScriptFromString:js];
2. web上のplayHistoryオブジェクトは、動画ID「sm123」
をlocalStorageに保存
3. webの視聴履歴画面表示時に、JavaScriptでlocalStorage
から視聴履歴データを取得、表示
- 109. UIWebViewを用いたUI
• メリット
• ちょっとした機能の追加・修正であれば審査不要
• HTML/CSS/JSで開発可能
• webエンジニア・デザイナを活用できる
• デメリット
• 描画処理などネイティブアプリに劣る部分がある
• JS/CSS圧縮、キャッシュ最適化など必須
- 110. UIWebView使用時の注意点
• UIWebView ≠ Safari
• Safariよりレンダリングの性能は低い
• →あまり凝ったデザインにしない
• 一部のCSSが正常に動作しない(例:position:fixed)
• →あきらめてデザインを変更
• アプリのバージョンアップによってLocalStorageが壊れ
ることがある
• →あきらめてcookieを使う
- 112. 動画再生の仕組み
• iPhoneで再生可能な主なフォーマット
• mp4 (H.264, AAC)
• ニコ動に投稿される動画の形式は多種多様
• flv, mp4, divx, mpeg1,2, wmv, swf...
• iPhoneでは再生できない可能性がある
• サーバーサイドでmp4(H.264/ACC)に変換
• 2010/8以降に投稿された動画はすべて変換済み
• 過去動画についても2012/3より再変換開始
• それ以外の動画はモバイル画質(osec形式)動画を再生
- 113. おせち
osec形式?
• パラパラ漫画のようにJPEGを1コマずつ再生して動
画っぽく見せる ガラケー端末向けの独自動画形式
• 映像 = JPEG、音声 = ADPCM
• 動画データを1秒 (One-Sec)ごとに分割・パケット化
像 画像 画像 画像 画像 画像 画像 画像 画像 画像 画像 画像
音声 音声 音声
1秒分 1秒分 1秒分
- 114. 動画再生の仕組み
osec変換
osec サーバー
一部動画
mp4
動画配信 mp4/flv/...
サーバー
動画投稿者
再エンコード、mp4生成
- 115. 実装上の問題
• mp4の再生にはMPMoviePlayerを使用
• 一回の動画取得で複数回のRangeリクエストが発生
• 動画ストレージのサーバー負荷増大
• Cookieを自由に更新できない
• ニコ動の動画ストレージはCookieによる認証
を行っている
• 認証に失敗して動画が取得できない
※MPMoviePlayer: iOSが提供する動画再生用クラス
- 119. RTMP
(Real Time Messaging Protocol)
• 動画・音声のライブストリーミングのため
のプロトコル
• Adobeが仕様を策定
• Flashプレイヤー等で採用されている
• ニコ生(PC)は全面的にRTMPを採用
• iPhoneはRTMPの直接再生は不可
- 121. HLS
(HTTP Live Streaming)
HTTPサーバー (Apacheなど)
#EXTM3U プレイリスト(m3u8)
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE: 0 が動的に更新される
#EXTINF:10, sample_0001.ts
#EXTINF:10, sample_0002.ts
#EXTINF:10, sample_0003.ts
sample_0001.ts
映像データを
プレイリストどおりに sample_0002.ts
10秒ごとに分割
連続再生
sample_0003.ts
- 123. HLSの特徴
• 動画データはHTTPで転送
• Apacheのような普通のwebサーバー
だけで動画ストリーミングが実現で
きる。Adobe FMSなどの高価なサー
バーは不要
• HTTPなので多くの環境で使用できる
- 124. HLSの特徴
• 帯域幅に応じた画質自動切り替え
• 帯域が細くても快適に動画を視聴できる
通信状況が sample_0001.ts
sample_0002.ts 高画質動画
良い時 sample_0003.ts
帯域幅に応じて自動切換え
通信状況が
sample_0001.ts
sample_0002.ts 低画質動画
悪い時 sample_0003.ts
- 126. 生放送の配信形式
• RTMP→HLSのリアルタイム変換サーバー
(nicolis) を開発
• HLSで配信すればAppleの審査もOK!
• マルチデバイス化
• iPhoneだけでなく、PSVITA、家電、組み
込み機器などでもHLSを使用する予定
- 127. HLS
RTMP ニコ生
HLS
nicolis 配信サーバー
HLS (H.264/AAC)
HLS RTMP
リアルタイム変換 RTMP
家電
組み込み機器
- 128. まとめ
• UX
• 使いやすい、探しやすい、気持ち良いを追求
• 作って、壊して、ユーザの声を聞いて、進化するのが基本
• マネタイズ
• Appleの規約は厳しいが受け入れる
• 広告についてはチューニングしやすいように
• 技術
• Webとアプリの密な連携
• マルチデバイス化を見据えたアーキテクチャを設計