VoiceLabsでAlexa Skillの利用状況を可視化する


Webサービスやネイティブアプリを開発するとGoogle Analyticsなど使ってカスタマの利用状況を見ると思いますが、今回はVoiceLabsのVoiceInsightsを使ってSkillの可視化をする方法について紹介したいと思います。

アカウント作成

Get Startedのボタンから、アカウント登録の画面に進みます。

必要な情報を入力して次に進みます。

アカウントの作成がされると、さっそくアプリの登録画面が表示されるので、必要な情報を登録します。
今回はSkillを登録するので Platform にはAlexaを指定します。

アプリが登録されると、SDKの案内がある画面が表示されます。

SDKは以下の言語向けに用意されています。

  • Node.js
  • Java
  • Python
  • Ruby

Skillへの導入

SDKを含める必要があるのですが、今回はLmabdaのPythonを利用した時について説明します。

requirements.txtファイルに voicelabs を追加して以下のコマンドでSDKを取り込みます

cd /your_project_src_path
pip install -r requirements.txt -t $(pwd)

skillのソースでSDKをインポートします。トークンはLambdaの環境変数を介して渡します

from voicelabs import VoiceInsights

appToken = os.environ["APP_TOKEN"]
vi = VoiceInsights()

Lambdaのエントリポイントで初期化します

def lambda_handler(event, context):
    vi.initialize(appToken, event['session'])

トラッキングするポイントにリクエストとレスポンスの情報を含めます

vi.track("インテント名", request, response)

これで最低限の情報を収集できるようになります。
zipで全部固めて、Lambdaファンクションに登録します。(データが反映されるまで少し時間がかかりました)

注意
Smart Home SkillなどOAuthでアカウント連携をしているSkillの場合、requestオブジェクトにはSkillを利用したユーザのトークンが含まれているため、その情報を含んだまま渡すのはセキュリティー的によろしくないです。
トークンのようなやばい情報は消した上でSDKに渡すようにしましょう。

可視化されたデータ

アクセス状況


ユーザー別のアクセス状況

遷移状況

まとめ

SDKを導入してコードを少し追加するだけで、自分の作ったSkillがどんな感じで利用できているかが簡単に見ることが出来ます。
遷移の状態を見ればどこでユーザが困っているかとか、使われていないインテントの状況がわかるので、Skillの改善に繋げられます。