What does it take to offer a product on Google Cloud? A recap of Prevision.io’s experience bringing our AI Management platform into GCP.
The process with Google
The GCP Marketplace team will grant you access to the Producer Portal, and you’ll be guided through your entire application by a Cloud Partner Engineer. A submission to the Marketplace goes to three distinct reviews: the product details, the pricing, and the technical integration.
In this article, we’ll go through what the technical integration to the Google Cloud Marketplace actually is, and what to expect from the reviews.
Hopefully this will help you go through your own Marketplace application!
Integration
The technical integration with the Google Marketplace is documented in an onboarding guide and in a codelab. Both are very important reads. In any case, here is a big picture view of the integration process.
Managing users
When users buy your product on the Google Cloud Marketplace, they have to create an account in your app. The first integration is this Account activation page.
When the user clicks the link to sign up for your app, they are redirected to your activation page, along with a JSON Web Token (JWT) which contains an account id. You must register their account along with this account id in your app, then approve the account on the Parner Procurement API.
Managing entitlements
When users choose a pricing plan for your product, the Google Cloud Marketplace will send you this information through a PubSub ENTITLEMENT_CREATION_REQUESTED message containing an entitlement id and other info. You have to approve or reject the entitlement through a call to the Partner Procurement API.
After approving the entitlement, another PubSub ENTITLEMENT_ACTIVE message will indicate that the user plan is now active, and you can safely give him access to your product.
Usage Reporting
This step is only required if your pricing model is usage-based. If yes, then you’ll have to decide what you usage metrics are for your pricing model, then send billing usage data to the Service Control API so GCP can charge your client for their usage.
There’s extensive documentation to report billing metrics, yet underneath all these details, it’s simply a call to the services.report methods of the Service Control API.
While implementing this, we also understood that it’s very practical to have the usage reports broken by the hour of usage (and not the day), as GCP Billing reports will also be based on hourly usage.
Google’s Marketplace validation process
Product details review
The product details review is quite straight-forward. You submit a description of your product that’ll be used in the Marketplace and a Cloud Partner Engineer validates it.
Make sure the description is as complete as possible, including documentation of your product, a way to contact your support, etc.
Pricing review
In the pricing review, the Cloud Partner Engineer will go through each metric you defined and make sure it’s clear what exactly you are billing, so make sure you use explicit and precise metric names. Also a quick recap of what your product does and which actions are billed will go a long way to validate the pricing.
Also remember that it’s forbidden to sell professional services through the marketplace.
Technical integration review
The technical integration review is divided in two steps.
First, the usage-based billing testing. Here, we had to purchase our own application in the marketplace, and report usage billing metrics to Google hourly for four days. In the meantime, we had to configure a BigQuery export of our billing account, then filter it to only have the usage for our application in the marketplace, and verify that the export matches the reports we made to the Service Control API. If the exports match the reports on each usage metrics, showing the correct amount of usage for each day, you’ll pass this step.
Second, the solution review meeting. It was quite simple, we had to do a test purchase of our app again, while screen-sharing the process to the Cloud Partner Engineer assigned to us.
Our experience
Here is our advice for cruising through a Google Cloud Marketplace submission.
Submit manual validation early.
To ship a Google Cloud Marketplace integration fast, it’s crucial to understand that some steps will take time to be validated by the Google Cloud Partner team. The lengthier steps are the billing with custom metrics validation, together with the usage-based billing testing. The earlier you start those two steps, the better.
Build a Marketplace Integration sandbox.
We invested a bit of time to set up a development sandbox that emulated the marketplace functions: such as signing a JWT, accepting or rejecting account IDs and entitlement IDs, and reporting usage-based metrics. This enabled us to automate a lot of testing instead of doing it manually from the Producer Portal.
Prepare hourly usage reports
Usage-based billing is tough to debug, and the Billing export to BigQuery is broken into hours. So while it’s not specified anywhere in the official docs, we found that reporting usage hourly ended up very practical to pass the usage-based billing testing, as you can easily compare the usage report requests to its corresponding line in the BigQuery export.
Conclusion
We are proud to now offer our product through Google Cloud Marketplace. Access our AI management platform and only pay for what you use thanks to our Pay-As-You-Go billing option here — Try Prevision.io for free. As an added bonus, get $400 in free credits when you sign up as a new GCP user and access Prevision.io.