💰

Amazon Appstore SDKのPromotionの検証

2023/10/31に公開

はじめに

Amazonのアプリ内課金(In-App-Purchasing)でプロモーションを設定した時の挙動についての検証。結果はまとめに記載している。(先に断っておくと実際にストアに出さないとアプリ内課金の動作検証をしても請求額が¥0で表記されてしまうため、確証を得られないことがあった。)

プロモーションについて

Amazonのアプリ内課金(In-App-Purchasing)でユーザに割引価格を提供できる機能。
請求方法や価格などを設定することで条件に基づいた割引が設定可能となる。各種設定項目については以下にまとめる。

請求方法設定

プロモーション価格の請求方法は以下の2つ。どちらも期間の設定がある。

1回払い

1回払いのイメージは1ヶ月1000円のサブスクリプションがあった場合に3ヶ月まとめて支払うと2800円で200円安くなるような設定のイメージ。設定した期間分(プロモーション価格の適応期間)が設定した金額で販売される。上記の例でいうと2024/1/1~2024/3/31の3ヶ月分は2800円に設定し、それ以外の期間は1000円/月で販売する設定ができる。

定期払い

定期払いのイメージは1ヶ月1000円のサブスクリプションがあった場合に指定した期間中900円で販売するといったイメージ。設定した期間中(プロモーション価格の適応期間)は設定した金額で販売される。上記の例でいうと通常は1000円/月で販売の設定し、2024/1/1~2024/3/31の3ヶ月は900円で販売する設定ができる。

更新頻度 1回払い 定期払い

価格設定

価格の設定では1回払いの場合、設定した期間x設定金額が1週間や1ヶ月単位の金額を超えるとエラーになる。例えば100円/月のサブスクリプションの場合、1回払いで3ヶ月分を400円に設定するなどはNG。また、定期支払いも設定した期間中の金額が通常の金額を超えるとエラーになる。例えば200円/月のサブスクリプションの場合、期間中は220円/月のような設定はNG。また、プロモーションによる価格を0円に設定することはできない。

1回払い 定期払い

セグメンテーション設定

プロモーション対象の設定にはユーザと期間の設定がある。

ユーザ設定

設定できるユーザの区分のついては以下の2つ。

すべてのユーザ

こちらは文字通りプロモーションは全ユーザが対象となる設定。具体的には初めてサブスクリプションをする新規ユーザとこれまでプロモーションを利用したことがなく、サブスクリプションを再開するユーザもこちらになる。

休眠中のユーザ

こちらは指定した期間、対象のサブスクリプションを購入していないユーザが対象となる設定。具体的にはサブスクリプションを再開するユーザのみ。

すべてのユーザ 休眠中のユーザー

期間設定(適用開始〜終了日)

ユーザが利用できるプロモーションの適用開始日と終了日の設定。Amazon Developer Console上では最長で1年間の設定ができた。

検証

プロモーションの各設定に対してどのような動作になるのか検証を行った。それぞれ用意したサブスクリプションは以下の通り(設定画面のスクショは画面を拡大して見てください)。

なお、検証にはAmazonライブアプリテストを使用する。ライブアプリでタイムライン短縮を設定していれば週更新のサブスクリプションは5分で自動更新される。また月更新の場合は10分で自動更新される。自動更新は4回行われる。無料体験ありの場合は購入後、1回のみ自動更新後にキャンセルされる。

  • Test1:1回払い検証用
  • Test2:定期支払い検証用
  • Test3:無料体験&プロモーション併用検証用
  • Test4:プロモーション適用期間検証用
  • Test5:休眠ユーザ検証用
Test1 Test2 Test3 Test4 Test5
無料体験 なし なし あり7日間 なし なし
請求方法 1回払い 定期支払い 定期支払い 1回払い 1回払い
プロモ価格適用期間 14日 2週間 1週間 14日 14日
ユーザセグメント すべて すべて すべて すべて 休眠中1ヶ月
プロモ適用期間 23/10/30~24/10/29 23/10/30~24/10/29 23/10/30~24/10/29 24/04/01~24/10/29 23/10/31~24/10/30
プロモ価格 ¥150 ¥100 ¥100 ¥100 ¥100
通常価格 ¥170 ¥150 ¥150 ¥200 ¥200
設定画面

Test1(1回払い検証)

Test1のサブスクリプションは毎週自動更新で1回払いのプロモーションが設定されている。検証内容としては1回払いの場合、最初の購入がプロモーションで指定した期間と価格が適用されているか検証する。定期購読履歴や課金履歴はAmazonのアカウントサービスから確認したもの。

ライブアプリテストのためか、請求はすべて¥0になっていた。価格からは判断しにくいが、11:16にサブスクリプションを購入すると課金履歴の購読期間に2週間分(10/30~11/13)の表記がある。このことから設定した14日間のプロモーション価格が適用されていると考えられる。

11:47に再度Test1のサブスクリプションを購入したところ、11:16と同じように2週間分のプロモーションが適用されているように見えた。こちらは公式ドキュメントのQ&Aによるとプロモーションの適用は「定期購入型アイテム1つにつき1回のみ」と記載があるのでドキュメントと合っていない挙動が確認できた。もしかするとライブアプリテストのみの挙動かもしれない。

時刻 アクション 購入画面 定期購読履歴 課金履歴
11:16 週更新のサブスク購入
11:21 自動更新1回目
11:26 自動更新2回目
11:31 自動更新3回目
11:36 自動更新4回目
11:41 自動キャンセル
11:47 週更新のサブスク再度購入 スクショ撮り忘れ
11:52 自動更新1回目
11:57 自動更新2回目
12:02 自動更新3回目
12:07 自動更新4回目
12:12 自動キャンセル

Test2(定期支払い検証)

Test2のサブスクリプションも毎週自動更新で定期支払いのプロモーションが設定されている。検証内容としては2週間はプロモーション価格が適用されていることの検証となる。定期購読履歴や課金履歴はAmazonのアカウントサービスから確認したもの。

こちらもライブアプリテストのためか、請求はすべて¥0になっていた。そのため、プロモーションが適用されているか確認が取れなかった。(2週間(最初の購入と更新1回目)はプロモーションの価格が表記されていれば適用が確認できたはずだが表記がないため確証が得られず...)

時刻 アクション 購入画面 定期購読履歴 課金履歴
17:56 週更新のサブスク購入
18:01 自動更新1回目
18:06 自動更新2回目
18:11 自動更新3回目
18:16 自動更新4回目
18:21 自動キャンセル

Test3(無料体験&プロモーション併用検証)

Test3のサブスクリプションは無料体験と定期支払いのプロモーションが同時に設定されている。また毎週と毎月の期間(termSku)設定を同じ商品(SKU)内に設定している。検証内容としては以下の通り。定期購読履歴や課金履歴はAmazonのアカウントサービスから確認したもの。

  • 無料体験とプロモーションが同時適用されてしまうか?
  • 無料体験は同じ商品で1回きりか?

自動更新が1回行われた後にキャンセルされたことから無料体験が先に適用されたと思われる。また期間が異なる商品を購入したところ、1回目の自動更新でキャンセルされなかったことから無料体験は同じ商品で1度きりという確認ができた。

時刻 アクション 購入画面 定期購読履歴 課金履歴
18:53 週更新のサブスク購入
18:58 自動更新1回目
19:03 自動キャンセル
時刻 アクション 購入画面 定期購読履歴 課金履歴
19:13 月更新のサブスク購入
19:23 自動更新1回目
19:33 自動更新2回目
19:43 自動更新3回目
19:53 自動更新4回目
20:03 自動キャンセル

Test4(プロモーション適用期間検証)

Test4のサブスクリプションはプロモーション設定がされているが、適用期間外(未来)の場合のもの。検証内容としてはプロモーション適用期間外のためプロモーションが適用されないこととなる。定期購読履歴や課金履歴はAmazonのアカウントサービスから確認したもの。

09:53の最初の購入で1回支払いで2週間分のプロモーション価格が適用されていれば、Test1の時と同様に課金履歴の購読期間が2週間になっているはずである。しかし、実際は1週間分の期間になっていることからプロモーション期間外ではプロモーションが適用されないことが確認できた。

時刻 アクション 購入画面 定期購読履歴 課金履歴
09:53 週更新のサブスク購入
09:58 自動更新1回目
10:03 自動更新2回目
10:08 自動更新3回目
10:13 自動更新4回目
10:18 自動キャンセル

Test5(休眠ユーザ検証)

Test5のサブスクリプションは休眠中1ヶ月経過し、再度サブスクリプションを購入する場合に適応されるプロモーションが設定されている。こちらは一度Test5を購入し、キャンセル。その後に再度Test5を購入しようとするとプロモーションが適応されているか検証する。定期購読履歴や課金履歴はAmazonのアカウントサービスから確認したもの。

10:19に購入し、手動でキャンセル後、1ヶ月経過を再現するために短縮タイムラインに記載された1ヶ月分である10分以上を経過させた。その後の10:33に再度同じ商品を購入した。

再購入時に休眠中ユーザと判断されていればTest1同様に10:33の購入で課金履歴の購読期間が2週間になっているはずであるが、なっていなかった。休眠期間は最低1ヶ月からの設定のため、ライブアプリテストで短縮タイムラインを使用している場合は理論上10分以上経過で休眠中になると思ったが実際はそうではなかった。ライブアプリテストにて休眠中を再現するためには実際に1ヶ月経過後に確認する以外方法がないかもしれない。

時刻 アクション 購入画面 定期購読履歴 課金履歴
10:19 週更新のサブスク購入
10:21 手動キャンセル
12分経過
10:33 週更新のサブスク再度購入
10:38 自動更新1回目
10:43 自動更新2回目
10:48 自動更新3回目
10:53 自動更新4回目
10:58 自動キャンセル

まとめ

Amazonのライブアプリテストにてプロモーションの検証を行った結果、金額が¥0表記されてしまうので確実にプロモーションが適応されているかの事実確認ができなかった。しかし、少なくとも以下のことは確認できた。

  • ⭕️ 1回払いのプロモーションが適用されること(Test1)
  • ⭕️ 無料体験とプロモーションが同時で使用されることはないこと(Test3)
  • ⭕️ 無料体験は同じ定期購読商品に対して1度のみ適用されること(Test3)
    • 例:同じ定期購読商品で毎週更新のものを最初に購入し、その後毎月更新のものを購入した場合は適用されない
  • ⭕️ プロモーション適用期間外はプロモーションが適用されないこと(Test4)

逆に以下のことは確認できなかった。ライブアプリテストゆえに確認できなかった可能性が高いので実際にAmazon AppStoreにてアプリをリリースして確認する以外に方法はないかもしれない。

  • ❌ プロモーションが同じ定期購読商品で1度のみ適用されること(Test1)
  • ❌ 定期支払いのプロモーションが適用されること(Test2)
  • ❌ 休眠中ユーザにプロモーションが適用されること(Test5)

*今回使用したコードは以下となります。検証内容はあくまで個人で検証した範囲です。

参考

Discussion