{"id":22871,"date":"2024-02-15T18:11:46","date_gmt":"2024-02-15T18:09:00","guid":{"rendered":"https:\/\/www.bloomreach.com\/library\/what-is-contextual-personalization"},"modified":"2026-10-12T19:59:39","modified_gmt":"2026-10-12T19:59:39","slug":"contextual-personalization","status":"publish","type":"library","link":"https:\/\/www.bloomreach.com\/en\/blog\/contextual-personalization","title":{"rendered":"What Is Contextual Personalization?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">To provide the best possible site experience for customers, you need to understand them. You need to know what&#8217;s important to them. Do they like hunting for sales? Do they want sustainable materials? Maybe they prefer exclusive or premium products? Most brands answer that question with an A\/B test, pick the variant that wins on average, and show it to everyone. The customers who wanted the other variant never see it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contextual personalization is AI that picks the best variant of a message, offer, or banner for each individual customer, based on their history with you and what they are doing right now. Instead of one winner for the whole audience, different variants keep winning for different people, and the system keeps learning from every response. This is why we built contextual personalization into <a href=\"https:\/\/www.bloomreach.com\/\">Bloomreach<\/a> and power it with <a href=\"https:\/\/loomi.ai\/\" target=\"_blank\" rel=\"noopener\">Loomi<\/a>, our AI for customer engagement. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Every guide to this topic explains it as reacting to weather, device, and location. This one also covers the part an evaluator actually needs: how the decision is made, what it needs from your data and traffic, and how you prove it beat the A\/B test you already run.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Is Contextual Personalization?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Contextual personalization uses <a href=\"https:\/\/www.bloomreach.com\/en\/blog\/impact-artificial-intelligence-online-fashion-retail\">artificial intelligence and machine learning<\/a> to pick the right variant of any given message or product recommendation for each customer. This can radically change the way <a href=\"https:\/\/www.bloomreach.com\/en\/blog\/digital-commerce-explained\">digital commerce<\/a> stores test their messaging and optimize their product offerings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It automatically analyzes all of the different contexts of your customers and utilizes the insights immediately. Context here means two kinds of data. There is what the customer has done before: clicks on the website, past purchases, opened emails, and campaign responses. And there is what they are doing in this session: the device, the traffic source, the time of day, and what they just searched for. A first-time visitor with no account still has the second kind, so they are not served the average.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">While <a href=\"https:\/\/documentation.bloomreach.com\/engagement\/docs\/ab-tests\" target=\"_blank\" rel=\"noopener\">A\/B testing<\/a> serves every customer the overall best variant of a tested campaign based on average performance, contextual personalization serves what is best for each customer based on the contexts in which they are found. Essentially, it solves the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Multi-armed_bandit\" target=\"_blank\" rel=\"noopener\"><strong>multi-armed bandit problem<\/strong><\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What Is a Multi-Armed Bandit Problem?<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/documentation.bloomreach.com\/engagement\/docs\/contextual-personalization-2\" target=\"_blank\" rel=\"noopener\">Contextual personalization<\/a> is a solution to a big problem, the multi-armed bandit problem. But what exactly does that mean?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bandits, in this context, refers to the kind of slot machines you&#8217;d find at a Las Vegas casino. The problem is a hypothetical one. Imagine you have a limited amount of money, and a large number of slot machines to use that money on.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Some slot machines would probably pay out a little more, and some a little less. You&#8217;ve got to find out which one is which as quickly as possible because you only have a limited amount of money to play with. You need to divide your effort between finding which machine pays out the most and milking the highest-paying machine you&#8217;ve found so far.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is (a simplified version of) a multi-armed bandit problem.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can map this same problem into existence with your ecommerce shop. The limited amount of money is actually your customers (since there&#8217;s a finite number of them). The slot machines become your messages or your offers (since some will work better than others for specific customers). And the problem is determining which messages to show to which customers (where to spend your money).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There have been a number of proposed solutions to the multi-armed bandit problem as <a href=\"https:\/\/www.bloomreach.com\/en\/blog\/ecommerce-product-recommendation-engine\">product recommendations<\/a> have become more and more important to ecommerce personalization. But contextual personalization is tailored specifically to the ecommerce variant at hand, and it introduces some very important context.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Power of Context<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s go back to our original example of slot machines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When we first introduced the problem, we were only considering the payout of each machine, and the initial amount of money we had. Now imagine that each machine responds differently to each person sitting in front of it. And the weather makes an impact as well. So does the drink of the person at the machine. As we&#8217;ve come to learn, the context of the scenario at play is actually very important.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You now don&#8217;t need to just find the best overall strategy. You need to find the best strategy for the given context, which can quickly get overwhelming when factoring in all the different variables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This applies similarly to digital commerce. Instead of trying to find the best overall message for your whole audience, you should be focused on trying to find the best message for each particular customer while keeping that ever-important context in mind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Context includes historical data about each customer, such as clicks on the website, past purchases, opened emails, as well as data from their ongoing session, such as what the customer just searched for. It aggregates this information and selects the correct variant based on this context. This greatly helps you <a href=\"https:\/\/www.bloomreach.com\/en\/case-studies\/yves-rocher-upgrades-personalization-with-bloomreach\">personalize the experience for your customers<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then the action happens: Either the customer converts or doesn&#8217;t. It can be a click on the banner, a newsletter subscription, <a href=\"https:\/\/www.bloomreach.com\/en\/products\/marketing-automation\/email-marketing\">email engagement<\/a>, or a purchase later on, basically any other action we&#8217;re optimizing for. The contextual &#8220;bandit&#8221; takes this as feedback, and learns which kinds of contexts paired with which variants lead to conversions, and which don&#8217;t. Over time, it learns to make much better decisions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Contextual Personalization vs. A\/B Testing<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Common best practice for businesses not using contextual personalization right now is to perform an A\/B test, gather data from that result, then determine which messaging variant works the best for the entire customer data.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Working with another example where 70% of customers are interested in a discount offer, and 30% in free shipping, we might find out that the winning variant would be a banner about said discount offer. Once we finish testing, we would likely also decide to use that variant for the entire customer base.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, by doing that, you just misunderstood 30% of your customers, and showed them something they don&#8217;t care about. Solving this problem could be as simple as finding a segment of customers who bought such products in the past, or purchased from brands who make sustainable goods.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Contextual bandits solve problems like this automatically. They reframe the A\/B test question and ask instead: What segment should I show this variant to?<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"536\" src=\"https:\/\/www.bloomreach.com\/wp-content\/uploads\/2024\/02\/image-1024x536.jpeg\" alt=\"\" class=\"wp-image-97023\" srcset=\"https:\/\/www.bloomreach.com\/wp-content\/uploads\/2024\/02\/image-1024x536.jpeg 1024w, https:\/\/www.bloomreach.com\/wp-content\/uploads\/2024\/02\/image-300x157.jpeg 300w, https:\/\/www.bloomreach.com\/wp-content\/uploads\/2024\/02\/image-768x402.jpeg 768w, https:\/\/www.bloomreach.com\/wp-content\/uploads\/2024\/02\/image-1536x804.jpeg 1536w, https:\/\/www.bloomreach.com\/wp-content\/uploads\/2024\/02\/image.jpeg 1720w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This is a different kind of test. An A\/B test ends when one variant wins and the others are switched off. Contextual personalization does not need to end, because there is no single winner to roll out. The discount banner keeps going to the customers who respond to discounts, and the free-shipping banner keeps going to the customers who respond to free shipping. The split between them is decided per person rather than fixed at the start.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That is also why it is not a replacement for A\/B testing. It runs alongside one, so you can see whether per-person selection is beating the best single variant. How that comparison works is covered below.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How Contextual Personalization Works With Bloomreach<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When a customer opens a weblayer or receives a message, Loomi runs the same four steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>It evaluates the customer&#8217;s context.<\/strong> Six groups of data feed the model: browsing behavior, campaign response, purchase history, time and preferences, session activity (device, traffic source, and current actions), and customer profile properties such as location. By default Loomi selects the relevant data itself, and you can switch any group off or add your own properties, aggregates, segmentations, or predictions instead.<\/li>\n\n\n\n<li><strong>It selects the variant most likely to achieve your goal.<\/strong> You define between two and 10 variants of a banner, email, or scenario node.<\/li>\n\n\n\n<li><strong>It registers whether the customer completed the goal<\/strong>, for example a purchase or a banner click, inside a fixed attribution window.<\/li>\n\n\n\n<li><strong>It uses that outcome to make better decisions for the next customer.<\/strong> The model is retrained continuously in the background as new interactions arrive.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The model is a contextual bandit trained by reinforcement learning, which is the standard way to balance exploiting the variant that currently performs best against exploring the others. So a small share of decisions is made deliberately at random. This is exploration, and it is how the model confirms what it has learned and finds patterns it would miss by always serving the current favorite. It is expected behavior, and it is visible in early results, so it should not be read as underperformance. The full setup is in the <a href=\"https:\/\/documentation.bloomreach.com\/engagement\/docs\/configure-contextual-personalization\" target=\"_blank\" rel=\"noopener\">configuration guide<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Tell It What a Conversion Is Worth<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The model optimizes for whatever you define as success, and that choice decides what it learns. Optimizing an email blast for opens and clicks rewards clickbait. Set the goal to purchase_item instead, and if variant A wins more clicks but fewer purchases than variant B, Loomi shifts traffic to variant B inside the running campaign. Emails and scenario channels track opens and clicks automatically, so a purchase goal is an addition. Weblayers have no automatic tracking, so you must define a goal, and a banner click is the usual starting point.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Value is the second lever, and it is the answer to the worry that optimizing for conversion will over-discount. Every variant starts with a value of 1. If you are testing a subscription banner with and without a 10% discount, set the no-discount variant to 2 and the discount variant to 1. Loomi then favors the no-discount banner, but only for customers who are likely to convert on it. Only the ratio matters: 2 and 1 behaves the same as 20 and 10.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The same lever works across channels, because Loomi scores each option as its value multiplied by the estimated chance of conversion and serves the highest score. Push notifications usually out-click email, but every push carries an opt-out risk. Give email a value of 2 and push a value of 1, and a customer with a 3% chance of clicking the email and a 5% chance of clicking the push gets the email (a score of 6 against 5). A mobile-first customer at 2% and 10% gets the push (4 against 10). Because both channels share one customer profile in Loomi, that decision happens without a data sync.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How To Prove It Beat Your A\/B Test<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the question that decides whether the capability is worth paying for, and the test design is built into the feature.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Keep a control group.<\/strong> Enable the comparative A\/B test and split traffic 80% to contextual personalization and 20% to a standard A\/B test of the same variants. Loomi gets enough data to learn quickly, and you keep a control large enough to read.<\/li>\n\n\n\n<li><strong>Wait for 10,000 decisions.<\/strong> Do not evaluate before at least 10,000 variant selections or delivered messages have accumulated. In a campaign delivering 10,000 emails a week, that means reading the last three weeks of a four-week run and discarding the first, when the model was still exploring.<\/li>\n\n\n\n<li><strong>Compare against the single best variant, not the average.<\/strong> Run the standard A\/B test to find the winning variant, then compare contextual personalization against that winner alone. Comparing against the average of all variants flatters the result, because the feature is designed to be best per person, not best on average.<\/li>\n\n\n\n<li><strong>Know the attribution window.<\/strong> A goal counts if it happens within 24 hours of an automatic scenario message, 2 hours of a batch send, or 1 hour of a weblayer being shown. These windows are fixed. The window starts when the message is delivered or the banner is served. That is why fixed delays between the decision node and the channel are recommended over dynamic send-time optimization, which would blur where the window begins.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Once the comparison is in, you pick the winner in the campaign settings: contextual personalization or one of the individual variants. That choice cannot be undone, so it is the last step. The <a href=\"https:\/\/documentation.bloomreach.com\/engagement\/docs\/evaluate-contextual-personalization\" target=\"_blank\" rel=\"noopener\">evaluation guide<\/a> walks through the funnel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>What It Needs From Your Data and Traffic<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Contextual personalization works best on always-on campaigns: abandoned cart, browse abandonment, welcome series, and other triggered lifecycle flows. The more decisions the model makes, the better it learns, and a one-off campaign stops before the learning can be applied. It is a poor fit for testing send timing in a one-off, for the same reason.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The traffic requirement is a formula rather than a fixed count: 100 \u00d7 number of contexts \u00d7 number of variants \u00f7 estimated conversion rate. A context is one distinct combination of the feature values you use, so three features with two values each make eight contexts. Twenty contexts, two variants, and a 20% conversion rate need an audience of about 20,000 customers. That formula is also why more granular contexts do not produce more accurate decisions. Splitting time of day into three groups (morning, afternoon, evening) learns faster than splitting it into 24 hours, and a feature with thousands of distinct values, such as product titles, starves the model of repeat patterns. Fewer, denser features win. If purchases are too rare to learn from at first, an intermediate goal such as add_to_cart or a product page view gets the model moving.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Where You Can Use Contextual Personalization<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can use contextual personalization on all of your channels to personalize every aspect of the customer journey: Weblayers, email campaigns, and every scenario channel, including mobile push, browser push, SMS, RCS, WhatsApp, and App Inbox.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Personalize Websites With Multiple Weblayer Variants<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Shape your customers&#8217; experience while visiting your website by showing content variants that are shaped by a <a href=\"https:\/\/www.bloomreach.com\/en\/blog\/single-customer-view-scv-overview\">unified customer profile<\/a>. Show special discounts, chosen by AI and recommended specifically for individual customers, to those looking for deals or highlight premium products to your high spenders. Because the model reads session activity, a visitor who has never logged in still gets a variant chosen for them rather than the default.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Personalize Your Email Campaigns<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Who said regular newsletters can&#8217;t be personalized? With contextual personalization, you can send the right email variant to the right customer, resulting in higher engagement and conversion rates.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Create Unique Customer Journeys at Scale<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">As a node in a scenario builder, you can add contextual personalization into any part of an automated journey to determine the best way to approach a customer. It sits where an A\/B split node would go, ahead of the channel variants, and the same node can choose between channels as well as between messages.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>bimago Wins With Contextual Personalization<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.bimago.com\/\" target=\"_blank\" rel=\"noopener\">bimago<\/a> is a growing brand in the interior decoration industry with long-standing experience. Since 2004, the company has been dedicated to helping customers create beautiful interiors.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As bimago&#8217;s customers increasingly looked for more personalized experiences, the company&#8217;s marketers began to rely even more heavily on A\/B testing to deliver these experiences. But A\/B testing allows you to understand what your audience prefers, and it does not always allow for your audience to see the portion of the test that was chosen as preferred.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.bloomreach.com\/en\/case-studies\/bimago-case-study\">bimago began to use contextual personalization<\/a> to offer its customers an optimal experience online. The company selected the best possible variant per visitor to show a website banner, product recommendation, or other web personalization feature to. It did this by analyzing the context of every visitor. These points of context include anything from the device being used by customers and the time of day to customer history and brand affinity.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The results? Quite impressive: bimago saw a <strong>44% increase in conversion rate<\/strong> of subscriptions on a website banner with test results when comparing contextual personalization to typical A\/B testing. That is the comparison described above, per-person selection against the A\/B version of the same banner, measured on the customers who saw each.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>United Fashion Group Turns Browsers Into Buyers<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.bloomreach.com\/en\/case-studies\/united-fashion-group\">United Fashion Group<\/a> did this with Topankovo, its footwear and accessories brand. Topankovo built a scratch-card weblayer with a hidden voucher and let contextual personalization choose which offer each visitor uncovered: Free shipping, 10% off, or 20% off. The audience was visitors who had viewed the same product several times, updated a cart without buying, or set a price alert.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Over one month, <strong>20.4% of the customers shown the weblayer scratched it off<\/strong>, and <strong>43.75% of those went on to buy with the offer within 48 hours<\/strong>. The offer each person saw was chosen for them, which is what turned an incentive that would otherwise have gone to everyone into one that went to the visitors who needed it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Contextual Personalization With Bloomreach<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Contextual personalization is one of the ways Loomi personalizes in real time across <a href=\"https:\/\/www.bloomreach.com\/en\/products\/marketing-automation\/web-personalization\">web<\/a>, email, and messaging, alongside <a href=\"https:\/\/www.bloomreach.com\/en\/products\/marketing-automation\/experiments-ab-testing\">experiments and A\/B testing<\/a> in the same workspace. Using different variants for different contexts to offer the most optimal messages, products, and customer experiences in general to your consumers outperforms A\/B testing in the long run. The 80\/20 control is how you see that on your own numbers rather than take it on trust.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All you have to do to get started is pick an always-on campaign with two variants you already argue about, set a goal that reflects revenue rather than clicks, and let the comparison run. <a href=\"https:\/\/www.bloomreach.com\/en\/request-demo\">Request a demo<\/a> to see how Loomi chooses the variant for each customer and reports the uplift against your A\/B winner. <\/p>\n\n\n<div id=\"faq-block-v1block_f6bfe540f1f0f04b38a4e2e9bb11a4ea\" class=\"faq-section-v1-container exclude_from_toc\">\n    <h3 class=\"section-title\">Frequently Asked Questions<\/h3>\n\n        <div\n        class=\"wd-faq-block-acf align wp-block-acf-faq-section-v1\" id=\"faq-block-v1block_f6bfe540f1f0f04b38a4e2e9bb11a4ea\"    >\n    \n        <div class=\"faq-section-v1-acf__innerblocks\">\n<div id=\"faq-section-v1-single-itemblock_5bdeb2abc52d141b7c5f44a3493c87da\" class=\"faq-section-v1-single-item-container\">\n    <div class=\"title-section\">\n        <p class=\"item-title\">Does contextual personalization replace A\/B testing?<\/p>\n        <span class=\"item-button\">\n            <svg width=\"18\" height=\"10\" viewBox=\"0 0 18 10\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n            <g>\n            <path\n                    d=\"M9.00004 9.22C8.72864 9.22 8.47352 9.11415 8.2815 8.92281L1.00718 1.64917C0.910834 1.55282 0.85791 1.42526 0.85791 1.28888C0.85791 1.15318 0.910834 1.02494 1.00718 0.929271C1.10353 0.832923 1.23109 0.779999 1.36679 0.779999C1.5025 0.779999 1.63073 0.832923 1.7264 0.929271L9.00004 8.20223L16.2737 0.929271C16.37 0.832923 16.4976 0.779999 16.6333 0.779999C16.769 0.779999 16.8972 0.832923 16.9929 0.929271C17.0893 1.02562 17.1422 1.15318 17.1422 1.28888C17.1422 1.42458 17.0893 1.55282 16.9929 1.64849L9.71927 8.92213C9.52793 9.11415 9.27213 9.22 9.00004 9.22Z\"\n                    fill=\"#019ACE\"\/>\n            <\/g>\n            <\/svg>\n        <\/span>\n    <\/div>\n\n    <div class=\"item-content\">\n        <div class=\"content-inner\">\n            <p>No. It runs alongside an A\/B test of the same variants. With Bloomreach, the recommended split is 80% of traffic to contextual personalization and 20% to a comparative A\/B test. The uplift is then measured against the single best-performing variant alone.\r\n<\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<div id=\"faq-section-v1-single-itemblock_8a10c1b09e0297118c301fcab0661d04\" class=\"faq-section-v1-single-item-container\">\n    <div class=\"title-section\">\n        <p class=\"item-title\">How much traffic does contextual personalization need?<\/p>\n        <span class=\"item-button\">\n            <svg width=\"18\" height=\"10\" viewBox=\"0 0 18 10\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n            <g>\n            <path\n                    d=\"M9.00004 9.22C8.72864 9.22 8.47352 9.11415 8.2815 8.92281L1.00718 1.64917C0.910834 1.55282 0.85791 1.42526 0.85791 1.28888C0.85791 1.15318 0.910834 1.02494 1.00718 0.929271C1.10353 0.832923 1.23109 0.779999 1.36679 0.779999C1.5025 0.779999 1.63073 0.832923 1.7264 0.929271L9.00004 8.20223L16.2737 0.929271C16.37 0.832923 16.4976 0.779999 16.6333 0.779999C16.769 0.779999 16.8972 0.832923 16.9929 0.929271C17.0893 1.02562 17.1422 1.15318 17.1422 1.28888C17.1422 1.42458 17.0893 1.55282 16.9929 1.64849L9.71927 8.92213C9.52793 9.11415 9.27213 9.22 9.00004 9.22Z\"\n                    fill=\"#019ACE\"\/>\n            <\/g>\n            <\/svg>\n        <\/span>\n    <\/div>\n\n    <div class=\"item-content\">\n        <div class=\"content-inner\">\n            <p>Enough for the model to see each context and variant combination repeatedly. The sizing formula is 100 \u00d7 contexts \u00d7 variants \u00f7 conversion rate, and results should not be evaluated until at least 10,000 variant selections have accumulated. Fewer, denser contexts lower the requirement.\r\n<\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<div id=\"faq-section-v1-single-itemblock_8b29d952841d04036dfb682ef2711d80\" class=\"faq-section-v1-single-item-container\">\n    <div class=\"title-section\">\n        <p class=\"item-title\">Does contextual personalization work for anonymous visitors?<\/p>\n        <span class=\"item-button\">\n            <svg width=\"18\" height=\"10\" viewBox=\"0 0 18 10\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n            <g>\n            <path\n                    d=\"M9.00004 9.22C8.72864 9.22 8.47352 9.11415 8.2815 8.92281L1.00718 1.64917C0.910834 1.55282 0.85791 1.42526 0.85791 1.28888C0.85791 1.15318 0.910834 1.02494 1.00718 0.929271C1.10353 0.832923 1.23109 0.779999 1.36679 0.779999C1.5025 0.779999 1.63073 0.832923 1.7264 0.929271L9.00004 8.20223L16.2737 0.929271C16.37 0.832923 16.4976 0.779999 16.6333 0.779999C16.769 0.779999 16.8972 0.832923 16.9929 0.929271C17.0893 1.02562 17.1422 1.15318 17.1422 1.28888C17.1422 1.42458 17.0893 1.55282 16.9929 1.64849L9.71927 8.92213C9.52793 9.11415 9.27213 9.22 9.00004 9.22Z\"\n                    fill=\"#019ACE\"\/>\n            <\/g>\n            <\/svg>\n        <\/span>\n    <\/div>\n\n    <div class=\"item-content\">\n        <div class=\"content-inner\">\n            <p>Yes. Session activity (device, traffic source, and current actions) is one of the six data groups the model reads, so a visitor with no account or email still receives a variant chosen from their live context rather than the default.\r\n<\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<div id=\"faq-section-v1-single-itemblock_92d1f840f9ed3a71a4b8ece77a0cc9c0\" class=\"faq-section-v1-single-item-container\">\n    <div class=\"title-section\">\n        <p class=\"item-title\">What is a contextual bandit?<\/p>\n        <span class=\"item-button\">\n            <svg width=\"18\" height=\"10\" viewBox=\"0 0 18 10\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n            <g>\n            <path\n                    d=\"M9.00004 9.22C8.72864 9.22 8.47352 9.11415 8.2815 8.92281L1.00718 1.64917C0.910834 1.55282 0.85791 1.42526 0.85791 1.28888C0.85791 1.15318 0.910834 1.02494 1.00718 0.929271C1.10353 0.832923 1.23109 0.779999 1.36679 0.779999C1.5025 0.779999 1.63073 0.832923 1.7264 0.929271L9.00004 8.20223L16.2737 0.929271C16.37 0.832923 16.4976 0.779999 16.6333 0.779999C16.769 0.779999 16.8972 0.832923 16.9929 0.929271C17.0893 1.02562 17.1422 1.15318 17.1422 1.28888C17.1422 1.42458 17.0893 1.55282 16.9929 1.64849L9.71927 8.92213C9.52793 9.11415 9.27213 9.22 9.00004 9.22Z\"\n                    fill=\"#019ACE\"\/>\n            <\/g>\n            <\/svg>\n        <\/span>\n    <\/div>\n\n    <div class=\"item-content\">\n        <div class=\"content-inner\">\n            <p>A contextual bandit is a machine-learning method for choosing between options when each choice has an uncertain payoff and the best choice depends on the situation. In marketing, the options are your message or offer variants, the situation is the customer&#8217;s context, and the payoff is the goal you define. It balances exploiting the variant that currently performs best with exploring the others so it keeps learning.\r\n<\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<div id=\"faq-section-v1-single-itemblock_49b3c6845cecb8b02f6181653aa0e3b4\" class=\"faq-section-v1-single-item-container\">\n    <div class=\"title-section\">\n        <p class=\"item-title\">Which channels support contextual personalization?<\/p>\n        <span class=\"item-button\">\n            <svg width=\"18\" height=\"10\" viewBox=\"0 0 18 10\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n            <g>\n            <path\n                    d=\"M9.00004 9.22C8.72864 9.22 8.47352 9.11415 8.2815 8.92281L1.00718 1.64917C0.910834 1.55282 0.85791 1.42526 0.85791 1.28888C0.85791 1.15318 0.910834 1.02494 1.00718 0.929271C1.10353 0.832923 1.23109 0.779999 1.36679 0.779999C1.5025 0.779999 1.63073 0.832923 1.7264 0.929271L9.00004 8.20223L16.2737 0.929271C16.37 0.832923 16.4976 0.779999 16.6333 0.779999C16.769 0.779999 16.8972 0.832923 16.9929 0.929271C17.0893 1.02562 17.1422 1.15318 17.1422 1.28888C17.1422 1.42458 17.0893 1.55282 16.9929 1.64849L9.71927 8.92213C9.52793 9.11415 9.27213 9.22 9.00004 9.22Z\"\n                    fill=\"#019ACE\"\/>\n            <\/g>\n            <\/svg>\n        <\/span>\n    <\/div>\n\n    <div class=\"item-content\">\n        <div class=\"content-inner\">\n            <p>Weblayers, email campaigns, and every scenario channel: Mobile push, browser push, SMS, RCS, WhatsApp, and App Inbox. Webhooks and ad audiences cannot be used as optimization targets because they do not track interactions automatically.\r\n<\/p>\n        <\/div>\n    <\/div>\n<\/div>\n\n<\/div>\n\n        <\/div>\n    \n            <script type=\"application\/ld+json\">\n        {\n            \"@context\": \"https:\/\/schema.org\",\n            \"@type\": \"FAQPage\",\n            \"mainEntity\": [\n                                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does contextual personalization replace A\/B testing?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. It runs alongside an A\/B test of the same variants. With Bloomreach, the recommended split is 80% of traffic to contextual personalization and 20% to a comparative A\/B test. The uplift is then measured against the single best-performing variant alone.\n\"\n                    }\n                },\n                                {\n                    \"@type\": \"Question\",\n                    \"name\": \"How much traffic does contextual personalization need?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Enough for the model to see each context and variant combination repeatedly. The sizing formula is 100 \u00d7 contexts \u00d7 variants \u00f7 conversion rate, and results should not be evaluated until at least 10,000 variant selections have accumulated. Fewer, denser contexts lower the requirement.\n\"\n                    }\n                },\n                                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does contextual personalization work for anonymous visitors?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Session activity (device, traffic source, and current actions) is one of the six data groups the model reads, so a visitor with no account or email still receives a variant chosen from their live context rather than the default.\n\"\n                    }\n                },\n                                {\n                    \"@type\": \"Question\",\n                    \"name\": \"What is a contextual bandit?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"A contextual bandit is a machine-learning method for choosing between options when each choice has an uncertain payoff and the best choice depends on the situation. In marketing, the options are your message or offer variants, the situation is the customer&#039;s context, and the payoff is the goal you define. It balances exploiting the variant that currently performs best with exploring the others so it keeps learning.\n\"\n                    }\n                },\n                                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Which channels support contextual personalization?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Weblayers, email campaigns, and every scenario channel: Mobile push, browser push, SMS, RCS, WhatsApp, and App Inbox. Webhooks and ad audiences cannot be used as optimization targets because they do not track interactions automatically.\n\"\n                    }\n                }\n                            ]\n        }\n        <\/script>\n        <\/div>\n","protected":false},"excerpt":{"rendered":"<p>To provide the best possible site experience for customers, you need to understand them. You need to know what&#8217;s important to them. Do they like hunting for sales? Do they want sustainable materials? Maybe they prefer exclusive or premium products? Most brands answer that question with an A\/B test, pick the variant that wins on [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":21344,"template":"","ew-regions":[],"ew-solutions":[],"ew-industries":[],"library_type":[513],"library_blog_tag":[371],"industry":[],"channel":[],"topic":[],"class_list":["post-22871","library","type-library","status-publish","has-post-thumbnail","hentry","library_type-blog","library_blog_tag-product-recommendations"],"acf":{"library_blog_banner_content":"","library_blog_banner_cta1_text":"","library_blog_banner_cta1_href":"","library_blog_banner_cta1_new_tab":false,"library_blog_banner_cta2_text":"","library_blog_banner_cta2_href":"","library_blog_banner_cta2_new_tab":false,"library_blog_banner_bg_color":"#EAF7FE","library_blog_banner_cta_text_color":"#FFF","library_blog_banner_cta_bg_color":"#019ACE","library_blog_banner_cta2_text_color":"#000","library_blog_banner_cta2_bg_color":"#FFF","library_blog_chatgpt_content":"","library_blog_chatgpt_cta_href":"","library_blog_chatgpt_cta_text":"Ask ChatGPT"},"_links":{"self":[{"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library\/22871","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library"}],"about":[{"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/types\/library"}],"author":[{"embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":4,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library\/22871\/revisions"}],"predecessor-version":[{"id":97030,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library\/22871\/revisions\/97030"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/media\/21344"}],"wp:attachment":[{"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/media?parent=22871"}],"wp:term":[{"taxonomy":"ew_regions","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/ew-regions?post=22871"},{"taxonomy":"ew_solutions","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/ew-solutions?post=22871"},{"taxonomy":"ew_industries","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/ew-industries?post=22871"},{"taxonomy":"library_type","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library_type?post=22871"},{"taxonomy":"library_blog_tag","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/library_blog_tag?post=22871"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/industry?post=22871"},{"taxonomy":"channel","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/channel?post=22871"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.bloomreach.com\/en\/wp-json\/wp\/v2\/topic?post=22871"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}