見出し画像

スキル審査でリジェクトされる例

スキル審査でリジェクト(却下)された例を情報共有します。

Alexaの標準機能のようにとらえられるスキル説明である

 スキルの機能を説明する場合「アレクサがお答えます」などの様な誤解を招く表現は許されません。

呼び出し名が一般的なため、ユーザーがスキルを呼び出しているということに気が付かない

 「ドラムロール」というスキルを作り「アレクサ、ドラムロールを鳴らして」という起動フレーズを申請しましたが却下されました。アレクサが標準で「ドラムロール」機能を持っており、それとバッティングしたためのリジェクトです。また「ドラムロールを鳴らして」という言い方がスキル呼出しとは認められないということでした。

言い回しの異なるサンプル発話が不足している

 ユーザーの回答を想像して、いくつもの会話パターンを登録しておく必要があります。たとえばアレクサの「何回やりますか?」という質問に対するユーザーの返答をいくつも考えます。最低でも5パターンぐらいは設定しておきましょう。

  「{count} 回やります」
  「{count} 回」
  「{count} 回」
  「{count} 回やる」
  「{count} 回やりたい」
  「{count} 回にしてください」
  「{count} 回にして」
  「{count} 」
  「{count} 回やらせて」
  「{count} 回にしよう」

ユーザーが「ストップ」と言った時に、スキルが適切に終了または応答しない

 アレクサがユーザーの指示や回答を待っている時に、ユーザーが中断しようとしたら、それに従うような会話フローを作ります。たとえば
  アレクサ「さて答えはいくつでしょう?」
  ユーザー「ストップ」
  アレクサ「中断します。さようなら〜」

複数のインテントに同一のサンプル発話が含まれている

 よくあるのはAMAZONのデフォルトインテントと同じ発話を自作のインテントにも設定している場合です。「はい」「いいえ」「やめる」などはAMAZON.YesIntentやAMAZON.NoIntentに既に定義されていますので、これらのインテントでハンドリングしなければなりません。それ以外の表現を追加したい場合はAMAZONデフォルトと自作インテントの両方でハンドリングして同一の処理を走らせます。たとえば「いいえ」「やめる」「ギブアップ」「もういいや」で同じ処理をさせる場合には、
  「いいえ」「やめる」・・・AMAZON.NoIntentでハンドリング
  「ギブアップ」「もういいや」・・・myNoIntent(自作)でハンドリング
という具合になります。

// 「ギブアップ」「もういいや」のハンドリング
   'myNoIntent': function () {
	this.emit(':tell', 'また、お逢いしましょう');
    },
// 「いいえ」「やめる」のハンドリング
   'AMAZON.NoIntent': function () {
        this.emitWithState('myNoIntent'); // myNoIntentの処理に飛ばす
   },


サンプルフレーズは文法ミスがない状態であること


 サンプルフレーズは全て全角で書いたほうが良いようです。また絵文字や記号も避けましょう。
  正:「アレクサ、○○を起動して」
  誤:「アレクサ,○○を起動して」(句読点が半角のコンマになっている)

スキルの応答にリクエストとの関連性がなく、ユーザーからの問い掛けにトンチンカンな答えをしている

 会話の設計やスロットの設定がおかしいためにユーザーの発話がフォローしきれずに Unhandled関数に飛び込んでしまうなど、会話の繋がりがおかしくなる事があります。
 アレクサ:「何回やりますか?」
 ユーザー:「5回くりかえして」 (←「5回」が聞き取れなかった)
 アレクサ:「よくわかりませんでした。リトライしますか?」

   'Unhandled': function () {
       const speechOutput = 'よくわかりませんでした。リトライしますか?';
       this.emit(':ask', speechOutput, speechOutput);
   },

ユーザーが「ヘルプ」と言った時、スキルの主要機能及び操作方法を説明していない


 説明が不明瞭または短すぎるとリジェクトされます。また説明文の後にはユーザーへの質問が必要で、その質問の返事によって処理を進めなければなりません。

'AMAZON.HelpIntent': function () {
    const speechOutput = HELP_MESSAGE + 'もう一度やりますか?';	// 質問で終える
    const reprompt = HELP_REPROMPT;
    this.emit(':ask', speechOutput, reprompt);			// :askでセッションを開いておく
},
'Unhandled': function () {
    this.emitWithState('AMAZON.HelpIntent');			// AMAZON.HelpIntentの処理に飛ばす
},

ユーザーとの会話が終わったにもかかわらずアレクサが回答待ちの状態になっている

アレクサの発言が問い掛けの形になっていないのに、アレクサがユーザーの返答を待っている状態はダメ。以下の例では:askで回答待ちにするのではなく、:tellで言い切ってセッションを終えるのが正しいです。

 'AMAZON.StopIntent': function () {
    this.emit(':ask', 'それでは、さようなら');	// 誤 :tellでセッションを終えるべき
 },


オープンソースやオープンデータ、フリー素材などの知的財産権に関する表示がなされていない

 クリエイティブ・コモンズ・ライセンスのCC BY「表示」など必要な表示をスキルの詳細情報に記述します。Echo Showなどのようなディスプレイ付きのAlexaデバイスの場合にはカードに書き込んでおくのもOK。

スキルの詳細説明に使用方法について十分に理解できる正確な情報が含まれていない


 スキルの詳細説明が短すぎるとリジェクトされます。

13歳未満の子供を対象としたスキルである

 詳細はこちらのページをどうぞ。


審査のガイドラインとなる情報はAmazon本家サイトで確認してください。


この記事が気に入ったらサポートをしてみませんか?