Warning
This is a beta release of the ASK Metrics v2 API. The API and documentation are subject to change.
ASK Metrics v2 allows you to fetch metrics from your Alexa skill. You can use these metrics to build your own custom analytics dashboards or to integrate with your existing analytics systems.
ASK Api reference: https://developer.amazon.com/en-US/docs/alexa/smapi/metrics-api.html
npm install --save ask-metrics-v2
For refresh token, see ASK Smapi SDK Documentation
// test.ts
import {
RefreshTokenConfig,
createClient,
AggregationPeriod,
Metrics,
MetricsV2RequestOptions,
ListMetricsV2RequestOptions,
} from "ask-metrics-v2";
// Skill ID to fetch metrics for
const skillId = 'amzn1.ask.skill.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';
// Refresh Token to authenticate with
// See ASK Smapi SDK documentation for more information
const refreshTokenConfig: RefreshTokenConfig = {
clientId
clientSecter,
refreshToken,
};
void main() {
// Setup client
const client = createClient(refreshTokenConfig);
// Create request options
const requestListOptions: ListMetricsV2RequestOptions = {
metricNamespace: Metrics.Custom.namespace,
};
// Get list metrics
const listMetrics = await client.getListMetricsV2(requestListOptions);
// Print list metrics
console.log('List Metrics:');
console.log(JSON.stringify(listMetrics, null, 2));
// Create request options
const requestOptions: MetricsV2RequestOptions = {
startTime: Date.now()-1000*60*60*24*30, // 30 days before
endTime: Date.now(),
metricQueries: [
{
id: "m2",
name: Metrics.Custom.CUSTOMERS,
metricNamespace: Metrics.Custom.namespace,
aggregationPeriod: AggregationPeriod.BY_DAY,
}
]
};
// Get metrics
const metrics = await client.getSkillMetricsV2(skillId, requestOptions);
// Print metrics
console.log("Metrics:");
console.log(JSON.stringify(metrics, null, 2));
}
main();