AWS Machine Learning Blog
Helping small businesses deliver personalized experiences with the Amazon Personalize extension for Magento
This is a guest post by Jeff Finkelstein, founder of Customer Paradigm, a full-service interactive media firm and Magento solutions partner.
Many small retailers use Magento, an open-source ecommerce platform, to create websites or mobile applications to sell their products online. Personalization is key to creating high-quality ecommerce experiences, but small businesses often lack access to resources required to implement a scalable, sophisticated personalization solution—especially one that is powered by machine learning (ML). An ML-based solution results in better end-user engagement, conversion, and increased sales compared to traditional rudimentary techniques like static rules. With the Amazon Personalize extension for Magento, we’re now making the same ML personalization technology used by Amazon.com accessible to small businesses that use Magento.
This is the case with Hoopologie, a small hula hoop supply company based in Boulder, Colorado. Founder Melina Rider started the business in 2013 and has an extensive product line of over 1,000 SKUs. For Hoopologie, like many other small ecommerce merchants, creating sophisticated personalized experiences has been out of reach. Hiring ML experts to implement an ML solution isn’t affordable, and using a rules-based system requires a lot of manual maintenance, limiting scale and performance.
“Creating personalized recommendations for every type of user on the site would take us hours and hours every month. It’s not affordable, and I’d rather have our limited staff help our customers in other ways,” Rider says.
Hoopologie uses Magento to power their website, and has seen an increase of 40.5% in sales and an average order value increase of just over $50 per order by using the Amazon Personalize extension for Magento. In this post, we show you how to implement the Amazon Personalize extension for Magento to start creating ML-powered personalized experiences for your customers to improve engagement, conversion, and revenue.
Amazon Personalize for Magento
Amazon Personalize is a fully managed ML service that leverages over 20 years of experience at Amazon.com to help you deliver personalized experiences faster. The Amazon Personalize extension allows Magento merchants to take advantage of the benefits of Amazon Personalize and use its algorithms to power a Magento store’s product recommendations. All data and ML models are stored privately and securely in the merchant’s AWS account.
It’s easy to install the extension on your site, create an AWS account, and authorize the extension to access your AWS account. For instructions, see Amazon Personalize for Magento 2: Installation & Configuration Instructions. After you complete those steps, you see the Amazon Personalize extension in your Magento admin area, under Stores, Configuration.
Entering configuration details
For instructions on configuring the extension, watch the video clip Amazon Personalize for Magento 2: Extension Configuration on YouTube.
On the configuration page, you can provide all the values that tie your Magento site into Amazon Personalize in your AWS account:
- For License Key, enter the license key that you received for the extension.
If you installed the extension but don’t have a license key, you can start a 15-day free trial.
If your license is active, the License Active field shows as yes.
- If the license isn’t activated, add a valid access key.
- For Module Enabled, you can enable or disable the module from the admin area.
This is helpful if you need to troubleshoot a site, or if you have a copy of the site on a test server.
When your Amazon Personalize campaign (an ML-powered recommender trained on your data) is active in Amazon Personalize, Campaign Active shows as yes.
The system automatically uploads, ingests, and trains the data. This is a read-only display; this isn’t something you can change to turn on or off the campaign.
- For File owner home directory, enter a file directory outside your web root (such as ../../keys).
Amazon’s security requirements mandate that your AWS credentials not be stored in the Magento database. Instead, your keys need to be stored in a directory outside the web root, usually up a level or two from where your Magento site is stored in your file system.
- For AWS Region, enter the Region where you want the extension to access Amazon Personalize.
Because Amazon Personalize may not be available in all Regions, be sure to enter a Region code where Amazon Personalize is available and that is located geographically closest to your Magento server’s physical location.
- For AWS Account Number, enter your AWS account number.
- For Access Key, enter the access key ID for the user that you created in the authorization part of the setup.
- For Secret Key, enter the secret key ID for the user that you created in authorization part of the setup.
For instructions on finding your AWS account number, access key, and secret key, watch the video clip Amazon Personalize for Magento 2: Creating IAM User in AWS on YouTube.
- Choose Save Config.
This saves the access information and writes the access key and secret key to a file outside the web root.
Starting training
To begin the training process, choose Start Process.
Make sure that your Magento cron is running. If it’s not running, it’s highly likely that the process won’t move from one step to the next.
The process includes the following high-level steps:
- Exporting historical data from your Magento site into CSV files.
- Creating a private Amazon Simple Storage Service (Amazon S3) bucket in your AWS account to stage CSV files.
- Uploading the CSV files to the S3 bucket in your AWS account.
- Instructing Amazon Personalize to create a custom solution and campaign based on your data. The result is a private ML model hosted in your AWS account.
The following screenshot shows the progress tracker of the individual steps.
You can restart the process at any time by choosing Reset Process. This process starts at the beginning, and may incur additional data upload and training costs.
A/B split testing
To evaluate the effectiveness of the Amazon Personalize campaign created on your Magento store, we built in an A/B split testing system. A/B testing allows you to expose two subsets of your users to two variations of a user experience on your site and measure which variation results in the highest conversion rate. Control
is default Magento; Test
is personalized recommendations from your Amazon Personalize campaign.
- For the system to be active, make sure that Enabled is set to Yes.
If Enabled is set to No, Magento doesn’t use the extension.
- For Set Percentage, choose from the following A/B split test options:
- 100% Control / 0% test (Amazon Personalize isn’t used at all)
- 75% Control / 25% test (Amazon Personalize is used 25% of the time)
- 50% Control / 50% test (Amazon Personalize is used 50% of the time)
- 25% Control / 75% test (Amazon Personalize is used 75% of the time)
- 10% Control / 90% test (Amazon Personalize is used 90% of the time)
- 0% Control / 100% test (Amazon Personalize is used 100% of the time)
- Choose Save Config to save the settings.
Next you allow Amazon Personalize to train. Depending on the amount of historical data in your Magento system, this process can take a few hours to complete. You can revisit this page to see the progress of the training.
After you complete this process the first time, you can retrain new versions of the model while continuing to use the active campaign to provide product recommendations. To contain costs and create the most relevant dataset for your site, we’ve limited historical data to the previous 6 months. (Interaction data older than 6 months provides less value in making relevant product recommendations.)
After the Amazon Personalize system is enabled, the system automatically does the following:
- Displays personalized product recommendations to your end-users.
- Adds a “We also suggest” list of recommended products to your product page.
- Automatically adds a Google Analytics tag (if your site uses Google Analytics) for any order that was placed on the site when Amazon Personalize was active. This uses the existing Google Analytics system. If you’re not using Google Analytics, this step is omitted.
- Adds a field to the Magento database that indicates if an order was placed when Amazon Personalize was active.
- Adds real-time data interaction indicators, allowing Amazon Personalize to learn from users when they add a product to their cart, wishlist, or complete a purchase.
To add Amazon Personalize to additional pages, choose Content, Pages, Select a Page.
For help troubleshooting, see Amazon Personalize Extension for Magento 2.
Conclusion
In just a few easy steps, you can add the Amazon Personalize extension for Magento to an ecommerce site. Hooplogie started testing the Amazon Personalize extension in January 2020. They began by using an A/B split test to show the personalized recommendations to 50% of their users. After 6 weeks, users seeing personalized recommendations spent $50.02 more per transaction, and overall revenue from users in the test was up by 42%. Hoopologie continues to use the Amazon Personalize extension to create personalized experiences for their customers. They intend to expand usage by continuously evaluating the system, retraining as new products are added, and adding personalization to additional areas of the site.
Advanced personalization is no longer beyond the reach of many ecommerce merchants using Magento. The results from Hoopologie are a testament to the positive impact of implementing a scalable, sophisticated personalization solution powered by ML. Learn more about the Amazon Personalize extension for Magento for Customer Paradigm and enjoy a complementary 15-day free trial.
About the Author
Jeff Finklelstein is the founder of Customer Paradigm based in Boulder, Colorado. Founded in 2002, their team has completed more than 12,600 web development and marketing projects for ecommerce and other clients throughout the world. The Customer Paradigm team previously built an integration between Magento and Amazon Marketplace, which was incorporated into the core Magento framework in 2017. More information can be found at https://www.CustomerParadigm.com.