Version: Unity 6.0 (6000.0)
言語 : 日本語
ストアの拡張
ストア ガイド

Android アプリ内課金 (IAP) ストアにおける、ストア間を横断してプロダクトをインストールする場合の問題

Android Bundle ID を共有する複数の Android のアプリ内課金ストア (Google など) に同時に公開する場合、ストア間を横断してプロダクトをインストールすることで問題が発生する場合があります。ここでは、これらの問題と解決方法について説明します。

ストア間を横断してインストールする際の問題は、あるストア (ストア A) からアプリをインストールし、もう 1 つのストア (ストア B) からのアプリで先にインストールしたストア A のアプリをアップグレードするときなどに起こります。ユーザーのインストールをアップグレードすることができるのは、より新しいバージョンのアプリを提供しているストアです。この問題は、バージョンの違うアプリのビルドに、同じ Android Bundle ID と Key を使用している場合に発生します。

例えば、com.foo.bar が Google Play と Amazon アプリストアの両方に公開されているとします。両方のアプリストアを使用しているユーザーは、com.foo.bar を Amazon アプリストアからインストールし、更新されたバージョンを Google Play から取得できます。これにより、結果的に IAP デジタルプロダクトトランザクションが失われ、以前に行われたトランザクションを復元できなくなります。

ストア間を横断してインストールすることにより発生する問題の影響

複数のストアにまたがる問題は、アプリ内課金を利用するアプリに対して解決困難なエンドユーザー側の問題を引き起こすことがあります。ユーザーはアンインストールや再インストールのときに購入したプロダクトの紛失や、確定前の購入がストア間を横断したアップグレードによって妨げられていることに気づく場合があります。

結果として発生する IAP の問題

  • 完了していない購入が失われる。これは、購入が承認された後、アプリケーションがストアの課金システムからの購入の受け取りを確認する前にユーザーがアップグレードした場合に発生します。これは、アプリケーションがクラウドインベントリサービスとタイムリーに同期できなかったり、この新しい IAP をローカルインベントリデータベースに保存する前にアプリケーションがクラッシュした場合に、発生する可能性があります。

  • ストア A からの購入が保留になる。これは、ストア A で IAP トランザクションを完了した後に、ユーザーがストア B からアプリケーションを再インストールした場合に発生します。これらのトランザクションは復元できません。多くのストアでは、アプリケーションが他のストアの IAP システムにアクセスすることを明示的に禁止しています。これを回避するには、クラウドインベントリシステムと、それに付随するユーザー ID サービスを利用します。

  • IAP 製品リストが異なる。ストア B のアプリケーションのアップグレードされた製品リストが、ストア A のものと異なる場合に発生します。このような場合には、異なる IAP カタログを提供してしまう可能性があります。ストア B の製品リストに基づいて、一致していないローカルインベントリ読み込まれた場合、アプリケーションエラーが発生することがあります。また、ユーザーが以前に購入したインベントリはストア B の製品リストでは利用できないため、そのインベントリは失われることがあります。

ストア間を横断してインストールすることにより発生する問題の解決

ストア間にまたがる問題を解決する 2 つの方法

  • 各ストアごとに一意の Key を使用する (これにより、一致しないストアからアップグレードのエラーメッセージが発生します)。
  • 各ストアごとに一意の Bundle ID を使用する (これにより、インストールされたアプリが、ユーザーのために複製されます)。
ストアの拡張
ストア ガイド