ソーシャル知らないけどSocialWeb Conference vol.5 - OpenSocial Night #2 -を見て来た
※追記
動画見た方がわかりやすいと思うので動画おいておきます。
会場が近いといいですね。階段降りただけで有益な話が聞けるというのはとても嬉しい。
ソーシャルアプリとかOpenSocialって全然触ったことがなく、mixiアプリもサンシャイン牧場に招待された時にperlでボット作ってしばらく育てたくらい。
それだけじゃマズいなと思って昨日mixiアプリの開発者登録したものの、helloworld作ろうとしたら本格的なアプリ登録フォーム出て来たので結局やめてしまいました。
ってことで、メモしたものの少ししか知識がないまま話を聞いたのでだいぶわからないところとか抜けたところが多かった。
他の人の資料とか見ながらまた追記とかします。
あ、でもKayフレームワークはLLTVの時に聞いたので覚えてました。
python触ったことないけど、話聞いててKayフレームワークは触りたくなるくらいの好感度。
App Engine使う時にやってみたい。
以下メモ。
何か間違ってるところあったらコメントください。
はじめに
- 前回参加していない人が多い
- 第1回はモバゲー、リクルートの新しい話をやった
- 今回はOpenSocialについて
OpenSocial jQuery によるウェブ制作スキルを活かした OpenSocialアプリケーション開発 - なかじまんソフトウェア株式会社 中嶋博信氏
- 資料:SocialWeb Conference vol.5 OpenSocial Night #2
- OpenScocialアプリケーションを開発するためのJavaScriptライブラリ
OpenSocialアプリの基本性質
- ProfileビューとCanvasビューがある
- ビュー=ページ=iframe
- HTML+CSS+JavaScript(Flash)
- ビュー=ページ=iframe
- ウェブアプリとの違い
- パーミションモデル
- 情報の取得や更新の制限がある
- 個人情報などの取り方に制限
- 情報の取得や更新の制限がある
OpenSocial jQueryの目的
- OpenSocialはHTML+CSS+jQueryで作られる+OpenSocialアプリはプラットフォーム
- OpenSocial jQueryが橋渡しし、ウェブアプリと同じように開発できるように支援
- 使い方はopensocial-jquery.jsを読み込み、jQueryと同様の利用方法で開発
- OpenSocial jQueryへの期待
OpenSocial jQueryの構成
- 表面上はjQuery
- jQuery1.3.2を内包
- JSDeferred0.2.2
- コアプラグイン
- GadgetsAPIを使いやすく
- 拡張プラグイン
- opensocial-jquery.
.js
- opensocial-jquery.
- jQueryプラグイン
OpenSocial jQueryの特長
- Ajaxメソッドを使ってる
- OpenSocialなので自分のドメインでなくクロスドメイン
- ビューの遷移(ウェブアプリでいうページ遷移)
- getJSONにclickイベントを持ったコールバック関数を渡す
- ready関数の第2引数に表示するページを渡す
- 署名リクエスト+OpenSocial Hostも簡単にできる
- 署名は簡単。poseのURLにスペースを空けてsigned
OpenSocial API側の拡張
- プロフィール情報、友だち情報の取得
- 永続化情報の取得と保存(削除は未対応)
- 保存時はJSONでシリアライズ
- postData,getDataで取得と保存
- プロフィール情報はGET /people/@viewer/@selfで取得できる
- viwerをownerに変更すればオーナー情報
- selfは省略可
- 友だちはfriends
- メッセージ送信はmessage
- プロフィール情報はGET /people/@viewer/@selfで取得できる
注意点
- OpenSocial APIの制限を受けるため
- viewerや友だちがアプリをインストールしてないと画像が表示されない
- viewerがアプリをインストールしてないとプロフィール情報はIDのみに制限
- 友だちがアプリをインストールしてないと
- 「mixiアプリに関するプライバシー設定」 の値も影響される
- viewerや友だちがアプリをインストールしてないと画像が表示されない
注意点に対してのエラーハンドリング
- エラーのコールバックがある
- error
- viewerがインストールしてなければerror()で紹介ページへ移動させる
- ajaxError
- next().error()
- JSDeferred0.2.2の機能
- error
- 取得できない項目を補う
- 取得できないものはデフォルト値を設定
- アプリをインストールしている友だちに限定する
- @appを利用する
AppEngineを使ったソーシャルアプリの開発と運用 - 株式会社キャンディット 松尾貴史氏
- 資料:AppEngineを使ったソーシャルアプリの開発と運用 by Takashi Matsuo on Prezi
- 実は全然ソーシャルアプリ作ってない
- 今日は世界のよういちろうの代役
- 足の怪我が治るようにみんなでお祈りしましょう
- OSDEを知らない人多数
- eclipseのプラグインの出来が超いい
- 今度のgoogle I/Oで注目されるくらいすごい
AppEngine
kayoauth
- tmatsuo / kayoauth — Bitbucket
- 読み方はキャオス
- 変な読み方と思わせ、実は息子の泣き声
- 今はまだkayフレームワーク専用
- settings.py
- MIDDLEWARE_CLASSES(ミドルウェア)を指定
こんなにメリットばかりだけどホントにタダ?
- 一応従量制
- 従量制とは言え、GClueの社長の話では
- うはうはだよ。何もしなくていい
- 70万PVで$10/day
- 20万PVで$1/day
- オフレコ
- 原価計算3万円くらいなので原価率6%くらいの収入
- ただ、広告単価が下がってからは厳しい
- アプリ内で課金しないと。
- データのバックアップが課題
まとめ
- AppEngineはSocialアプリにぴったり
- はじめはタダなのでポンっと出すのは楽
- 難しいという人は仕事くれれば作ります!
質疑応答
OpenSocial アプリ開発/管理プラットフォーム 「OpenSocial Host」 のご紹介〜 ローコスト、ローリスクでアプリ開発を始めよう! 〜 - 株式会社ハートレイルズ 上楽理央氏
- 資料:OpenSocial-Host.pdf - Google Drive
- サイト:OpenSocial Host | OpenSocial アプリケーション開発/管理プラットフォーム
- ハートレイルズの紹介
- スタッフが全員在宅勤務でいいよ
OpenSocial Hostとは?
- JavaScript API(PC、モバイルの両方に対応)
- HTTPベースのWebAPI
- インフラ:ファイルストレーズ、KVS
- 管理GUIもある
- アクセス解析、イベント解析がついてる
特長
- 単一機能のみの利用が可能
- DBだけ利用とかアクセス解析だけやりたいとか
- 従量課金
- 一定の利用量までは無料
- 数万ユーザ程度のアプリならまず無料
- アドプログラムの半分以下の課金が目安
- 一定の利用量までは無料
- ソーシャルアプリの有名どころはほぼ対応
中身
- opensocialhostという名前空間の機能にさまざまなAPIがある
- API
- OpenSocial hostのへのデータベース操作:DataAPI
- KVSのキー毎にパーミションを設定できるのでデータのパーミションを細かく設定できる
- OpenSocial hostのへのファイル操作:FileAPI
- Ajaxベースのファイルアップローダ系も簡単に対応できる
- コンテナへのソーシャルグラフ操作:OpenSocial RestfulAPI
- プロフィールやライフサイクルイベントに連動した処理を実装可能
- OpenSocial hostのへのデータベース操作:DataAPI
OpenSocial HostのDB
- KVS
- キーに細かいパーミションを背てい
- エクスポート、インポートが可能
- 使いづらいなら他のプレットフォームへの移行が容易
ファイルのホスティング
- リソースファイルのホスティング
- GadgetXML,Flash,JavaScript,画像
- サーバサイドjavascriptのホスティング
- OpenSocial HostのAPIを利用してPC用に作ればモバイルでも動かせる
- ユーザのPOSTする写真データなども保存
近い将来対応
- 課金、決済(今週対応予定)
- OpenSocial Virtual Currency API
- poncan(ドリコム)
- payca(PeX)
- cron機能
- サーバサイドJavaScriptの割当
今後の対応
- 国際化
- アプリケーションテンプレート
- GUIでアプリのカスタマイズ
- 汎用PaaS
- JavaScriptorのためのプラットフォーム
質疑応答
- KVSの内部はどうなってるか教えてもらえますか?
- 今はKVSもどきの普通のRDBを使ってるが、対応できなければ外に出すかも
- ファイルAPIがあるが、たくさんファイルを置いた場合の課金は?
- 詳細覚えてないが、1,2GBくらいになると従量課金。はじめはタダ
- サーバサイドJavaScriptのイメージがわかない
- 普通のHTML作る時に使うJavaScriptを管理画面からあげるだけ
- ヘッダ情報やPOST情報をAPIを通してJavaScriptで扱う
- JavaScriptのデバッグはどのようにやる?
- 管理画面上にエミュレーションがあるのでそれを使える
- 最大何万ユーザ抱えたアプリをさばいた実績がありますか?
- 実績は今後作る
- 全アプリで数万ユーザくらいだけど、資源を全然使ってないのでまだまだ余裕
大規模SNSにおけるソーシャルアプリの運用とマネタイズ - 株式会社ドリコム 神谷友輔氏
- 資料:大規模SNSにおけるソーシャルアプリの運用とマネタイズ
- 資料を用意したが、上司に「これは言っちゃダメ」と言われて少し作り直した
マネタイズとは
- 期末テストで「アイツに勝つために何でもしてやる」という想いと同じ
まずゲームとして成り立たせるためのポイント
- 「また明日遊んでもらえるか?」
- おもしろさ
- 安定した稼働
- 絶え間ない更新
マネタイズに必要なもの
- マネタイズに必要な「面白さ」
- 価値を生む
- マネタイズに必要な「記録」
- 価値を高める
- マネタイズに必要な「安定稼働」
マネタイズに必要な「面白さ」:価値を生む
- 一言でいうと「成長」
- 成長という成功価値に人はお金を払う
- 何でも課金すべき?
- Noだと思う
- どこに課金する?
- ゲームの進行に関係ない部分に課金する
- 例えばRPGなら、「竜を倒す」という本筋に課金しちゃダメ
- ソーシャルならではの課金する
- ともだち
- ゲームの進行に関係ない部分に課金する
時間消費型成長と金銭消費型成長
- 2つの成長
- 時間を払って成長
- 金銭を払って成長
- どこに成功価値を置くかがゲームのポイント
- 時間消費型と金銭消費型の2つの円が真ん中で上手く重なるのが良い(ベン図)
ソーシャルならではの価値
- 友だち、仲間などの相手がいることで生まれるモチベーション
- ギフトという価値の考え方
- はじめは相手をなでるという無料の行為
- それに対して相手はなで返す
- これが進むと「相手にもっと色々あげたい」というギフトという価値が生まれる
- はじめは相手をなでるという無料の行為
- 相手にちょっかいを出すと経験値が上がるという仕組みは必要
- 友だちのところに行く理由ができる
- 友だちも同様に自分のところに来てくれる
- これが進むとその作用がループする
- 友だちのところに行く理由ができる
ここまでのまとめ
- 価値を与えるテクニックは社内に100個弱あるけど、そこまでは言えず
マネタイズに必要な「記録」:価値を高める
- ユーザを飽きさせないためにどこにポイント置くか
抑えておくべきKPI
マネタイズに必要な「安定稼働」
- 絶対安定稼働が必要
- ユーザが一度落ちたサービスへの復帰率は低い
- 新規ユーザの獲得の比にならない痛さ
- たとえゲームが100万インストールされていても、そのうち1万人しか遊んでないゲームは問題
- 同じ1万人しか遊んでないゲームでも、まだ1万人しかインストールされていないのならそこから増やすのは頑張ればどうにかなる
- ユーザが一度落ちたサービスへの復帰率は低い
安定稼働が必要だが、巨大SNSならではの問題がある
- 想定すべき負荷がやばい
- 数秒以内に200返しがMUST
- エラーやtimeoutが多いとSNS側にサービスを止められる
- アクセスが増える日時
- リリース直後はお祭り
- イベント直後や日付変更時
どうやって対策?
- 普通のwebアプリと同じ点
- チェック環境などで想定の負荷対策
- webアプリとは違う点
- 「ドドンパ」:0から100km/hになる可能性がある
- 普通のwebアプリなら段々にユーザ数が増えて行くので予測がつく
- ソーシャルアプリはリリース直後に一瞬で10万人が使うという可能性もある
- 「ドドンパ」:0から100km/hになる可能性がある
- ドリコムではスケーリングの規模の見立てができたところで手元に持ってくる
- AmazonEC2で初めに動かして見極めをし、安定したところで自社データセンタへもってくる
対策をしたと思っていても罠が待ってる
- EC2は西海岸
- 行って1秒、帰って1秒という可能性もある
- 県民魂
- アンケートアプリ
- 元々のpcアプリ:5000人
- 県民魂:23万人
- pcアプリと同じ程度だと思ったら予想外のユーザ数
- ユーザがどう遊ぶかわからない
- 「なでる」という軽いはずの機能が「誰でも彼でもひたすらなでる」というユーザが出てきたせいで負荷に耐えられなくなった
- RDBでは耐えきれずTT(tyokyo tyrant)に移行
- 「なでる」という軽いはずの機能が「誰でも彼でもひたすらなでる」というユーザが出てきたせいで負荷に耐えられなくなった