Unity
アプリ内課金
IAP
itemstore

Unityでアプリ内課金を簡単に実装する方法

Unity で作成したスマートフォン向けのアプリにアプリ内課金を実装するには、Unityが標準機能として提供しているUnity IAPの利用がお手軽です。

Unity IAP について

Unity 5.3 以降は、 IAP(In-App Purchasing)という標準機能がサポートされるようになり、簡単にアプリ内課金を実現できるようになりました。

01-標準機能のIAPをUnityエディタ内で導入

標準機能の魅力

Unity IAP は標準機能というだけで、次のようなメリットがあります。

  • Unity エディタ内の操作だけで簡単に導入が可能。
  • Unity のバージョンアップで利用できなくなるリスクが少ない。

豊富なドキュメント

Unity IAP は、公式の日本語版のマニュアルとチュートリアルが充実しており、アプリ内課金を初めて導入する開発者でも利用しやすいように配慮されています。

様々なストアをサポート

Unity IAP は以下のプラットフォームのストアとの取り引きを行うことができます。

  • iOS App Store
  • Mac App Store
  • Google Play
  • Windows Store
  • Amazon Appstore
  • Samsung Galaxy Apps
  • Tizen Store

シンプルだが拡張性の高いシステム

Unity IAPはストアとの取り引きを行う購入手続きに特化した機能ですが、拡張性の高いインターフェースを提供しています。
例えば、ストアでの購入手続きが済んだイベントでは、その取り引きのトランザクションを完了するか保留するかを選択できます。
これにより、遅延が考えられる自社サーバなどとの情報のやりとりを IAP のシステムの中にスムーズに追加することができるでしょう。

02-公式マニュアルより引用 PurchaseProcessingResult.Pending
引用:Unity - マニュアル: 購入処理 購入品の保留

これらの点から、Unity IAP はシンプルでありながら拡張性を備えた、Unity 開発者にとっては導入しやすいアプリ内課金のパッケージといえます。

Unity IAP 参考文献

Unity - マニュアル: Unity IAP
Unity 公式の IAP のマニュアルです。

Unity - Unity IAP をゲームに統合する
Unity 公式の IAP のチュートリアルです。
サンプルのコードも紹介されています。

Unity IAPを使ってて思ったこと - Qiita
Unity IAP を実装する際に出てきた疑問を中心に、手順に沿って解説しています。
Unity IAP の導入から、独自でサーバを開発し IAP と連携するまでの一通りの情報がまとめられています。

Unity IAP実装方法まとめ - Qiita
Unity IAP に関する資料へのリンクを中心に、実装方法、ローカルおよび独自のサーバを用いたレシートの検証についてまとめられています。

アプリ内課金とサーバ管理

アプリ内課金は、プラットフォームのストアを経由したお金とデジタル商品のやりとりです。
アプリ内課金の実現にとって、サーバは絶対に必要というわけではありません。

サーバを使わないアプリ内課金

簡易なアプリ内課金ならば、お客様のスマートフォンのローカルに課金情報を保存・管理することでも実現できます。
この場合、サーバの開発・運用のコストがかからないというメリットがあります。

サーバを使ったアプリ内課金

一方で、本格的なアプリ内課金を実現する場合は、課金情報をサーバで管理することが一般的です。

主な理由は、お客様の課金に関するトラブルについて圧倒的に対応しやすいからです。
課金情報がローカルにしかない場合、運営側は状況を把握することすら困難でしょう。

また、悪意のあるプレイヤーがローカルの情報を改ざんし、不正に課金アイテムを入手してしまう可能もあります。
この件については、さきほど紹介した Unity IAPを使ってて思ったこと - Qiita でも不正を行うプレイヤーについて言及されています。

他にも、サーバで管理することで、プレイヤーの課金情報を分析できたり、簡単にデータの引越しを行えるメリットもあります。

アプリの運営状況に応じて、サーバ管理の導入も検討してみると良いでしょう。

itemstore でサーバ管理

itemstore は、アプリ内課金を手軽に導入することを目的としたクラウドサービスです。
Unity の他に Android, iOS と幅広いプラットフォームをサポートしており、サーバで課金情報を管理しています。

便利なクラウドサービス

itemstore を導入するには公式サイトで登録手続きをする必要があります。
簡単な手続きですが、 Unity IAP のような標準機能と比べると少し手間になるかもしれません。

登録後、公式サイトにログインすることで、商品の管理、販売画面の選択、課金情報の分析・管理といったクラウドサービスを利用することができます。
これらのクラウドサービスを利用することで、サーバ側の開発が不要になり、簡単に商品や課金情報を管理することが可能になります。

itemstoreのクラウドサービスを用いた商品管理

実装が簡単

itemstore もUnity IAP同様に実装は簡単です。
販売画面についても管理画面で選択することができるので、わざわざ販売画面の UI を作成する必要もありません。

ちなみに、10分以内でアプリ内課金の実装を実現したという報告をブログで紹介させていただきました。
10分以内で決着がつく!? 「itemstore実装 vsカップ麺完食」どっちが速いんだ対決! - itemstore BLOG

豊富なドキュメント

公式のチュートリアルではプラットフォームごとに実装の手順を詳しく説明しています。
また、Unity のサンプルプロジェクトも公開していますので、実装の方法を具体的に理解しやすいかと思います。

itemstore を導入する Unity サンプルプロジェクト

itemstore 参考文献

itemstore(アイテムストア) - アプリ内課金[In-App Purchase]を簡単実装
itemstore 公式サイトです。
チュートリアルも掲載されています。

itemstoreを使ってアプリ内課金を簡単に実装する方法<ストアの設定> - Qiita
ログイン後に扱えるクラウドサービスの管理画面の使い方を中心に、 itemstore の実装方法を紹介しています。

itemstoreを使ってアプリ内課金を簡単に実装する方法<実装:Unity編> - Qiita
Unity を用いて itemstore を利用する方法を紹介しています。
サンプルコードも掲載しています。

課金機能が実装されたitemstoreのUnityサンプルについて - Qiita
公式サイトで公開している Unity サンプルプロジェクトの基本的な見方について紹介しています。

まとめ

Unity IAP は、購入手続きに特化しつつ拡張性の高い標準機能で、自由度の高い開発に向いています。
itemstore は、サーバを用いた総合的なアプリ内課金を支援するツールで、サーバ側のコストを抑えて本格的なアプリ内課金を実現する場合に向いています。

どちらも、日本語ドキュメントが充実しており、アプリ内課金の開発が初めての方でもわかりやすいように出来ていますので、ぜひアプリ内課金の実装に挑戦してみてほしいなと思います。