AWS Partner Network (APN) Blog

Enhancing AWS Marketplace Reporting with Tackle.io and Commerce Analytics Service

By Dillon Woods, Founder & CTO at Tackle.io
By David Cowden, Partner Solutions Architect at AWS

AWS Marketplace-2Many independent software vendors (ISVs) reach out to Tackle.io, an AWS Partner Network (APN) Advanced Technology Partner, when they need help getting solutions listed quickly on AWS Marketplace.

Kirk Punches, Sr. Director of Strategic Cloud Alliances at PagerDuty, has first-hand experience partnering with Tackle to implement a holistic marketplace strategy. “AWS Marketplace has simplified how ISVs can generate visibility and help transact,” he says. “However, there is still a lot for ISVs to contemplate around technical integration, internal systems integration, go-to-market, and how to do business efficiently at scale.”

Reducing overall time-to-Marketplace is certainly one of Tackle’s key capabilities, but ISVs are often surprised when they hear that getting listed is just the first step to being successful.

Amazon Web Services (AWS) provides AWS Marketplace Commerce Analytics Service, which allows you to access your sales data from AWS Marketplace. Getting started with Commerce Analytics Service can be technically difficult for some users, however.

This post describes how Tackle developed an innovative solution using the AWS Fargate compute engine to make Commerce Analytics Service data more accessible for business owners. The solution asynchronously pulls sales data from Commerce Analytics Service and then makes that data available to you.

Overview

Your sales operations, finance, and even marketing teams all need to carefully consider how sales originating from AWS Marketplace might affect existing processes. Issues become more apparent after a product listing is complete and sales start coming in.

Questions from your teams may include:

  • How do I know when a buyer accepts a specific private offer?
  • I saw a deposit from AWS in our bank account. How do I know which customer payments are included in that disbursement?
  • We are enrolled in the AWS Marketplace Enhanced Data Sharing (EDS) Program. How do I take advantage of the enhanced buyer information?

Commerce Analytics Service allows you to answer these and many other questions by programmatically accessing sales data from AWS Marketplace.

Tackle-AWS Marketplace-1

Figure 1 – The AWS Marketplace Commerce Analytics Service process.

Building Upon AWS Fargate

Tackle built their process on AWS Fargate because of some key features:

  • Container-focus. Tackle used their existing development expertise to create a serverless Commerce Analytics Service microservice by deploying container tasks on Fargate.
  • Operational simplicity. Fargate automatically manages all underlying infrastructure, including management of the Amazon Elastic Compute Cloud (Amazon EC2) instances, so Tackle didn’t need to add operational overhead.
  • Automatic scaling. Fargate automatically scales the number of containers in or out depending on customer demand for Commerce Analytics Service.

To implement their service, Tackle wrote a simple Python script that uses the AWS SDK for Python to call the MarketplaceCommerceAnalytics.Client.generate_data_set function.

Commerce Analytics Service provides about 21 different datasets that are all available on different schedules. For example, the daily_business_fees dataset is available by 17:00 Pacific Standard Time each day, while the disbursed_amount_by_product report is available every 30 days. Tackle’s service must call generate_data_set each day for available reports for each ISV they serve.

A simple call to the generate_data_set function looks like the following code:

<<<<<<<<<<<<<
import sys
import boto3
import logging

marketplace_client = boto3.client('marketplacecommerceanalytics')

try:
    resp = marketplace_client.generate_data_set(
        dataSetType='daily_business_new_product_subscribers',
        dataSetPublicationDate='2019-04-01T00:00:00Z',
        roleNameArn='arn:aws:iam::000000000000:role/MarketplaceCommerceAnalyticsRole',
        destinationS3BucketName='marketplace-cas-data',
        destinationS3Prefix='cas-prefix',
        snsTopicArn='arn:aws:sns:us-west-2:000000000000:cas-messages')
except Exception, e:
    logging.error("Error from generate_data_set: %s", str(e))
    sys.exit(1)
>>>>>>>>>>>>>

The generate_data_set function creates the desired dataset, copies it into a designated Amazon Simple Storage Service (Amazon S3) bucket, and then sends an Amazon Simple Notification Service (SNS) notification to the user when the data is ready.

Consequently, Tackle has a second Python service that uses the Amazon SNS SDK to subscribe to those notifications and ingest the data after it’s ready. The data ingestion involves a fairly complex extract, transform, and load (ETL) process to join the data from multiple reports together and transform it into the expected final form.

Fargate makes deploying and managing these services simple. Whenever code updates to the service are ready, Tackle’s CI/CD pipeline automatically takes the following steps:

Using the following revision of the task definition, Fargate takes care of all work needed to perform a rolling service update and push all new code into production.

<<<<<<<<<<<<<<<<
$ docker push 000000000000.dkr.ecr.us-east-1.amazonaws.com/cas-message-handler:latest

$ aws --region=us-east-1 ecs update-service --cluster cas-message-handler-cluster --service cas-message-handler-service --force-new-deployment
{
    "service": {
        "serviceArn": "arn:aws:ecs:us-east-1:000000000000:service/cas-message-handler-service",
        "serviceName": "cas-message-handler-service",
        "clusterArn": "arn:aws:ecs:us-east-1:000000000000:cluster/cas-message-handler-cluster",
        "loadBalancers": [],
        "serviceRegistries": [],
        "status": "ACTIVE",
        "desiredCount": 2,
        "runningCount": 2,
        "pendingCount": 0,
        "launchType": "FARGATE",
        "platformVersion": "LATEST",
        "taskDefinition": "arn:aws:ecs:us-east-1:000000000000:task-definition/cas-message-handler:2",
        "deploymentConfiguration": {
            "maximumPercent": 200,
            "minimumHealthyPercent": 50
        }
...
}
>>>>>>>>>>>>>>>>

This service allows you to count on having your latest AWS sales data for analysis as soon as it’s available. You can consume the sales data in a variety of different ways:

  • Load the raw data into Microsoft Excel.
  • Use Amazon QuickSight, a business intelligence service with pay-per-session pricing and machine learning insights.
  • Build more complicated connectors that bring the data directly to Salesforce.

Compiling these reports can be time-consuming, however, and may distract your product teams from working on your core product.

“We are in pretty rapid headcount growth, so to distract people away from what they were hired for would not have been best for us” says Kevin Mellor, VP of Finance for A Cloud Guru. “The ongoing maintenance was not going to work. Having [Tackle] do that was pretty valuable for us.”

Tackle offers a custom reporting platform called Tackle Downstream, which you can see in Figure 2. It provides a persona-specific dashboard for consuming AWS Marketplace sales data as efficiently as possible.

Tackle-AWS Marketplace-2

Figure 2 – Tackle Downstream allows you to consume AWS Marketplace data.

Summary

AWS Marketplace offers a place where you can generate visibility and sell your products. The AWS Marketplace Commerce Analytics Service allows you to access your sales data and improve business practices.

Tackle.io developed a solution leveraging the AWS Fargate compute engine to help make Commerce Analytics Service data more accessible for business owners. This has helped software vendors like New Relic, Druva, and Auth0 quickly list and start selling on AWS Marketplace.

Dave McCann, vice president of AWS Marketplace, estimates there are more than 200,000 buyers using AWS Marketplace to purchase software. With momentum like that, it’s no wonder that ISVs are in a hurry to complete AWS Marketplace listings for their products.

The content and opinions in this blog are those of the third party author and AWS is not responsible for the content or accuracy of this post.

.


Tackle.io-Logo-1
Connect with Tackle.io-1

Tackle.io – APN Partner Spotlight

Tackle is an APN Advanced Technology Partner. Whether you’re a software startup or enterprise solution provider, Tackle helps you list and sell software in AWS Marketplace.

Contact Tackle | Solution Overview | Buy on Marketplace

*Already worked with Tackle? Rate this Partner

*To review an APN Partner, you must be an AWS customer that has worked with them directly on a project.