Building Alexa skills is really fun and there's a real sense of satisfaction just seeing your skill stats grow and trying to get more 5-star reviews.  But, let's face it, it takes a lot of time and money to create, monitor, and maintain a high quality Alexa skill.  If your skill is popular enough to earn Amazon developer rewards, then maybe you can earn enough to justify the costs, but most people will have a hard time getting to that level.  Until now, there hasn't been any other way to monetize your skills.

Voice Apps now supports In-skill Purchasing!  This new feature allows you to charge your customers either a one-time fee or a monthly or yearly subscription to access premium content in your skill!

In this article, I'm going to walk you through how to add monetization to your Alexa skills.


The first thing you need to do is to create a skill using Voice Apps and deploy it to your Amazon developer account.  If you don't know how to do this, check out our tutorial series on "Building a skill from a template".  This doesn't have to be a completed skill, it just needs to be a functional skill so we can create and attach in-skill products to it.

After your skill is deployed, you can follow this guide from Amazon to create your in-skill products.

How Does It Work?

Voice Apps does most of the work for you and makes it really easy to implement in-skill purchases in your skills.

Here are the general steps your skill needs to take to implement in-skill purchasing:

Check to see if the current user is authorized for the premium content.

To do this, we've added a new function called "Verify In-skill Product".

You enter the Product ID of the in-skill product you want to verify and a variable where Voice Apps should store the result.  Voice Apps will check to see if the current user is authorized for the product you specify and will assign 0 (false) or 1 (true) to the variable you specify.  

Give access to your premium content.

Now you can use the variable created above to either provide access to your premium content.

For example, if the variable you set is named "isPremium", then you can use the "when" clauses of Voice Apps to give different responses based on the value of "isPremium".  You can have one response for "when isPremium = 0" and another response for "when isPremium = 1".  

Allow users to sign up for your premium content

Users will need to be able to purchase access to your content.  To do this, we've added an new "Next Action" called "Buy In-skill Product".

You can create an intent called "Membership" which is activated when the user says "membership" or "sign up for membership" or whatever is appropriate for your skill.  The response can give the users the details about your premium content and then on the Next Actions tab you'll select "Buy In-skill Product" and enter the Product ID of your in-skill product.   This will pass the users to the Alexa purchasing system where they'll hear prices and be able to purchase your product using their Amazon credit cards on file.

Allow users to cancel their memberships

You hope your users will continue to use your premium content forever, but some will want to cancel their memberships and you need to give them a way to do this.  We've made it really easy by adding a new "Next Action" called "Cancel In-skill Product". 

You can create an intent called "Cancel Membership" which is activated when the user says "cancel membership" or "cancel subscription".  You can give a response if you'd like and then pass them off to the Alexa cancel membership flow by selecting "Cancel In-skill Product" on the "Next Actions" tab and entering the Product ID of the appropriate in-skill product.


Monetizing your skill is an advanced topic, but with Voice Apps it's really easy.  Drop us a note if you have any questions about how to add these monetization features.


Did this answer your question?