フレクトのクラウドblog re:newal

http://blog.flect.co.jp/cloud/からさらに引っ越しています

Amazon Alexaスキル内課金を公開したらEcho Show 5が届きました!

こんにちは、技術開発室のオクダです。本日のテーマは「Amazon Alexaスキル内課金を公開したらEcho Show 5が届きました!」についてお話しします。

f:id:flect170:20200131145950j:plain
Echo Show 5が10個、会社に届きました!

ことの発端

Amazonでは、2ヶ月〜3ヶ月毎に、スキル開発キャンペーンが実施されています。昨年11月にスキル開発キャンペーンを確認すると

「10月1日~12月10日までにスキル内課金機能を公開スキル(新規スキル・既存スキルどちらでも可)に実装し、かつキャンペーンにお申し込みをいただいた方には、Echo Show 5をもれなくプレゼントします。複数スキルが該当した場合は、その数分のEcho Show 5をプレゼント(最大1開発者につき10台まで)!」

developer.amazon.com

というものでした。「お〜、なんと太っ腹。」と感じた私は、これはスキル内課金を勉強して、Echo Show 5も貰えるのなら「一石二鳥」と思い、既存の公開済みスキルにスキル内課金機能を組み込み公開申請することにしました。

スキル内課金の概要と設計

スキル内課金には「買い切り型」「サブスクリプション型」「消費型」の3種類が存在します。

  • 買い切り型: 買い切り型は、制限されているスキル内の機能やコンテンツにアクセスできるようにします。買い切り型には有効期限がありません。

  • サブスクリプション型: 一定期間プレミアムコンテンツまたは機能にアクセスできるようにします。サブスクリプションをキャンセルするまで、繰り返し課金できます。

  • 消費型: 何度も課金、消費できるコンテンツや機能です。たとえば、ゲームのヒント、ゲーム内通貨、または追加ライフなどです。

ということです。作成前の設計で、どのスキル内課金を採用するか考えた際、「買い切り型」と「サブスクリプション型」はキャンセル処理を作成しなければならない。購入しているユーザーがいる限り、こちらの都合でスキルのサービスを打ち切ることができないし、スキルを公開し続けている限りは、スキルのメンテナンスも行っていかないといけない。それって面倒だな。と考えた私は「消費型」のスキル内課金を作成することにしました。

支払設定と納税情報

スキル内課金を作成して公開した場合、そのスキルをユーザーが使用してスキル内課金の支払いに応じると、作成者には当然収益が発生いたします。

スキル内課金を作成する場合は、スキル内課金を作成する前に、まず「支払い設定」と「納税情報」の提出が必要となってきます。

「支払い設定」と「納税情報」は、Alexa Developer Consoleの「支払い」から設定することができます。

f:id:flect170:20200130113341p:plain

支払い設定に進むと、2段階認証が求められます。

f:id:flect170:20200130114903p:plain

指示通りに、電話番号と入力し「ワンタイムパスワードを送信」を押すと、「支払い情報」入力画面が表示されますので、お手持ちの銀行口座情報を入力します。

f:id:flect170:20200130130906p:plain

入力が終わったら保存を押して、次に「税に関する情報」タブを押します。

f:id:flect170:20200130132345p:plain
スクリーンショットは ステータス:完了 となっていますが、最初訪れたときは、 ステータス:未登録 です。

「ロイヤリティ収入の納税者確認インタビュー」と「サービス収入の納税者確認インタビュー」の2つがありますが、スキル内課金の納税情報は「ロイヤリティ収入の納税者確認インタビュー」の承認だけで大丈夫です。

「ロイヤリティ収入の納税者確認インタビュー」入力画面です。

f:id:flect170:20200130140017p:plain

名前住所等を記入します。「私は米国以外のTINを持っています」は「税制上の居住国から発行を受けたされた納税者IDを指定」と書いてあるので、恐らく日本であれば「マイナンバー」がそれに該当すると思います。

マイナンバー」を所有していない場合は、「TINが指定されていない場合、米国源泉所得に対する法定源泉税率(30%)の減免措置は適用されません。」と警告されます。マイナンバーを登録することをお勧めします。

そして、必要事項を全て記入したら、オンライン上で署名して送信します。記入事項が全て正しければ、後日「ロイヤリティ収入の納税者確認インタビュー」の ステータス:完了 に変わるはずです。

(注記: 筆者は米国Social Security Numberを持っているので、即座に ステータス:完了 に変わりました。日本国のマイナンバーを登録した場合については、今回は確認しておりません。)

スキルの作成

「支払設定」と「納税情報」の登録が終わったら、スキルの作成に取り掛かります。

スキルの作成に関しては、

Alexaスキルのデザイン・開発・公開 - フレクトのクラウドblog re:newal

に詳しく、記載しておりますので、そちらのご確認よろしくお願いします。

スキル内課金の実装

今回は、スキル内課金を既存のスキルに組み込むので、スキル内にスキル内商品を登録しなければなりません。なぜ、商品と呼ばれているのか?1つのスキルに複数のスキル内課金を登録でき、ユーザーはお金を支払って購入するからです。

スキルの作成画面から「スキル内商品」を選択します。

f:id:flect170:20200130143402p:plain

画面右上の「スキル内商品の作成」を押します。

f:id:flect170:20200130143931p:plain

「新しいスキル内商品を作成」画面で「スキル内商品名」を入力し「スキル内商品の種類を選択」で今回は「消費型」を選択します。入力が終わったら再度、画面右上の「スキル内商品の作成」を押します。

f:id:flect170:20200130144155p:plain

スキル内商品画面です。商品IDは自動的に割り振られています。商品IDはコードでの開発の際に必要になってきます。

サポートされている言語を「日本語」を選択し「編集」を押します。

f:id:flect170:20200130172104p:plain

表示名は既に入力済みなので、それ以外を全て入力。アイコン画像をドラッグ&ドロップで登録後、右上の「保存」ボタンを押します。

f:id:flect170:20200130155455p:plain

「価格設定と購入可能状況」は、日本語スキルなので、 Amazon.co.jp を選択し、価格を日本円で設定します。今回は「99 ¥ JPY」と最安値を設定しています。99円より安い価格設定はできません。

「テスト」購入する際のテスト手順をここに記載します。全て入力が完了したら、右上の「保存」ボタンを押します。

f:id:flect170:20200130172346p:plain

スキル内商品画面に戻ると、先ほど作成した商品が「リンク可能な商品」に登録されており、商品右端のアクションの「有効化」をクリックします。

すると画面のようになり「リンクした商品」に作成した商品が一覧として表示されます。有効化しておかないとコードから呼び出すことができません。

f:id:flect170:20200130161417p:plain

開発者コンソールでスキルにスキル商品を組み込む

スキル商品を購入してもらうため、購入フローに移動するためのインテントを追加する必要があります。

今回追加したカスタムインテントは、購入用のインテントと返金用のインテントです。

購入しますか?の質問に対して「はい」「いいえ」とユーザーが言うと予想されるので、ビルドインインテントである「AMAZON.YesIntent」と「AMAZON.NoIntent」を追加します。

f:id:flect170:20200130164141p:plain

AMAZON.YesIntent」「AMAZON.NoIntent」には「はい」「いいえ」以外に「そうです」「いいよ」「そうじゃない」のような一般的な肯定語、否定語が含まれており、別途カスタムインテントを作成する必要がないので便利です。

標準ビルトインインテント | Alexa Skills Kit

AWS Lambdaコードにスキル商品を組み込む

スキル作成時に「Alexa-hostedスキル」として作成すると、開発者コンソールの「コードエディタ」で、AWS Lambdaコードを編集、デプロイできます。

しかし、Persistent Attributes(永続属性)を保存するのにAmazon DynamoDBを使用するなど、手の込んだことをする場合は「ユーザー定義のプロビジョニング」でスキルを作成することをお勧めします。

詳しいAWS Lambdaコードの実装に関しては、

Alexaスキルのデザイン・開発・公開 - フレクトのクラウドblog re:newal

に詳しく、記載しておりますので、そちらのご確認よろしくお願いします。

AWS Lambdaコードに購入リクエストハンドラーを追加します。下記コードでは「購入しますか?」の質問に対し、ユーザーが「はい」と応答した場合のコードです。

f:id:flect170:20200203084532p:plain
購入リクエストハンドラー

SendRequestDirectiveのnameに "Buy" を指定します。

payloadのInSkillProductにスキル商品であるproductIDを渡します。これにより、購入フローが呼び出され、購入処理に入ります。

tokenは必須ですが、値は任意で何でも構いませんが、推測されにくいものにしましょう。

スキル開発者は購入リクエストを呼び出すだけで、特に購入処理を作成する必要がありません。

次は、AWS Lambdaコードに購入レスポンスハンドラーを追加します。下記コードでは、購入レスポンスハンドラーから購入処理結果を取得しています。

f:id:flect170:20200201100123p:plain
購入レスポンスハンドラー

まず、購入処理が正常に行われたか確認します。確認方法は、request.status.code == "200" であることを確認します。"200" でない場合は「購入に失敗しました」というメッセージを表示するようにしています。

次に、request.payload.get("purchaseResult") が ACCEPTED.value であるか ALREADY_PURCHASED.value であるかを確認しています。購入処理が受理された、またはもう既に購入済みである場合、サービスを提供しています。それ以外の場合は、購入処理が却下されたということで、スキルの終了処理を行っています。

次は、AWS Lambdaコードに返金リクエストハンドラーを追加します。下記コードではユーザーが「返金して」の発話に対し、スキルが返金リクエストを行います。

f:id:flect170:20200203084540p:plain
返金リクエストハンドラー

SendRequestDirectiveのnameに "Cancel" を指定します。

payloadのInSkillProductにスキル商品であるproductIDを渡します。これにより、返金フローが呼び出され、返金処理に入ります。

tokenは必須ですが、値は任意で何でも構いませんが、推測されにくいものにしましょう。

スキル開発者は返金リクエストを呼び出すだけで、特に返金処理を作成する必要がありません。

最後に、AWS Lambdaコードに返金レスポンスハンドラーを追加します。下記コードでは、返金レスポンスハンドラーから返金処理結果を取得しています。

f:id:flect170:20200203084547p:plain
返金レスポンスハンドラー

購入処理と同様、返金処理が正常に行われたか確認します。確認方法は、request.status.code == "200" であることを確認します。"200" でない場合は「キャンセルリクエスト処理中にエラーが発生しました。」というメッセージを表示するようにしています。

返金処理が正常に処理された場合、返金レスポンスのpayloadから返金処理が正しく行われたか確認し、その後の処理を割り振っています。

購入リクエスト、返金リクエストを追加した際の注意点

スキル開発で、1つ前の会話を記録させるためにSession Attributes(セッション属性)を使用して開発している場合、購入処理や返金処理に移動した際、一旦それまでの会話のセッションは切断されてしまいます。購入処理や返金処理が終了し、レスポンスが返ってきた時には、新たなセッションが作成されています。購入処理や返金処理の前の会話を保持しておきたい場合は、Persistent Attributes(永続属性)に変更してAmazon DynamoDBに会話内容を保存するようにしましょう。

いよいよ、公開申請

スキルを作成し、AWS Lambdaの実装も終わりましたら、いよいよ公開申請です。

スキルの公開申請に関して、詳しくは

Alexaスキルのデザイン・開発・公開 - フレクトのクラウドblog re:newal

をご覧ください。スキル内課金を含むスキルを公開申請するときは、いくつか異なる点があります。

まず、Alexa Developer Console画面の、公開 > スキルのプレビュー > プライバシーとコンプライアンス で「このスキルを使って何かを購入をしたり、実際にお金を支払うことができますか? *」の質問に対し、

「はい」を選択しなければなりません。

f:id:flect170:20200131090857p:plain

あとは、無料スキル公開申請と同じですが、最初に説明した「支払設定」と「納税情報」、先ほど説明した「プライバシーとコンプライアンス」に不備があると、認証 > 検証 でエラーメッセージが表示されますので気を付けてください。

認証 > 検証 も無事に成功しましたら、いよいよ、申請です。申請画面で新たに追加された選択項目についてご説明いたします。

f:id:flect170:20200131091303p:plain

以前は「公開の詳細設定」と言う項目がありませんでした。今までは認定されると即公開となっていましたが「公開の詳細設定」で「認定と公開」か「認定のみ」を選べるようになりました。

新たに設けられた「認定のみ」の使いどころは、例えば、○月×日の夜中0時からスキルを公開して、先着10名様にスキル内で使用できるスペシャルアイテムをプレゼントみたいな使い方が可能です。

スキルの認定作業は昼間しか行われておらず、今までは、いつ公開されるかは認定されるまではわかりませんでした。「認定のみ」が選択できるようになり、公開開始日時をこちらでコントロールできるのは、非常に有り難い機能です。

「公開の詳細設定」を選択したら右上の「はい、審査を申請します」ボタンを押します。審査は大抵は翌営業日に行われ、問題なければ審査日と同じ日に認定を受けることができます。

f:id:flect170:20200206165952p:plain
公開承認を受けると開発者宛に上記のようなemailが届きます。

Alexaスキルの認定に関するフィードバック

ここでは「認定に関するフィードバック」について、スキル内課金特有のフィードバックを、具体例を交えながら説明していきます。

多数のフィードバックがあり長くなりますが、参考になると思いますので書かせていただきます。

その1

フィードバック:スキル内課金機能を提供しているスキルは、スキルコンテンツの一部を無料で提供する、もしくはスキルの無料トライアルのバージョンを提供する必要があります。スキル内課金についての詳細はこちらを参照してください。

商品、コンテンツ、サービスを購入できるスキルの要件 | Alexa Skills Kit

原因:作成したスキルが、スキル呼び出し後、スキル商品を購入しないとサービスを利用できないスキル構成になっていました。

対処方法:スキルを1日3回までは無料で利用できるように変更し、4回目からスキル商品の購入を促すように変更しました。

その2

フィードバック:スキル内課金商品のアップセル中に金額情報の提示はできません。スキルの商品購入プロンプトと同様の内容を繰り返さないよう、適宜削除、及び変更してください。

スキルガイドラインでは直接説明されていませんが、以下の文脈から必要ということなのでしょう。

スキル内課金の優れたカスタマーエクスペリエンスのデザイン | Alexa Skills Kit

原因:金額は購入フロー後、Alexa側で提示するので、スキル側では金額を表示しないでください。ということです。

対処方法:購入リクエストから購入フローを呼び出す際に表示していたメッセージから金額を全て削除しました。

その3

フィードバック:スキル内課金商品のアップセル中には、スキルは消費型の課金商品について、明確な数量や時間等の情報を提供する必要があります。

スキル内課金の優れたカスタマーエクスペリエンスのデザイン | Alexa Skills Kit

原因:消費型の課金商品を作成したため、まとめ買いができたりするので、数量等の情報を提供してください。と指摘を受けました。消費型故の指摘内容です。

対処方法:今更、買い切り型やサブスクリプション型に変更するのは面倒だったので、1日4回目からでないと購入リクエストできない。購入後直ちにサービスが実施されスキル商品の在庫がいつも0である状態を説明し、数量情報を提示する義務は無いと説明し、再申請を行いました。

その4

フィードバック:申請いただいたスキルはユーザーに対し、直接スキル内課金商品を購入する方法を提供していません。

スキル内課金の優れたカスタマーエクスペリエンスのデザイン | Alexa Skills Kit

原因:スキル内課金商品の購入方法を提示していませんでした。

対処方法:スキル内課金商品購入ヘルプインテントを作成し、ユーザーが購入ヘルプインテントを呼び出した際に「1日4回以上ご利用になった場合のみ、購入することができます。」というメッセージを追加しました。

その5

フィードバック:申請いただいたスキルはユーザーに対し、購入したスキル内課金商品の返金やキャンセルについての情報を提供していません。

スキルコードにISPのサポートを追加する | Alexa Skills Kit

原因:スキル内課金は消費型であり返金処理は必要ないと考えていたが、返金情報を提供してください。と指摘されました。

対処方法:このスキル内課金商品は常に在庫を抱えない状態になっているので、返金情報を提供する義務はありません。と再申請を行ったが「例え在庫が常に存在しない状態のスキルであっても、返金処理を提供する義務はあり、その情報を提供していないスキルを公開認定することはできません。」と言われました。渋々、返金リクエスインテントを作成し、返金情報を提供するメッセージを追加しました。

反省点:常に在庫が発生しない状況であれば、返金処理を作る必要はないと考えていましたが、甘かったです。初動態勢、スキル内課金の設計をミスしてしまいました。

その6

フィードバック:言い回しの異なるサンプル発話が不足しています。スキルを確実に起動させ、多くのユーザーのリクエストに対応するためには、サンプル発話を充実させる必要があります。今回ご提示いただいたサンプル発話のみでは、スキルが確実に起動しない可能性があります。以下のようなサンプル発話を追加して、再度ご申請ください。

サンプル発話とカスタムスロットタイプの値を作成する際のベストプラクティス | Alexa Skills Kit

原因:スキル内課金「しりとり待った」を購入しますか?の質問に対し、AMAZON.YesIntentとAMAZON.NoIntentしか用意していなかったので、ユーザーが「購入します」「購入する」「購入しません」「購入しない」と言った場合、購入リクエストやキャンセルリクエストが呼ばれなかった。

対処方法:AMAZON.YesIntentに「購入します」「購入する」とAMAZON.NoIntentに「購入しません」「購入しない」を追加し、ユーザーが「購入します」や「購入しません」と言った場合でも、購入リクエストやキャンセルリクエストを呼び出されるように変更しました。

補足:ビルドインインテントにカスタムサンプルフレーズを追加できるので便利です。

その7

フィードバック:申請いただいたスキルは、一度スキルを終了し、再度起動した際に、すでに購入されているスキル内課金商品の使用をユーザーに提供していません。

スキル内課金の優れたカスタマーエクスペリエンスのデザイン | Alexa Skills Kit

原因:サービスを提供した後、スキル内商品は消費されているという説明がありませんでした。

対処方法:その4 の追加で、スキル内課金商品購入ヘルプインテントが呼び出された際のメッセージに「この商品は消費型であり1回利用すると、この商品は消費され無くなります。」というメッセージを追加しました。

その8

フィードバック:スキル審査の結果、下記のスキル内課金商品についてアップセルが提供されていないと判断されました。現在、スキルから提示される情報だけでは、ユーザーがどのようにスキル内課金商品を購入できるかが不明瞭です。購入プロセスへ誘導するためのフレーズをスキルからのプロンプトにご提示ください。

スキル内課金の優れたカスタマーエクスペリエンスのデザイン | Alexa Skills Kit

原因:その2 とその3 に対応しましたが、その結果として、スキル内課金商品説明だけでなく、購入プロセスに誘導するフレーズをメッセージとして提示してくださいと指摘されました。

対処方法:購入リクエストハンドラーを呼び出すためのフレーズを、スキル内課金商品購入ヘルプインテントが呼び出された際のメッセージに追加しました。

その9

フィードバック:次のインテント名を使用してスキルを起動した際、スキルの応答にリクエストとの関連性がありません。

原因:しりとりスキルで、ユーザーがしりとりの途中で「返金」と発話した際に「んで終わる言葉を言いましたね。あなたの負けです。しりとりを終了します。」としりとりを終了してしまい、返金処理に応じなかったのが原因でした。

対処方法:ユーザーが「返金」と言った場合に、返金リクエストハンドラーを呼び出し、返金処理に応じるように変更しました。

その10

フィードバック:スキルのホームカードにスキル内課金商品の金額を含めないようにしてください。

原因:その2 と類似却下理由。金額は返金フロー後、Alexa側で提示するので、スキル側では金額を表示しないでください。ということです。

対処方法:返金リクエストから返金フローを呼び出す際に表示していたメッセージから金額を全て削除しました。

その11

フィードバック:スキル内課金商品のアップセル中に、そのスキル内課金商品をスキルでどのように使用できるかの情報を提供する必要があります。「1回だけしりとりを待ったできます。」という情報だけでは、1回負けた後も継続することが可能ということがユーザーにわからない可能性があります。課金商品の機能がアップセルで明確にわかるよう修正してください。

スキル内課金の優れたカスタマーエクスペリエンスのデザイン | Alexa Skills Kit

原因:「しりとりを待った、を購入すると、1回だけしりとりを待ったできます。」という説明が不適切と判断されました。

対処方法:「しりとりを待った、を購入すると、しりとりに負けた時、1回だけしりとりをやり直すことができます。」に変更しました。

その12

フィードバック:スキルは、スキル内課金商品の購入が正常に完了したにも関わらず、その商品の機能をユーザーに提供していません。

スキル内課金の優れたカスタマーエクスペリエンスのデザイン | Alexa Skills Kit

原因:ユーザーがスキル内課金「しりとり待った」を購入後、即しりとりを終了し、再度しりとりスキルを起動し「ん」で終わる言葉でわざと負けた場合に、購入したはずの「しりとり待った」を使用できませんでした。

対処方法:スキル内課金商品の在庫状況を「AWS Lambdaコードにスキル商品を組み込む」で説明したPersistent Attributes(永続属性)を保存するようにAmazon DynamoDBを使用しました。

「Alexa-hostedスキル」で作成した場合、Alexa Developer ConsoleにhostされたAWS Lambdaを使用するため、自前で用意したAmazon DynamoDBへのアクセスは困難となります。

「ユーザー定義のプロビジョニング」でスキルを作成した場合、AWS LambdaもAmazon DynamoDBも同じユーザーであるためIAMロール設定一発で、Amazon DynamoDBへのアクセスが自由にできます。

Persistent Attributes(永続属性)を使用するスキルを作成する場合は、「ユーザー定義のプロビジョニング」でスキルを作成することをお勧めします。

その13

フィードバック:申請いただいたスキルは、ユーザーが購入した消費型の課金商品の使用可能な残量を示すオプションを提供していません。

スキル内課金の認定ガイド | Alexa Skills Kit

原因:その3 と類似却下理由。購入後、スキル側がサービスを提供して終了するスキルは問題無かったが、「しりとり」のように商品購入後、しりとり再開直後にユーザーの意思でスキルを終了できてしまう場合は、再開後、課金商品の残量を示す義務がありました。

対応方法:スキル内課金商品の在庫をAmazon DynamoDBに保存し、再開後、課金商品の残量をAmazon DynamoDBから取得しユーザーに提示するように変更しました。

その14

フィードバック:申請いただいたスキルは、アップセルメッセージが提供された後の取引のキャンセルが適切に処理されていません。

スキル内課金の優れたカスタマーエクスペリエンスのデザイン | Alexa Skills Kit

原因:ユーザーが課金商品を「購入する」と言い、スキルが「...同意して、購入しますか?」と確認した後、ユーザーが「いいえ」と言った場合に「そうですか、お役に立てず残念です。」とスキルを終了してしまった。

対応方法:スキルを終了する前に「購入はキャンセルされました。」というメッセージを追加しました。

その15

フィードバック:スキル内課金商品は、無料版のスキルに何らかの機能が追加される必要があります。スキル内で負けた際にもアップセル後に購入せずに単語を発話するとしりとりが続けられました。上記を修正、アップデートした上で再申請してください。

原因:ユーザーがしりとりに負けた後、スキルが課金商品を購入するか確認した際に「AMAZON.YesIntent」と「AMAZON.NoIntent」以外の言葉を話しかけた場合、しりとりを再開できてしまったのが問題でした。

対応方法:しりとりに負けた後、課金商品を購入するか確認中の時は「AMAZON.YesIntent」と「AMAZON.NoIntent」だけを受け付けるようにし、その他の言葉を話しかけられた場合は、再度「...同意して、購入しますか?」と確認するように変更しました。

その16

フィードバック:スキル審査の結果、下記のスキル内課金商品についてアップセルが提供されていないと判断されました。スキルを申請する際には、すべてのスキル内課金商品にアクセス出来るよう、開発者ポータル上のテストの手順でそちらの手順の記載をお願いします。アップセルを通さず、購入プロンプトが返ってきます。アップセルを追加してください。またその際には消費型の課金商品について、明確な数量等の情報を一緒に提供する必要があります。

スキル内課金の優れたカスタマーエクスペリエンスのデザイン | Alexa Skills Kit

原因:購入リクエスインテントが呼ばれたら直ぐに購入フローに移っていた。購入フローに移る前にその課金商品について説明しなければならなかった。

対応方法:購入リクエスインテントが発話された場合は、購入リクエストハンドラーを呼び出して購入フローに移動する前に、その課金商品についての説明を追加し、必要に応じて課金商品の在庫がある場合は、その残量をお知らせするようにしました。

その17

フィードバック:スキルは、ユーザーがアップセルに同意したにも関わらず、スキル内課金プロセスを正常に完了する事が出来ませんでした。スマートフォンのAlexaアプリや Alexa for PC ではスキル内商品を購入できません。ただ、ユーザーが購入済みのコンテンツを利用することは可能です。そのため、4回目以上使用の場合は、Echoデバイス側で商品の購入ができて、且つスマートフォン端末で購入済みの商品を使用できるようにする必要があります。ご確認後、修正をお願いします。

スキル内課金の優れたカスタマーエクスペリエンスのデザイン | Alexa Skills Kit

原因:「ここどこなの」というスキルを無料公開していた時は、位置情報が取得できるスマートフォンのAlexaアプリのみ利用可能にしていたが、Alexaアプリからはスキル内課金商品が購入できないため、1日4回以上利用することができなくなっていました。

解決方法:Echoデバイス側でも「ここどこなの」のスキル利用を有効にし、スキル内課金商品の購入のみ利用可能としました。購入したユーザー情報と課金商品の在庫数はAmazon DynamoDBに格納し、スマートフォンのAlexaアプリでは1日4回以上利用する場合は、購入したユーザー情報と課金商品の在庫数を確認後、購入済みの場合のみ、現在の位置情報から住所をお知らせするサービスを提供するように変更しました。

その18

フィードバック:Amazonにとって知的財産権の保護は非常に重要です。スキル内で使用されているコンテンツを販売する権利があることを確認できませんでした。販売する権利を持っていることを示す文書を提示してください。

原因:「年度別新入社員」というスキルで、年度別の新入社員のタイプを説明するスキルを作成しました。元ネタは「公益財団法人・日本生産性本部」の「新入社員意識調査・特徴とタイプ」を引用させていただいていました。

www.jpc-net.jp

以前同名のスキルを無料スキルとして公開していた時は「公益財団法人・日本生産性本部」より「我々が公開しているコンテンツに関して引用していただいて問題ございません。」とお墨付きをいただいていたが、有料スキルでの引用に関して、今回尋ねたところ「有料コンテンツでの引用は認めておりません。」との回答でした。

対応方法:前回スキルを公開した時は、あっさりコンテンツ利用を認めていただいたので、今回も認めていただけると思ったが、甘かったです。「年度別新入社員」のスキル内課金化を断念しました。

スキル内課金の組み込んだスキル一覧

  • サブリナの通訳

Amazon CAPTCHA

  • 全国の郵便番号検索

Amazon CAPTCHA

  • よく当たるタロット占い

Amazon CAPTCHA

https://www.amazon.co.jp/Flect-%E8%A5%BF%E6%9A%A6%E3%83%BB%E5%85%83%E5%8F%B7%E5%A4%89%E6%8F%9B/dp/B07PYQ3Z94/

  • 意地悪しりとり

https://www.amazon.co.jp/Flect-%E6%84%8F%E5%9C%B0%E6%82%AA%E3%81%97%E3%82%8A%E3%81%A8%E3%82%8A/dp/B0823JL3RK/

  • よく分かる全国の天気

Amazon CAPTCHA

  • ボー読み般若心経

https://www.amazon.co.jp/Flect-%E3%83%9C%E3%83%BC%E8%AA%AD%E3%81%BF%E8%88%AC%E8%8B%A5%E5%BF%83%E7%B5%8C/dp/B07PMNK53T/

  • 星座占い

Amazon CAPTCHA

  • 太陽系星座チェック

Amazon CAPTCHA

  • ここどこなの

https://www.amazon.co.jp/Flect-%E3%81%93%E3%81%93%E3%81%A9%E3%81%93%E3%81%AA%E3%81%AE/dp/B07Q5D55G8/

2020年1月27日(月)、アマゾンジャパン合同会社から、Echo Show 5が10個届きました。

f:id:flect170:20200131145509j:plain
アマゾンジャパン合同会社より荷物が届きました。

f:id:flect170:20200131145923j:plain
荷送人はAlexaスキル開発者キャンペーンです。

f:id:flect170:20200131145935j:plain
確かにEcho Show 5が10個入っていました。

f:id:flect170:20200131145950j:plain
勢い余って、Echo Show 5を10個、ピラミッド状に並べてみました。

スキル内課金を作成した感想

今回、Alexaスキル開発者キャンペーンが引き金で、Echo Show 5欲しさに、スキル内課金の勉強がてら既存の無料スキルにスキル内課金を組み込み、公開申請しました。

無料スキル公開申請同様、スキル内課金の公開申請ならではの、フィードバック(申請却下)をたくさん頂きました。

今回もサンドバック状態で滅多打ちにされましたが、雨にも負けず、風にも負けず、めでたく10個のスキル内課金が組み込まれたスキルを無事に公開することができました。

このブログを最後まで、読んでいただき、ありがとうございます。AMAZON Alexaに限らず、音声アシストを作成依頼したいところをお探しの場合は、是非弊社までご連絡ください。