Devsumi2013 15-C-1 実践!スマホアプリのマネタイズ!! ~マーケット把握術と iPhone&Androidプログラミングテクニック~

10,505 views

Published on

実践!スマホアプリのマネタイズ!!
~マーケット把握術と
iPhone&Androidプログラミングテクニック~

Devsumi2013 15-C-1 実践!スマホアプリのマネタイズ!! ~マーケット把握術と iPhone&Androidプログラミングテクニック~

  1. 1. DevelopersSummit 実践!スマホアプリのマネタイズ!! ~マーケット把握術と iPhone&Androidプログラミングテクニック~ 株式会社メタップス代表取締役CEO 佐藤航陽 パナソニックAVCマルチメディアソフト株式会社 加藤勝也 瀬戸健二15-C-1 パナソニックAVCマルチメディアソフト株式会社 パナソニックAVCマルチメディアソフト株式会社 日高正博#devsumiC Developers Summit 2013 Action !
  2. 2. DevelopersSummit 登壇者紹介佐藤 航陽 加藤 勝也@metaps_sato @kacchi0516スマートフォンの iOSプログラミング未来を創る のスペシャリスト瀬戸 健二 日高 正博@rongon_xp @mhidaka課金システムの Android大百科地雷を知り尽くす 野生の羊 Developers Summit 2013 Action !
  3. 3. DevelopersSummit I suggest your Next Action! Developers Summit 2013 Action !
  4. 4. Developers Summit Action!MY RECOMMEND NEXT ACTION! モバイルアプリの可能性を感じてください デブサミで受けた刺激、アイデアをかたちに。 千里の道も… 最初の一歩を一緒に踏み出して見ませんか? Developers Summit 2013 Action !
  5. 5. DevelopersSummit アプリのマネタイズ 個人ディベロッパーがアプリで稼ぐための収益化 戦略15-C-1 佐藤 航陽#devsumiC 株式会社メタップス 代表取締役CEO
  6. 6. Developers Summit 自己紹介佐藤航陽Katsuaki Sato株式会社メタップス代表取締役CEO1986年 福島生まれ東京・US・シンガポール・香港で活動サービス導入アプリは累計5,000万DL以上http://www.metaps.com/
  7. 7. DevelopersSummit アプリ市場のトレンド売上トップ25位以内に占めるフリーミアムの割合 100% 96%
  8. 8. Developers Summit アプリはどれぐらい儲かるの? Google Play AppStore売上1~5位 1億円~ 2億円~売上6~10位 6,000万円 1億円売上11~20位 3,000万円 6,000万円売上20~30位 2,000万円 3,000万円
  9. 9. DevelopersSummit 最も典型的な成功例 CPI広告 CPC広告
  10. 10. Developers Summit 法人アプリが主流へ• 売上ランキング100位以内の95%が法人• トップディベロッパーは初月に1,000万円以上 のプロモーション予算を投下している 個人開発者は不利?
  11. 11. Developers Summit 個人ディベロッパーの狙い目• Google Playはまだまだ個人でも通用する• 小型ディベロッパーが大ヒットを飛ばしている3 4 1
  12. 12. Developers Summit Google Playの特徴• AppStoreのように広告と順位は比例しない• 面白いアプリはノンプロモでDLが集まる AppStore Google Play クオリティ重視 自由放任主義 順位変動が激しい 順位変動が少ない 人の目で判断 アルゴリズムで判断
  13. 13. DevelopersSummit お金をかけずにDLを稼ぐ方法 ランキングの把握 ソーシャルメディアの活用 ASO(アプリストア最適化)
  14. 14. DevelopersSummit Google Play ランキングロジック インストール数 アンインストール数 アプリの起動 評価 【★の数】 アンインストされなければDLが少なくとも上位は狙える
  15. 15. Developers Summit Androidはリリース30日が勝負• 30日間だけ掲載される「人気の新着」を活用 人気の新着 30日目 人気の新着(非表示) 人気 人気 売上トップ 売上トップ
  16. 16. DevelopersSummitGoogle Play 新着から流入数開始7日間の獲得件数 人気の新着(無料) デイリーの自然流入数 50,000件 10位以内 3,000~5,000件 30,000件 10位~19位 2,000~3,000件 20,000件 20位~29位 1,000~2,000件 15,000件 30位~39位 500~1,000件
  17. 17. Developers Summit ソーシャルメディアへのポスト• ゲームクリア時、アプリ起動時、スプラッシュ• 人の招待をうまく活用する Email facebook twitter mixi GREE LINE KAKAO日本 45% 4% 6% 3% 7% 36% 0%韓国 22% 5% 4% 0% 0% 0% 69%
  18. 18. DevelopersSummit Bokete(ボケテ)の例 • 広告投下なしで10万DL 以上(Android版) • Twitterで面白い画像を ユーザが投稿して紹介 • 常に口コミがアプリ外で起 こり続ける
  19. 19. Developers Summit レビュー媒体• 大小50以上の媒体が存在する• 紹介してくれるかどうかはネタ次第
  20. 20. Developers Summit ASO(アプリストア最適化)• キーワードによっては1日数百件程度の流入• タイトル・ディスクリプションにワードを設定• アイコン・スプラッシュなどデザイン面 キーワード アイコン スクリーン
  21. 21. DevelopersSummit ユーザは何を検索するか? 時事ネタ・人物名・欲望系・アプリ名 アドバイスツーツでボリュームを判断 複合ワードはサジェストで判断できる
  22. 22. DevelopersSummit アイコンは命 色 枠 線 細かさ 文字 光沢
  23. 23. DevelopersSummit AppAnnieをフル活用 http://www.appannie.com • 競合調査 • アイコントレンド • 順位の把握 • 売上の把握
  24. 24. DevelopersSummit Thank you!!
  25. 25. DevelopersSummit iPhone(iOS)のアプリ内課金 実践!スマホアプリのマネタイズ!! ~マーケット把握術とiPhone&Androidプログラミングテク ニック15-C-1 加藤 勝也 パナソニックAVCマルチメディアソフト(株) Developers Summit 2013 Action !
  26. 26. Developers Summit 自己紹介• パナソニックAVCマルチメディアソフト(株)• 業務でもプライベートでもスマートフォンアプリの 開発してます – でも元(?)組込み屋なのでハードも少々嗜む• Twitter @kacchi0516• 個人サイト http://www.crossbridge.biz/ Developers Summit 2013 Action ! 2
  27. 27. DevelopersSummit 何を販売できる? Developers Summit 2013 Action ! 3
  28. 28. Developers Summit 販売できるプロダクト• コンテンツ(Content) – 電子書籍、雑誌、写真など有形のもの、 ゲム中のキャラクターやアイテムなど ー• 機能プロダクト(Functionality Product) – 事前に組込んでいた機能を購入することによって 解除して提供する Developers Summit 2013 Action ! 4
  29. 29. Developers Summit 販売できるプロダクト• サービス(Service) – 音声のテキスト化や翻訳など一度限りのサービ スをユーザーに提供する• 定期購読(Subscription) – コンテンツやサービスを継続的に利用できるよう にする Developers Summit 2013 Action ! 5
  30. 30. DevelopersSummit 販売できないプロダクト• 実物の商品やサービス – アプリケーションの中で提供できるものは 電子商品または電子サービスに限定• ポルノ、誹謗、中傷、ギャンブルに関するもの – 当然と言えば当然・・・ Developers Summit 2013 Action ! 6
  31. 31. DevelopersSummit Appleの審査• 販売するプロダクトにもアプリ同様に Appleの審査が行われる つまりリジェクトされる可能もある Developers Summit 2013 Action ! 7
  32. 32. DevelopersSummit どんなものがリジェクトされる?• カメラやジャイロセンサなどのiOSが提供する 基本的な機能に対して課金• 現実世界でも利用できるアプリ内の通貨 Developers Summit 2013 Action ! 8
  33. 33. DevelopersSummit どんな販売形式がある? Developers Summit 2013 Action ! 9
  34. 34. Developers Summit プロダクトの販売形式• Consumable(消費型)タイプ• Non-consumable(非消費型)タイプ• Auto-renewable subscriptions (自動更新購読)タイプ• Free Subscription(無料購読)タイプ• Non-renewing Subscription (非更新購読)タイプ Developers Summit 2013 Action ! 10
  35. 35. DevelopersSummit Consumable(消費型)タイプ• 名前の通り消費するプロダクト – ユーザが何度でも購入できる – 回復アイテムとかゲーム中の通貨とか – ユーザがついつい課金してしまう ゲームバランスが大事?! • にゃ○こ大戦争のネコカンとか・・・ Developers Summit 2013 Action ! 11
  36. 36. DevelopersSummit Non-consumable(非消費型)タイプ• ユーザが一度だけ購入できる (消費されない)• 広告の削除とか機能制限の解除とか – アプリ自体は無料(広告付き)、アプリ内課金で 広告を削除する• リストア機能がある – 再インストール時や他の端末に インストールしたとき Developers Summit 2013 Action ! 12
  37. 37. DevelopersSummit Auto-renewable subscriptions (自動更新購読)タイプ• 一定期間有効なプロダクト – 期間が終了すると自動的に更新 – 期間は、1 週間・1 ヶ月・2 ヶ月・3 ヶ月・ 6 ヶ 月・1 年• 雑誌とか新聞の定期購読 Developers Summit 2013 Action ! 13
  38. 38. DevelopersSummit で、実装は? Developers Summit 2013 Action ! 14
  39. 39. DevelopersSummit StoreKitフレームワーク• 基本的にStoreKitを通して(使って) AppStoreとやりとりを行う Developers Summit 2013 Action ! 15
  40. 40. Developers Summit 最もシンプルな購入の流れ アプリ内課金が アプリケーション StoreKitフレームワーク AppStore利用できるかチェックプロダクト情報は問い合わせること Developers Summit 2013 Action ! 16
  41. 41. DevelopersSummit 突然のリジェクト Developers Summit 2013 Action ! 17
  42. 42. Developers Non-Consumable(非消費型)タイプにはSummit リストア機能が必須 リストア機能が実装されていないと
リ ジェクト対象• リストアが簡単にできる機能があるが開発者 が実装する必要!• リストアのためのボタンを設ける Developers Summit 2013 Action ! 18
  43. 43. DevelopersSummit その他、注意点とか Developers Summit 2013 Action ! 19
  44. 44. DevelopersSummit アプリ内課金の脆弱性 アプリ内課金のコンテンツを 無料で入手できてしまう Appleのサーバとのやり取りを、
別サーバに アクセスさせ改ざんしてしまう iOS5の時に問題になってAppleがiOS6で対策 開発者は独自サーバ経由で問い合わせるか 下記の対応をhttps://developer.apple.com/library/ios/#releasenotes/StoreKit/IAP_ReceiptValidati on/index.html Developers Summit 2013 Action ! 20
  45. 45. DevelopersSummit テストするポイント• Non-Consumable(非消費型)プロダクトが 正しくリストアできるか• 意図せず複数個購入してしまわないか – ボタンを連打してしまっても大丈夫なように• 購入処理中にネットワークが切断されても 正しく処理が復旧するか etc... Developers Summit 2013 Action ! 21
  46. 46. DevelopersSummit 最後に ぜひ、皆さんのアプリに アプリ内課金の導入を Developers Summit 2013 Action ! 22
  47. 47. DevelopersSummit Androidのアプリ内課金   In-app Billing of Android15-C-1 瀬戸 健二 パナソニックAVCマルチメディアソフト(株) Developers Summit 2013 Action !
  48. 48. DevelopersSummit 自己紹介 Developers Summit 2013 Action !
  49. 49. Developers Summit 自己紹介 •  瀬戸 健二(28)   –  パナソニックAVCマルチメディアソフト(株)   –  航空機エンターテイメントシステム開発、   モバイルアプリ開発   –  Android、Linux、マイコンなどが得意   –  元TechBoosterメンバー   –  Twi9er   •  @rongon_xp   Developers Summit 2013 Action !
  50. 50. DevelopersSummit Androidのアプリ内課金 Developers Summit 2013 Action !
  51. 51. Developers Summit 本日のテーマ •  アプリ内課金プログラミング完全ガイドでは   In-­‐app  Billing(IAB)  v2について解説  •  発売直後にIABv3が発表・・・。  •  今日はIABv3について   お話させて頂きます   Developers Summit 2013 Action !
  52. 52. Developers IABv3特徴 Summit •  実装がとても簡単に。   –  v2では100行以上、v3では50行程度に。  •  非同期処理の排除とローカルキャッシング   –  高速なAPI実行が可能に。   –  セキュリティ向上  •  購入情報の管理  •  アイテム情報の参照   Developers Summit 2013 Action !
  53. 53. Developers Androidアプリ内課金  -­‐  概要Summit •  Playストアサーバ上に存在する購入情報を更新する  •  アプリからはPlayストアアプリを介してPlayストアサ ーバにアクセスする   購入情報 Developers Summit 2013 Action !
  54. 54. Developers IABv2の購入シーケンスSummit Developers Summit 2013 Action !
  55. 55. Developers IABv2のアプリ構成 Summit•  課金リクエストを送信するためのサービス  •  非同期メッセージを受け取るためのブロードキャストレシーバ  •  アプリケーションに通知するためのレスポンスハンドラと   オブザーバ Developers Summit 2013 Action !
  56. 56. Developers IABv3の購入シーケンスSummit getBuyIntent() Bundle (RESPONSE_CODE, BUY_INTENT) Play   Your   Store   App startIntentSenderForResult() App IAB API Bundle (RESPONSE_CODE, INAPP_PURCHASE_DATA, 同期レスポンス INAPP_SIGNATURE) Developers Summit 2013 Action !
  57. 57. Developers IABv3のアプリ構成Summit •  同期処理になったため、アプリ構成がシン プルになった Playストアアプリ アプリ本体 InAppBilling   bind Service セキュリティ Developers Summit 2013 Action !
  58. 58. DevelopersSummit アイテムの購入 Developers Summit 2013 Action !
  59. 59. Developers Summit アイテムの購入(1) •  IInAppBillingService.getBuyIntent()で購入画面を 起動  //  購入画面を起動するためのインテントを取得  Bundle  buyIntentBundle  =  mService.getBuyIntent(3,  getPackageName(),        sku,  "inapp",  "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ");    PendingIntent  pendingIntent  =  buyIntentBundle.getParcelable("BUY_INTENT");    //  インテントを使って購入画面を起動する  startIntentSenderForResult(pendingIntent.getIntentSender(),        1001,  new  Intent(),  Integer.valueOf(0),  Integer.valueOf(0),        Integer.valueOf(0));   Developers Summit 2013 Action !  
  60. 60. Developers Summit アイテムの購入(2) •  購入結果はonAchvityResult()に返される @Override  protected  void  onAchvityResult(int  requestCode,  int  resultCode,  Intent  data)  {          if  (requestCode  ==  mRequestCode)  {                                    int  responseCode  =  data.getIntExtra("RESPONSE_CODE",  0);              String  purchaseData  =  data.getStringExtra("INAPP_PURCHASE_DATA");              String  dataSignature  =  data.getStringExtra("INAPP_DATA_SIGNATURE");                                if  (resultCode  ==  RESULT_OK)  {                  //  購入処理              }        }  } Developers Summit 2013 Action !
  61. 61. DevelopersSummit アイテムの消費 Developers Summit 2013 Action !
  62. 62. DevelopersSummit アイテムの消費(1) •  IABv3ではすべての購入情報がPlayストア サーバで管理  •  消費しないと再購入できない –  消費型 :  購入が完了したら消費処理を実施   –  非消費型 :  購入が完了しても消費処理をしない   Developers Summit 2013 Action !
  63. 63. Developers Summit アイテムの消費(2) •  消費型アイテムの場合はconsumePurchaseを実 行することで再購入できるようにする   •  INAPP_PURCHASE_DATAに含まれている purchaseTokenを指定する int  response  =          mService.consumePurchase(3,  getPackageName(),  purchaseToken); Developers Summit 2013 Action !
  64. 64. DevelopersSummit トラブルシューティング Developers Summit 2013 Action !
  65. 65. DevelopersSummit うまく動かないとき(1) •  テストアカウントを設定していない   –  Androidデバイスのプライマリアカウントに設定  •  公開鍵をアプリに設定していない   –  Developer  Consoleで取得可能  •  Playストアにアプリ/課金アイテムを登録し た直後   –  反映されるのに数時間〜数日かかることがある   Developers Summit 2013 Action !
  66. 66. Developers Summit うまく動かないとき(2) •  アプリの署名が不正   –  Playストアに登録している署名と一致している 必要がある  •  アプリの公開設定   –  公開設定にすると動作する場合も・・・。 Developers Summit 2013 Action !
  67. 67. DevelopersSummit どちらを使えばいいのか? •  v3は定期購読未サポート   –  アプリ内課金アイテムのみであればv3でok  •  簡単に実装したいのであればv3   Developers Summit 2013 Action !
  68. 68. DevelopersSummit•  ご清聴ありがとうございました Developers Summit 2013 Action !
  69. 69. DevelopersSummit 参考資料 Developers Summit 2013 Action !
  70. 70. Developers Summit アイテムの販売形式 •  消耗型   –  ゲーム上のお金、ポーションなど使用すると消耗してしまうもの  •  非消耗型   –  アプリ上の機能制限のアンロックなど、購入することで永続的に効 果が持続されるもの  •  購読型   –  定期的な課金によって効果が持続されるもの Developers Summit 2013 Action !
  71. 71. Developers IABv3  Sample  AppSummit Developers Summit 2013 Action !
  72. 72. Developers IABv3  Sample  App Summit •  サンプルアプリケーションをダウンロード   –  Extras  -­‐>  Google  Play  Billing  Library  •  Eclipseにインポート  •  サンプルアプリを修正   –  パッケージ名を変更   –  公開鍵を設定  •  アプリをPlayストアにアップロード  •  アップロードしたapkをadb  install Developers Summit 2013 Action !
  73. 73. Developers INAPP_PURCHASE_DATA Summit •  Playストアより得られる購入情報 02-­‐11  10:27:39.908:  D/IabHelper(7688):  Extras:Bundle[{INAPP_PURCHASE_DATA={  "orderId":"12999763169054705758.1368594429841055",  "packageName":"org.dyndns.ideon.trivialdrivesample",  "productId":"gas",  "purchaseTime":1360578449000,"purchaseState":0,  "purchaseToken":"w…,  RESPONSE_CODE=0}] Developers Summit 2013 Action !
  74. 74. DevelopersSummit 購入シーケンス(IABv2) Developers Summit 2013 Action !
  75. 75. DevelopersSummit 購入シーケンス(IABv3) 購入情報 購入情報 IABv3では不要 Developers Summit 2013 Action !
  76. 76. DevelopersSummit アイテム情報の参照(1) •  購入可能なアイテム情報を取得可能   –  セール価格など簡単に実現 getSkuDetails() Bundle Play   Your   (RESPONSE_CODE, DETAILS_LIST) Store   App App Developers Summit 2013 Action !
  77. 77. Developers Summit アイテム情報の参照(2) •  getSkuDetails()でアイテム情報を参照 //  サービスIDのリストを作成  ArrayList  skuList  =  new  ArrayList();  skuList.add("premiumUpgrade");  skuList.add("gas");  Bundle  querySkus  =  new  Bundle();  querySkus.putStringArrayList(“ITEM_ID_LIST”,  skuList);    //  アイテム情報を取得  Bundle  skuDetails  =  mService.getSkuDetails(3,  getPackageName(),  “inapp”,  querySkus); Developers Summit 2013 Action !
  78. 78. Developers Summit アイテム情報の参照(3) •  アイテムの価格を取得する int  response  =  skuDetails.getInt("RESPONSE_CODE");  if  (response  ==  0)  {        ArrayList  responseList                =  skuDetails.getStringArrayList("DETAILS_LIST");                for  (String  thisResponse  :  responseList)  {              JSONObject  object  =  new  JSONObject(thisResponse);              String  sku  =  object.getString("productId");              String  price  =  object.getString("price");              if  (sku.equals(“premiumUpgrade”))  mPremiumUpgradePrice  =  price;              else  if  (sku.equals(“gas”))  mGasPrice  =  price;        }  } Developers Summit 2013 Action !
  79. 79. DevelopersSummit アイテムの消費(1) •  消費しないと再購入できない –  消費型 :  購入が完了したら消費処理を実施   –  非消費型 :  購入が完了しても消費処理をしない getPurchase() Bundle (INAPP_PURCHASE_ITEM_LIST, etc) Play   Your   consumePurchase() Store   App App SUCCESS/FAILURE Developers Summit 2013 Action !
  80. 80. Developers Summit Playストアからの非同期レスポンス(IABv2) •  com.android.vending.billing.RESPONSE_CODE   –  レスポンス  •  com.android.vending.billing.IN_APP_NOTIFY   –  Playストアサーバ上にある購入情報が更新されたことを示す  •  com.android.vending.billing.PURCHASE_STATE_CHANGED   –  1つ以上のトランザクション情報 Developers Summit 2013 Action !
  81. 81. DevelopersSummit It’s your turn. ご清聴ありがとうございました Developers Summit 2013 Action !
  82. 82. Developers Summit 書籍紹介RECOMMEND BOOK• iPhone&Androidアプリ内課金プロ グラミング完全ガイド• http://www.seshop.com/product/ detail/14945/• http://www.amazon.co.jp/dp/4798 128279 Developers Summit 2013 Action !

×