{"id":5616,"date":"2026-09-30T02:45:24","date_gmt":"2026-09-30T05:45:24","guid":{"rendered":"https:\/\/tucumandevelopers.com\/index.php\/2026\/09\/30\/ai-for-retail-personalized-shopping-experiences\/"},"modified":"2026-09-30T02:45:24","modified_gmt":"2026-09-30T05:45:24","slug":"ai-for-retail-personalized-shopping-experiences","status":"publish","type":"post","link":"https:\/\/tucumandevelopers.com\/index.php\/2026\/09\/30\/ai-for-retail-personalized-shopping-experiences\/","title":{"rendered":"AI for Retail: Personalized Shopping Experiences"},"content":{"rendered":"<div>\n<div>\n<p>This article focuses on the first row. Recommendations are the most common starting point, and they teach you the ideas behind the others.<\/p>\n<h2> <a name=\"how-does-ai-personalize-the-shopping-experience\" href=\"#how-does-ai-personalize-the-shopping-experience\"> <\/a> How does AI personalize the shopping experience? <\/h2>\n<p>Every personalization system runs the same loop.<\/p>\n<ol>\n<li> <strong>Collect events.<\/strong> Track views, clicks, add-to-cart actions, and purchases.<\/li>\n<li> <strong>Build a profile.<\/strong> Turn raw events into features, such as &#8220;views sports gear often.&#8221;<\/li>\n<li> <strong>Generate candidates.<\/strong> Pick a few hundred products that might fit.<\/li>\n<li> <strong>Rank them.<\/strong> Score each candidate and sort by expected relevance.<\/li>\n<li> <strong>Serve and learn.<\/strong> Show the results, then record what the shopper does next.<\/li>\n<\/ol>\n<p>Step 5 matters most. Without it, your model never improves.<\/p>\n<h2> <a name=\"how-do-recommendation-engines-work-in-ecommerce\" href=\"#how-do-recommendation-engines-work-in-ecommerce\"> <\/a> How do recommendation engines work in e-commerce? <\/h2>\n<p>Most recommendation engines use one of three approaches.<\/p>\n<div>\n<table>\n<thead>\n<tr>\n<th>Approach<\/th>\n<th>Core idea<\/th>\n<th>Strength<\/th>\n<th>Weakness<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Collaborative filtering<\/td>\n<td>Shoppers who behaved alike want similar things<\/td>\n<td>Finds surprising matches<\/td>\n<td>Struggles with new users and new products<\/td>\n<\/tr>\n<tr>\n<td>Content-based filtering<\/td>\n<td>Recommend items with similar attributes<\/td>\n<td>Works for new products<\/td>\n<td>Repeats what the shopper already knows<\/td>\n<\/tr>\n<tr>\n<td>Hybrid<\/td>\n<td>Combine both signals<\/td>\n<td>Balances the weaknesses<\/td>\n<td>More complex to build and tune<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Collaborative filtering has a famous origin in retail. In 2003, Amazon researchers Greg Linden, Brent Smith, and Jeremy York published <a href=\"https:\/\/doi.org\/10.1109\/MIC.2003.1167344\" target=\"_blank\" rel=\"noopener noreferrer\">&#8220;Amazon.com Recommendations: Item-to-Item Collaborative Filtering&#8221;<\/a> in IEEE Internet Computing. According to <a href=\"https:\/\/www.amazon.science\/the-history-of-amazons-recommendation-algorithm\" target=\"_blank\" rel=\"noopener noreferrer\">Amazon Science<\/a>, the journal later named it the paper that best withstood the test of time.<\/p>\n<p>The key idea is easy to state. Instead of comparing shoppers to each other, compare products. Product B is related to product A if people who bought A are more likely to buy B than the average customer is. This scales well because the catalog changes more slowly than the customer base.<\/p>\n<h2> <a name=\"a-reference-architecture-you-can-copy\" href=\"#a-reference-architecture-you-can-copy\"> <\/a> A reference architecture you can copy <\/h2>\n<p>A typical production setup has five parts. <\/p>\n<div>\n<pre><code>Storefront events --&gt; Event stream --&gt; Feature store \/ warehouse | v Model training job | v Storefront &lt;-- Recommendation API &lt;-- Model + cached results <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>Here is what each part does.<\/p>\n<ul>\n<li> <strong>Event stream:<\/strong> Kafka, Kinesis, or a managed queue collects clicks and purchases.<\/li>\n<li> <strong>Feature store or warehouse:<\/strong> stores user and product features for training and serving.<\/li>\n<li> <strong>Training job:<\/strong> runs on a schedule, often nightly, and writes new similarity scores or embeddings.<\/li>\n<li> <strong>Recommendation API:<\/strong> answers &#8220;what should this user see?&#8221; in milliseconds.<\/li>\n<li> <strong>Cache:<\/strong> stores precomputed results so the API rarely runs the model live.<\/li>\n<\/ul>\n<p>Start simple. A nightly batch job with cached results handles most stores well. Move to real-time updates only when the business case is clear.<\/p>\n<h2> <a name=\"build-a-simple-recommendation-engine-in-python\" href=\"#build-a-simple-recommendation-engine-in-python\"> <\/a> Build a simple recommendation engine in Python <\/h2>\n<p>Let us build item-to-item collaborative filtering. This is the same core idea behind the Amazon paper, scaled down to a toy dataset.<\/p>\n<p>Install the libraries first. <\/p>\n<div>\n<pre><code>pip <span>install <\/span>pandas scikit-learn <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>Now the code. It does three things. It builds a user-by-product matrix, measures how similar products are, and recommends products for a user. <\/p>\n<div>\n<pre><code><span>import<\/span> <span>pandas<\/span> <span>as<\/span> <span>pd<\/span> <span>from<\/span> <span>sklearn.metrics.pairwise<\/span> <span>import<\/span> <span>cosine_similarity<\/span> <span># 1. Purchase events: one row per (user, product) interaction <\/span><span>events<\/span> <span>=<\/span> <span>pd<\/span><span>.<\/span><span>DataFrame<\/span><span>({<\/span> <span>\"<\/span><span>user_id<\/span><span>\"<\/span><span>:<\/span> <span>[<\/span><span>\"<\/span><span>u1<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>u1<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>u1<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>u2<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>u2<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>u3<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>u3<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>u3<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>u4<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>u4<\/span><span>\"<\/span><span>],<\/span> <span>\"<\/span><span>product_id<\/span><span>\"<\/span><span>:<\/span> <span>[<\/span><span>\"<\/span><span>sneakers<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>socks<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>water_bottle<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>sneakers<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>socks<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>yoga_mat<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>water_bottle<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>socks<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>yoga_mat<\/span><span>\"<\/span><span>,<\/span> <span>\"<\/span><span>water_bottle<\/span><span>\"<\/span><span>],<\/span> <span>})<\/span> <span># 2. Build a user x product matrix (1 = user interacted with the product) <\/span><span>matrix<\/span> <span>=<\/span> <span>(<\/span> <span>events<\/span><span>.<\/span><span>assign<\/span><span>(<\/span><span>value<\/span><span>=<\/span><span>1<\/span><span>)<\/span> <span>.<\/span><span>pivot_table<\/span><span>(<\/span><span>index<\/span><span>=<\/span><span>\"<\/span><span>user_id<\/span><span>\"<\/span><span>,<\/span> <span>columns<\/span><span>=<\/span><span>\"<\/span><span>product_id<\/span><span>\"<\/span><span>,<\/span> <span>values<\/span><span>=<\/span><span>\"<\/span><span>value<\/span><span>\"<\/span><span>,<\/span> <span>fill_value<\/span><span>=<\/span><span>0<\/span><span>)<\/span> <span>)<\/span> <span># 3. Compare products by which users touched them (item-to-item similarity) <\/span><span>similarity<\/span> <span>=<\/span> <span>pd<\/span><span>.<\/span><span>DataFrame<\/span><span>(<\/span> <span>cosine_similarity<\/span><span>(<\/span><span>matrix<\/span><span>.<\/span><span>T<\/span><span>),<\/span> <span>index<\/span><span>=<\/span><span>matrix<\/span><span>.<\/span><span>columns<\/span><span>,<\/span> <span>columns<\/span><span>=<\/span><span>matrix<\/span><span>.<\/span><span>columns<\/span><span>,<\/span> <span>)<\/span> <span>def<\/span> <span>recommend<\/span><span>(<\/span><span>product_id<\/span><span>,<\/span> <span>top_n<\/span><span>=<\/span><span>3<\/span><span>):<\/span> <span>\"\"\"<\/span><span>Return the products most similar to product_id, excluding itself.<\/span><span>\"\"\"<\/span> <span>scores<\/span> <span>=<\/span> <span>similarity<\/span><span>[<\/span><span>product_id<\/span><span>].<\/span><span>drop<\/span><span>(<\/span><span>product_id<\/span><span>)<\/span> <span>return<\/span> <span>scores<\/span><span>.<\/span><span>sort_values<\/span><span>(<\/span><span>ascending<\/span><span>=<\/span><span>False<\/span><span>).<\/span><span>head<\/span><span>(<\/span><span>top_n<\/span><span>)<\/span> <span>def<\/span> <span>recommend_for_user<\/span><span>(<\/span><span>user_id<\/span><span>,<\/span> <span>top_n<\/span><span>=<\/span><span>3<\/span><span>):<\/span> <span>\"\"\"<\/span><span>Score unseen products by their similarity to what the user already has.<\/span><span>\"\"\"<\/span> <span>seen<\/span> <span>=<\/span> <span>matrix<\/span><span>.<\/span><span>loc<\/span><span>[<\/span><span>user_id<\/span><span>]<\/span> <span>seen_items<\/span> <span>=<\/span> <span>seen<\/span><span>[<\/span><span>seen<\/span> <span>&gt;<\/span> <span>0<\/span><span>].<\/span><span>index<\/span> <span>scores<\/span> <span>=<\/span> <span>similarity<\/span><span>[<\/span><span>seen_items<\/span><span>].<\/span><span>sum<\/span><span>(<\/span><span>axis<\/span><span>=<\/span><span>1<\/span><span>).<\/span><span>drop<\/span><span>(<\/span><span>seen_items<\/span><span>)<\/span> <span>return<\/span> <span>scores<\/span><span>.<\/span><span>sort_values<\/span><span>(<\/span><span>ascending<\/span><span>=<\/span><span>False<\/span><span>).<\/span><span>head<\/span><span>(<\/span><span>top_n<\/span><span>)<\/span> <span>print<\/span><span>(<\/span><span>recommend<\/span><span>(<\/span><span>\"<\/span><span>sneakers<\/span><span>\"<\/span><span>))<\/span> <span>print<\/span><span>(<\/span><span>recommend_for_user<\/span><span>(<\/span><span>\"<\/span><span>u2<\/span><span>\"<\/span><span>))<\/span> <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>I ran this code with pandas 3.0 and scikit-learn 1.8. The output looks like this: <\/p>\n<div>\n<pre><code>product_id socks 0.816497 water_bottle 0.408248 yoga_mat 0.000000 Name: sneakers, dtype: float64 product_id water_bottle 1.074915 yoga_mat 0.408248 dtype: float64 <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>Read the results like this. Shoppers who bought sneakers also bought socks, so socks score highest. User <code>u2<\/code> owns sneakers and socks, so the engine suggests a water bottle next, because it appears in baskets alongside both items.<\/p>\n<h3> <a name=\"what-this-code-does-not-do\" href=\"#what-this-code-does-not-do\"> <\/a> What this code does not do <\/h3>\n<p>This is a teaching example, not a production system. It has clear limits.<\/p>\n<ul>\n<li>It treats every interaction as equal. A purchase should count more than a click.<\/li>\n<li>It stores a dense matrix. Real catalogs have millions of products, so you need sparse matrices or approximate nearest neighbor search.<\/li>\n<li>It cannot recommend a brand-new product, because that product has no interaction history yet.<\/li>\n<\/ul>\n<h2> <a name=\"use-a-managed-service-when-you-do-not-want-to-run-models\" href=\"#use-a-managed-service-when-you-do-not-want-to-run-models\"> <\/a> Use a managed service when you do not want to run models <\/h2>\n<p>If you build on AWS, <a href=\"https:\/\/docs.aws.amazon.com\/personalize\/latest\/dg\/getting-real-time-item-recommendations.html\" target=\"_blank\" rel=\"noopener noreferrer\">Amazon Personalize<\/a> handles training and hosting for you. You send it events, and it returns ranked items through an API.<\/p>\n<p>This snippet follows the official Boto3 examples. It fetches recommendations for a user. Replace the placeholders with your own values. <\/p>\n<div>\n<pre><code><span>import<\/span> <span>boto3<\/span> <span>personalize_runtime<\/span> <span>=<\/span> <span>boto3<\/span><span>.<\/span><span>client<\/span><span>(<\/span><span>\"<\/span><span>personalize-runtime<\/span><span>\"<\/span><span>)<\/span> <span>response<\/span> <span>=<\/span> <span>personalize_runtime<\/span><span>.<\/span><span>get_recommendations<\/span><span>(<\/span> <span>campaignArn<\/span><span>=<\/span><span>\"<\/span><span>YOUR_CAMPAIGN_ARN<\/span><span>\"<\/span><span>,<\/span> <span># a deployed campaign <\/span> <span>userId<\/span><span>=<\/span><span>\"<\/span><span>123<\/span><span>\"<\/span><span>,<\/span> <span>numResults<\/span><span>=<\/span><span>10<\/span><span>,<\/span> <span>)<\/span> <span>for<\/span> <span>item<\/span> <span>in<\/span> <span>response<\/span><span>[<\/span><span>\"<\/span><span>itemList<\/span><span>\"<\/span><span>]:<\/span> <span>print<\/span><span>(<\/span><span>item<\/span><span>[<\/span><span>\"<\/span><span>itemId<\/span><span>\"<\/span><span>])<\/span> <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>Note that domain recommenders and custom campaigns are different resources. Check the <a href=\"https:\/\/docs.aws.amazon.com\/personalize\/latest\/dg\/API_RS_GetRecommendations.html\" target=\"_blank\" rel=\"noopener noreferrer\">GetRecommendations API reference<\/a> to see which one you need. Developers often mix up the two, and the errors are confusing.<\/p>\n<p>Your storefront should also send events back. The <a href=\"https:\/\/docs.aws.amazon.com\/personalize\/latest\/dg\/putevents-including-impressions-data.html\" target=\"_blank\" rel=\"noopener noreferrer\">PutEvents operation<\/a> records what shoppers do. It also supports impressions data, which tells the model which items you showed. That helps the model explore items with fewer interactions.<\/p>\n<p>Here is the trade-off between building and buying.<\/p>\n<div>\n<table>\n<thead>\n<tr>\n<th>Factor<\/th>\n<th>Build yourself<\/th>\n<th>Managed service<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Control over the model<\/td>\n<td>Full<\/td>\n<td>Limited to the service options<\/td>\n<\/tr>\n<tr>\n<td>Time to first result<\/td>\n<td>Weeks<\/td>\n<td>Days<\/td>\n<\/tr>\n<tr>\n<td>Ongoing maintenance<\/td>\n<td>Your team<\/td>\n<td>Mostly the provider<\/td>\n<\/tr>\n<tr>\n<td>Cost at small scale<\/td>\n<td>Low<\/td>\n<td>Can exceed a simple in-house model<\/td>\n<\/tr>\n<tr>\n<td>Vendor lock-in<\/td>\n<td>None<\/td>\n<td>Real<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Neither choice is always right. A small catalog with limited data often works fine with a simple in-house model. A large catalog with real-time needs often justifies a managed service.<\/p>\n<h2> <a name=\"production-challenges-most-tutorials-skip\" href=\"#production-challenges-most-tutorials-skip\"> <\/a> Production challenges most tutorials skip <\/h2>\n<p>A model that works in a notebook can still fail in production. These are the problems you will meet first.<\/p>\n<h3> <a name=\"the-cold-start-problem\" href=\"#the-cold-start-problem\"> <\/a> The cold start problem <\/h3>\n<p>New users have no history. New products have no interactions. Your model has nothing to work with.<\/p>\n<p>Handle it with fallbacks. Show bestsellers or trending items to new users. Use content-based signals, such as category and price, for new products. Switch to personalized results once enough data exists.<\/p>\n<h3> <a name=\"latency-and-caching\" href=\"#latency-and-caching\"> <\/a> Latency and caching <\/h3>\n<p>Shoppers leave slow pages. Do not run heavy models inside the request path if you can avoid it.<\/p>\n<p>Precompute recommendations in a batch job and store them in Redis or a similar cache. Serve from the cache, and refresh it on a schedule. Keep a static fallback list for cache misses.<\/p>\n<h3> <a name=\"error-handling\" href=\"#error-handling\"> <\/a> Error handling <\/h3>\n<p>Your recommendation service will fail sometimes. The storefront must not fail with it. <\/p>\n<div>\n<pre><code><span>def<\/span> <span>get_homepage_recommendations<\/span><span>(<\/span><span>user_id<\/span><span>):<\/span> <span>\"\"\"<\/span><span>Return personalized items, or bestsellers if anything goes wrong.<\/span><span>\"\"\"<\/span> <span>try<\/span><span>:<\/span> <span>return<\/span> <span>fetch_personalized_items<\/span><span>(<\/span><span>user_id<\/span><span>,<\/span> <span>timeout_seconds<\/span><span>=<\/span><span>0.2<\/span><span>)<\/span> <span>except<\/span> <span>Exception<\/span><span>:<\/span> <span># Log the error for monitoring, then fall back quietly <\/span> <span>return<\/span> <span>fetch_bestsellers<\/span><span>()<\/span> <\/code><\/pre>\n<div>\n<\/p><\/div>\n<\/p><\/div>\n<p>Set a short timeout. A fast, generic answer beats a slow, personalized one.<\/p>\n<h3> <a name=\"popularity-bias-and-feedback-loops\" href=\"#popularity-bias-and-feedback-loops\"> <\/a> Popularity bias and feedback loops <\/h3>\n<p>Models tend to recommend what is already popular. Shoppers click those items. The model then learns that they are even more popular. Niche products never get a chance.<\/p>\n<p>Reduce this by adding exploration. Show a small share of less-seen items and measure the results. Impressions data, like the kind Amazon Personalize accepts, helps with this.<\/p>\n<h3> <a name=\"testing-and-evaluation\" href=\"#testing-and-evaluation\"> <\/a> Testing and evaluation <\/h3>\n<p>Test in two stages.<\/p>\n<ol>\n<li> <strong>Offline:<\/strong> hold back recent purchases and check whether your model would have ranked them highly. Metrics like precision@k and recall@k are common choices.<\/li>\n<li> <strong>Online:<\/strong> run an A\/B test with real traffic. Measure conversion, average order value, and return rate.<\/li>\n<\/ol>\n<p>Offline scores do not guarantee online success. A model can look great on old data and still lose the A\/B test.<\/p>\n<h3> <a name=\"security-and-privacy\" href=\"#security-and-privacy\"> <\/a> Security and privacy <\/h3>\n<p>Personalization uses personal data, so treat it carefully.<\/p>\n<ul>\n<li>Collect only the data you need.<\/li>\n<li>Record consent and honor opt-outs.<\/li>\n<li>Check the rules that apply to you, such as GDPR in the EU or India&#8217;s Digital Personal Data Protection Act, 2023.<\/li>\n<li>Protect the recommendation API with authentication, and never let one user request another user&#8217;s recommendations.<\/li>\n<li>Avoid sending names, emails, or addresses into model training data unless you truly need them.<\/li>\n<\/ul>\n<p>Ask your legal team for advice on your specific case. This article is not legal guidance.<\/p>\n<h3> <a name=\"deployment-and-monitoring\" href=\"#deployment-and-monitoring\"> <\/a> Deployment and monitoring <\/h3>\n<p>Version your models. Deploy a new model to a small share of traffic first. Watch click-through rate, conversion, latency, and error rate. Keep a fast way to roll back.<\/p>\n<h2> <a name=\"what-are-the-benefits-of-ai-in-retail\" href=\"#what-are-the-benefits-of-ai-in-retail\"> <\/a> What are the benefits of AI in retail? <\/h2>\n<p>When done well, AI in retail can give you:<\/p>\n<ul>\n<li>More relevant product discovery for shoppers<\/li>\n<li>Less manual work for merchandising teams<\/li>\n<li>Better use of the customer data you already collect<\/li>\n<li>A base for later features like personalized search and messaging<\/li>\n<\/ul>\n<p>Be honest about the limits too. Personalization needs clean data, ongoing tuning, and careful privacy handling. Results vary by store, catalog, and traffic. Test before you promise gains to your team.<\/p>\n<h2> <a name=\"where-to-start-this-week\" href=\"#where-to-start-this-week\"> <\/a> Where to start this week <\/h2>\n<p>You do not need a large project to begin. Try this order.<\/p>\n<ol>\n<li>Track clean events: views, add-to-cart, and purchases.<\/li>\n<li>Build the simple item-to-item model from this article on your own data.<\/li>\n<li>Serve results from a cache, with a bestseller fallback.<\/li>\n<li>Run a small A\/B test on one placement, such as &#8220;similar products&#8221; on product pages.<\/li>\n<li>Improve one thing at a time, based on results.<\/li>\n<\/ol>\n<p>The best personalization systems start small and grow from real measurements. Pick one page, ship one model, and learn from what shoppers actually do.<\/p>\n<h3> <a name=\"faq\" href=\"#faq\"> <\/a> FAQ <\/h3>\n<p><strong>What is AI in retail?<\/strong><br \/> AI in retail means using machine learning and data analysis to improve tasks like product recommendations, search, marketing, and demand forecasting.<\/p>\n<p><strong>How does AI personalize the shopping experience?<\/strong><br \/> It collects shopper events, builds a profile, picks candidate products, ranks them, and learns from the results.<\/p>\n<p><strong>What is the easiest recommendation engine to build?<\/strong><br \/> Item-to-item collaborative filtering. It needs only a table of user and product interactions, as shown in the code above.<\/p>\n<p><strong>How do I handle new users with no history?<\/strong><br \/> Show bestsellers or trending products first. Switch to personalized results as data builds up.<\/p>\n<p><strong>Should I build or buy a recommendation engine?<\/strong><br \/> Build for small catalogs and full control. Consider a managed service for large catalogs, real-time needs, or small teams.<\/p>\n<\/p><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>Fuente: <a href=\"https:\/\/dev.to\/the-tisa\/ai-for-retail-personalized-shopping-experiences-oea\">Art\u00edculo original<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article focuses on the first row. Recommendations are the most common starting point, and they teach you the ideas behind the others. How does AI personalize the shopping experience? Every personalization system runs the same loop. Collect events. Track views, clicks, add-to-cart actions, and purchases. Build a profile. Turn raw events into features, such [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5615,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"webixso_pending_account_ids":""},"categories":[41],"tags":[],"class_list":["post-5616","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devto"],"jetpack_publicize_connections":[],"_links":{"self":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/posts\/5616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/comments?post=5616"}],"version-history":[{"count":0,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/posts\/5616\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/media\/5615"}],"wp:attachment":[{"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/media?parent=5616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/categories?post=5616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tucumandevelopers.com\/index.php\/wp-json\/wp\/v2\/tags?post=5616"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}