Version: 2023.1
言語: 日本語
ストアの拡張
iOS & Mac App Store

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

Android 共有バンドル 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 の問題

  • 確定前の購入の紛失 購入の承認は済んでいる状態でも、アプリがストアの請求システムからの購入受理を確認する前にユーザーがアップグレードを行った場合に発生します。この問題は、アプリがクラウドインベントリーサービスとの適時な同期に失敗したり、新しいアプリ内の購入をローカルのインベントリーデータベースに保存する前にアプリがクラッシュすると発生します。

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

  • 相違する IAP プロダクトリスト ストア B のアプリのアップグレードされたプロダクトのリストが、ストア A のものと異なる場合に発生します。ユーザーが多種類の IAP カタログを使用する場合もあります。しかし、これにより、矛盾するローカルインベントリーがストア B バージョンによって読み込まれるとき、アプリケーションエラーが発生することがあります。また、ユーザーが、ストア B のバージョンでは不可能な以前のインベントリーを失う場合もあります。

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

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

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