Apps are comprised of a few simple components:
- Actions on Google developer project
- Tracks and manages your app through the approval process and lets you administer your actions. You also have access to app analytics and the Actions Simulator, which lets you test your apps without a physical device.
- Action package
- Defines metadata about the actions in your app, such as how the Google Assistant can invoke your actions and how the Google Assistant should call your fulfillment service.
- Defines the actual functionality of your app and is hosted as an HTTP web service. When users interact with an action, fulfillment receives requests from users and returns responses back to them with the Google Assistant brokering the communication. The communication format is defined by the Actions Protocol, a JSON-based definition of how your actions can communicate with the Google Assistant.
Choosing a development option
To build your apps, we provide a few options:
Building apps with templates lets you utilize a standard user experience that's defined by the template. You can customize portions of the app such as certain responses or configuration settings, but most of the app's conversation and fulfillment is handled by the template, letting you build apps without writing a single line of code!
We highly recommend using one of these templates if there is one available to fit your needs. This allows you to build apps quickly without worrying about designing conversations, which is one of the harder parts of development.
Use Dialogflow for most use cases where you need to design and build your own conversational experience. Dialogflow wraps the functionality of the Actions SDK into an easy-to-use web IDE that has conveniences such as generating and deploys action packages for you. It also includes an NLU (natural language understanding) engine that parses natural, human language, so you don't have to.
- Actions SDK
Use this option if you have simple actions that have very short conversations with limited user input variability. These type of actions typically don't require robust language understanding and typically accomplish one quick use case.
In addition, if you already have an NLU that you want to use and just want to receive raw text and pass it to your own NLU, you will also need to use the Actions SDK.
Finally, the Actions SDK doesn't provide the conveniences of an IDE, so you have to manually create action packages with a text editor and deploy them to your Google Developer project with a command-line utility.
Testing your actions
Use real devices
During development and before you deploy your apps, you should always test on real devices such as a Google Home or Google Pixel. This lets you experience your apps the way users will and gives you a better idea of how well your app's user experience is designed.
Use the Actions Simulator
During development, it's convenient to test with the simulator, because it provides developer conveniences such as debug info and access to the raw HTTP request and responses. The simulator also lets you switch virtual surfaces easily (such as a phone or voice-activated speaker) to see how the experience works on different devices and lets you specify user input with text and voice.
You can access the web simulator from within the Actions Console when you start building.