AlexaスキルのレポートデータをSMAPIから取れるようになりました。

地味に嬉しいアップデートとして、Alexaスキルのレポートデータを取得するAPIが公開されました。 準備 Login With Amazonでtokenを取得しておきましょう。 ASK CLIで取る方法(過去の記事から) […]

広告ここから
広告ここまで

目次

    地味に嬉しいアップデートとして、Alexaスキルのレポートデータを取得するAPIが公開されました。

    準備

    Login With Amazonでtokenを取得しておきましょう。

    ASK CLIで取る方法(過去の記事から)

    ASK CLIの設定を拾って来るという方法もあります。

    $ curl https://api.amazonalexa.com/v1/skills/{YOUR_SKILL_ID}/stages/live/accountLinkingClient \
    > -H "Authorization: $(cat ~/.ask/cli_config | jq .profiles.default.token.access_token -r)"

    APIをたたいてみる

    APIは「GET v1/skills/{YOUR_SKILL_ID}/metrics」です。早速呼びだしてみましょう。

    $ curl https://api.amazonalexa.com/v1/skills/{YOUR_SKILL_ID}/metrics \
     -H "Authorization: YOUR_ACCESS_TOKEN"
    
    {
      "message": "6 validation errors detected: Value null at 'period' failed to satisfy constraint: Member must not be null; Value null at 'stage' failed to satisfy constraint: Member must not be null; Value null at 'skillType' failed to satisfy constraint: Member must not be null; Value null at 'metric' failed to satisfy constraint: Member must not be null; Value null at 'startTime' failed to satisfy constraint: Member must not be null; Value null at 'endTime' failed to satisfy constraint: Member must not be null"
    }

    period / stage / skillType / metric / startTime / endTimeの6種類の引数が必須とのことです。

    $ curl "https://api.amazonalexa.com/v1/skills/{YOUR_SKILL_ID}/metrics?startTime=2019-10-07T10:45:00Z&endTime=2019-10-14T10:45:00Z&period=P1D&stage=live&skillType=custom&metric=totalSessions" \
     -H "Authorization: YOUR_ACCESS_TOKEN"
    
    {
      "metric": "totalSessions",
      "timestamps": [
        "2019-10-07T00:00:00Z",
        "2019-10-08T00:00:00Z",
        "2019-10-09T00:00:00Z",
        "2019-10-10T00:00:00Z",
        "2019-10-11T00:00:00Z",
        "2019-10-12T00:00:00Z",
        "2019-10-13T00:00:00Z",
        "2019-10-14T00:00:00Z"
      ],
      "values": [
        1,
        0,
        0,
        1,
        1,
        0,
        2,
        1
      ]
    }

    とれました。

    必須の引数をざっとみる

    period / stage / skillType / metric / startTime / endTimeの必須パラメータについてみてみましょう。

    period: レポートの集計期間を設定する

    許可されている値:SINGLE、PT15M、PT1H、P1D

    • SINGLE: 総合計
    • PT15M: 15分おき
    • PT1H: 1時間おき
    • P1D: 1日おき

    stage: スキルのステージ

    DEVELOPMENTまたはLIVEの二択です。が、ここは基本的にはLIVE固定になるでしょう。

    skillType: スキルの種類

    custom、smartHome、flashBriefingの3種類があります。

    作成しているスキルの種類を入れるようにしましょう。

    metric

    取得したいメトリクスを指定します。

    スキルの種類によって異なりますので、ドキュメントをみながら選びましょう。

    startTime / EndTime

    対象の期間を指定します。一週間以内である必要がありますので注意しましょう。

    ちなみに期間を超えている場合は、このようなエラーが表示されます。

    {
      "message": "Inner error: Requested time range exceeds maximum time duration 1 week."
    }

    なにが嬉しいのか

    SMAPIを自分で使うことはあまりないとは思います。が、おそらく(というか間違いなく)Alexaスキルを作るサービスはこのAPIを利用しています。

    ということは、Voiceflowなどのサービスで、公開したスキルのメトリクスを見れるようになるという可能性が今後出てきそうです。

    また、複数のスキルや複数のアカウントを使っている場合などにカスタムしたダッシュボードを自前で作れるというのも良い点です。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark