はじめに
ラッキーなことに、12月初旬に日本版Amazon Echoを購入することができました。
せっかくなので、早速をスキルつくって申請してみました!
実験的に結構無茶なものを申請したのですが、案の定、サクッとリジェクトされましたので、その理由を共有したいと思います。
(スキルの開発手順や申請手順については、他をあたって下さい)
つくったもの
Alexa端末所有されてる方はご存知かと思いますが、スキルはスマホのAlexaアプリと連携し、"カード"と呼ばれる補足情報をスマホアプリ上に表示することができます。
(Alexaに話しかけた内容が見えてしまうので、家族など複数人で使用する場合はご注意を。)
この性質を利用して、子どもがEchoにクリスマスプレゼントで何が欲しいか話しかけると、サンタさんのAlexaアプリにカードを表示するようなスキルを考えました。
(例)
「アレクサ、クリスマスプレゼントで仮面ライダーのベルトが欲しい」と発話すると、以下のカードをスマホアプリに表示。
参考)スキルの応答にカードを追加する
https://developer.amazon.com/ja/docs/custom-skills/include-a-card-in-your-skills-response.html
申請
開発者ポータルから申請すると、受け付けた旨の英文のメールが届きました。
審査結果は7営業日以内に連絡するとのこと。ドキドキ。
テスト開始
初期審査的なものが終わって、テストフェーズに入ったのこと。
5営業日以内にフィードバックがあるらしい。ふむふむ。
審査結果 〜リジェクト〜
数日かかるかと思って気長に構えてたのですが、単純なスキルだったためか、申請の翌日に結果が届きました。
結果はタイトル通りリジェクト。。。今度は丁寧な日本語のメールです。
以下、リジェクトされた理由の一部です。
呼び出し名が一般的すぎる
「クリスマスプレゼント」という呼び出し名にして、「クリスマスプレゼントで、○○が欲しい」のように、スキルであることを意識せずに使えることを狙ったのですが、それダメ〜でした。
スキルを使っていることに気づかないような呼び出し名はNGだそうです。
子供向けのAlexaスキルの禁止
13歳以下を対象にしてはいけないと、ポリシーに明記されています。(米国除く)
Alexaスキルのポリシーのテスト
https://developer.amazon.com/ja/docs/custom-skills/policy-testing-for-an-alexa-skill.html
申請時のチェックシートでは子どもを対象にしていない、として申請しましたが、Alexaからの返答に子ども向けを示唆する文言が含まれていたため、NGとなりました。
しっかりテストされてますね。
自己申告で対象外にしておけば大丈夫、というものではないようです。
スロットの内容をユーザーが発話する可能性が低い
あらゆる商品名を網羅するのは現実的ではないので、フリーワードをスロットとして認識するようにしたかったのですが、フリーワード用のAMAZON.LITERAL
という型が英語のみ対応とのこと。
(日本語での良いやり方ご存じの方はご教示ください)
Custom Interaction Model Reference (英語ページ参照) https://developer.amazon.com/docs/custom-skills/custom-interaction-model-reference.html
とりあえず、数行のランダムな文字列をスロット値として登録したのですが、ユーザーが発話するとは思えないとのことで、NGでした。
サンプル発話含め、開発者ポータルで定義した内容もチェックされているようです。
補足) 2017/12/22 追記
Alexa Skill Kitのドキュメントをよく読むと、こんな文書がありました。
もしかすると、数件の正しい商品名を列挙しておけば大丈夫だったのかもしれません。(未検証)
・スキルには合計で50,000個のカスタムスロット値を指定できます。これは対話モデルで使用するすべてのカスタムスロットの値の合計数です。この制限内に収めるためにスロット値の数を減らす必要がある場合は、使われる可能性が高い値を優先してください。
・カスタム値のリストにスキルで予測される必ずしもすべての値を含めない場合は、代表的な語数の代表的なカスタム値のセットを提供します。たとえば、1~4語の値が想定される場合、リストの値も1~4語のものを使用します。ただし、語数のバランスは使われる頻度に応じて変えるようにしてください。4語の値が10%しかない場合は、リスト内に含める4語の値も10%までにします。
引用元) カスタムスロットタイプの値に関する推奨事項
https://developer.amazon.com/ja/docs/custom-skills/best-practices-for-sample-utterances-and-custom-slot-type-values.html#h3_custom_slot_values
エラーハンドリングが不十分
ユーザーが「ストップ」や「キャンセル」と言って停止した際、適切なメッセージを返さないといけません。漏れなく実装しましょう。
おわりに
他にもストア掲載文言に関する指摘などもあり、しっかり審査されている印象です。
また、フィードバックには、どう発話したら問題があったかが明記されていたり、修正方法を教えていただいたりと、フォローも手厚いと感じました。
いずれの指摘も、下記チェックリストにしっかり従って作れば引っかからないものが多いので、企画段階からしっかり確認しておくことをオススメします。
参考
Amazonアプリストア申請前チェックリスト
https://developer.amazon.com/ja/docs/app-submission/presubmission-checklist.html