Don't take it Personally, it is Personalization

Rate this content

"Personalization" is right now one of the hottest buzzwords in the development world. Marketers, developers, and content creators evaluate the possibilities and alternatives to handle custom scenarios while offering powerful experiences to the users. Let's talk about personalization, the benefits, the challenges, and how we can manage and offer personalized experiences. We will see code examples using some of the features introduced in Next.js 12, the newest version of the framework, and connecting to Storyblok, a Headless CMS that offers a real-time visual editor.

22 min
21 Jun, 2022

Video Summary and Transcription

Personalization is the ability to offer exclusive experiences based on existing data. It is important to meet customer expectations and stay competitive. There are four types of personalization: explicit, implicit, interrupted, and seamless. Implementing personalized experiences involves using tools like Next.js and NetJS. Best practices include avoiding annoying users, testing strategies, and monitoring analytics.

Available in Español

1. Introduction to Personalization

Short description:

Hello, everyone. Now let's talk about personalization. Personalization is the ability to offer exclusive experiences to personas based on existing data. Today, we will discuss web personalization and its importance. Customer expectations have changed, and not offering personalized experiences would not meet their expectations. Additionally, if our competitors are offering personalized experiences and we are not, we won't get good results with sales, visitors, and customer engagement.

Hello, everyone. I hope you're enjoying the conference. Now it's time to talk a little bit about personalization.

First of all, I wanted to introduce myself. My name is Facundo Giuliani. I'm from Buenos Aires, Argentina. I'm also an organizer of the React Buenos Aires local meetup. Well, if you want to talk to me, I'm on Twitter. I'm Facundo Zurdo. We can keep in touch there.

Has it happened to you that when you go to a restaurant, for instance, the waiter refers to you by name or the waiter already knows what's your usual order. Or if you go to a certain shop, you see that the people working at the shop are analyzing to say that in some way, the customers, I mean, if you go by yourself to buy something, you're not going to have the same talk with the employee from the shop that a family of members will have because, I don't know, probably they are looking for something quickly, that they want to leave the shop quickly. But yeah, I mean, probably these different experiences that you will have, again, with the waiter or with the employee at the shop and et cetera, when this happens, I mean, when they are offering different experiences depending on the customers, we are talking about personalization. Personalization is the ability to offer exclusive experiences to personas based on existing data. So we are talking about personalization in real life to say that in some way.

What we are going to analyze today and to talk about is web personalization, which is the ability to deliver content granularly and offer exclusive experiences to personas based on existing data. So we mentioned the example of the waiter, the example of the shop when you go to buy some groceries for instance. But how we can analyze that or how we can see that in websites. So probably you experienced some scenarios, some personalized scenarios like getting target offers based on browsing behavior, based on what you are browsing, what you are seeing in your computer or on social networks, Instagram, Facebook, and etc. You are receiving target offers, I mean, personalized offers to you with products that may be interesting for you. That will be a case of web personalization. Another case of web personalization would be going to a certain media platform or you are reading news in the newspaper and you can see specific videos based on where you live. I mean, in the country that you live in, in the city that you live in, you get this personalized content that, again, probably will be more interesting to you than some generic content. So when this happens, we are talking about web personalization.

The question is, why is that important? I mean, why should we care about web personalization? Well, first of all, the customer expectations have changed. In the past, well, I mean, not only in the past, but also in the present, these real-time interactions that I was mentioning before, we are getting used to that. And so we want the same experiences when we are using a website, a web platform. So as the customers are used to these kind of behaviors or these kind of experiences, not offering them personalized experiences would not meet their expectations. So that's something that we should evaluate. Also related to the same case, if we are not offering personalized experiences and our competitors are doing that, well, we won't get good results with the sales, we won't get good results with the visitors, or we won't also get good results with the time that the customers are spending on our website.

2. Types and Benefits of Personalization

Short description:

If the customer or the user is happy, they will spend more time on our website. Offering personalized content to our customers and users will create better impressions. There are four types of personalization: explicit, implicit, interrupted, and seamless. Explicit personalization is based on criteria set by the visitors, while implicit personalization analyzes visitor behavior and context. Interrupted personalization surprises visitors with unexpected content, while seamless personalization integrates personalized content into the overall experience.

That's something that we should also consider. I mean, if the customer or the user is happy, they will spend more time on our website browsing the content, seeing what to do and etc. And of course, if we are talking about the brand or the company that we are working for, offering personalized content to our customers and users will get better impressions from them.

When we talk about personalization, we can differentiate types of personalization. I will mention four of them. The first two are explicit personalization and implicit personalization. The explicit personalization is when we customize the content according to certain criteria that is set by the visitors. This happens, for instance, when we enter to a website, and we ask the visitors to set certain details related to them. We ask them some personal details so we can identify them, and after that, we can offer personalized content based on the information that they share with us. And the implicit personalization would be when we are analyzing the behavior of our visitors or customers or the context of our visitors, of our users. For instance, the behavior of the customers, the user, would be the pages that they have visited in the past or the things that they have purchased in the past. So that's something that we can evaluate to offer in the future personal experiences for them, personalized experiences for them, but also the context, as we mentioned before, a context would be, for instance, the city where they are browsing our site or where they live, or I don't know, the weather that we can evaluate, the weather of the city where the person is browsing our website from.

The other two types of personalization would be the interrupted and the seamless. So interrupted personalization, we talk about that when we show something to the person that is browsing our website that they don't expect to see. That will be, for instance, a pop-up, a modal with information or with a suggestion. And the other type of personalization, seamless would be when the personalized content that we are offering to the users is an integral part of the experience. I mean, when we show this personal experience or we show the customized content in the middle of the of the website or the webpage that they are visiting. So they see this personalized content as part of the overall experience, right? I mean, the complete webpage.

3. Benefits and Challenges of Personalization

Short description:

Offering personalized experiences provides optimized landing pages and call to actions, better qualified leads, enhanced user experience, greater brand affirmative. Challenges include setting the scope, using a suitable database or content management system, managing data silos, and measuring the impact. Strategies involve collecting visitor data, creating visitor profiles, setting goals, and preparing a personalized experience strategy. A demo of a personalized experience is shown on an e-commerce platform.

So what are the benefits of offering personalized experience to our users? Seeing that from a company point of view or an organization point of view, we will get optimized landing pages and call to actions, because the users that will visit our website will be more focused on what they really want or what they really are interested in, and based on that, we will also get better qualified leads.

From the point of view of the visitor, we will enhance the user experience. I will enter to a website that is showing me content that I'm really interested into and that is treating me as the person that I am, right? I mean, I'm getting the content that I want to see, and not a general overview or we are not getting the same content for all the visitors of the website.

Finally, we will also get greater brand affirmative. The brand if they are offering personal experience to each person, I mean, like treating each person as an individual and caring about them, will get a better image and a better affirmative.

What are the challenges that we have to face when trying to create personal experiences? So the first of these challenges will be setting the scope of the personalized experiences that we want to offer. The scope would be defining the personas that we want to evaluate or the different personas that we will have in our website and creating experiences for this type of personas.

Another challenge would be the database or the content management system that we are going to use. These platforms should support the information that we need to store related to our visitors and the platform should offer us a good way of browsing this information or a good way of analyzing the data that we are storing so we can create these personalized experiences for the users.

Once we define the personas and we have the data related to them, we should take care of the data silos, because the way that we are dividing the users will limit us to say that in some way when we want to interact with the data and the way that we are going to define the methods that we will use to create this personalized experiences, so that's something that we should pay attention because if we are setting the wrong personas or the wrong types of users of our website, we it will get complicated to analyze the data and divide these different analytics that we are getting from our users and that will affect the way that we are managing our strategies to offer personalized content.

Finally, we have to measure the impact of the strategies that we are applying this. I mean after we are creating personalized experiences and we are getting certain different strategies related on how to get this personalized experiences, we should measure the impact. I mean the resource that we are getting from this person likes experiences and see if that's good or not or if we should change something or evaluate something that we are doing in a certain way and do that in a different way.

So, some strategies that we can use to create personalized experiences, I mean some steps that we should follow to say that in some way, we should collect the data from our visitors, we should ask the visitors for details, we should map their journeys, we should we could create cookies, we could track the pages that they are visiting, etc. I mean, the idea is to get the most, I mean, the great amount of details from the users so we can make better decisions in the future.

After that, we should create these visitors profile so we can structure the different types of users that we will have and then for these types of users, we can set the goals that we want to achieve related to these types of users from our company's point of view and what we want to offer to this different types of profiles of visitors.

And finally, we will need to prepare a strategy. I mean, after we know the different types of users or visitors that we have and the goals that we want to achieve related to these types of users, we should create a strategy to offer the personalized experience to them and to identify the users prioritize the users and of course get revenue or get good results based on that.

So, let me show you a short demo of a personalized experience. Here we have an e-commerce platform where the users can purchase different types of items. They can purchase sportswear or elegant clothing and we have a general catalog too. This is the homepage of our website where we show these white banners that shows certain discounts or offers for the users.

As you can see, this is a general offering. I mean, we are not offering any particular product category here. So, what we want to do now is if I visit one of the different categories that I have in the website, let's say sportswear, we are identifying our user as a person that is interested in sportswear. So the next time that the users go to our website and visit our homepage, what we are going to do is show, instead of the general offer, we will show this white banner offering discounts and about sportswear. So, I mean, we will take this category as the preferred for the user.

4. Personalized Banners and Next.js

Short description:

We identify users' interests based on the categories they visit and show personalized banners on subsequent visits. We use the Storyblock content management system, which offers a real-time visual editor and component-based organization. The pages are static, generated at build time using Next.js. Next.js also provides server-side rendering and functions that can be deployed in CDNs. Additionally, Next.js offers a middleware for custom logic and tasks before each request.

So, what we want to do now is if I visit one of the different categories that I have on the website, let's say sportswear, we are identifying our user as a person that is interested in sportswear. So the next time that the users go to our website and visit our homepage, what we are going to do is show, instead of the general offer, we will show this white banner offering discounts and about sportswear. So, I mean, we will take this category as the preferred for the user. So if they go now to elegant clothing, when they go to the homepage, they will still see this sportswear offering.

So to do that, this experience, we are using a content management system. We are using Storyblock content management system, headless content management system that offers a real-time visual editor where you can see the content that you are creating on how it is going to look like. And it offers you the possibility of organizing the content that you are consuming and using from your website in the form of components. So you can see that here in the visual editor, I'm selecting this component, this personalized content, and we have different variants. We have the general one with the call to action for the general offer that we saw before. But after that, we have other two variants related to the categories of products that we are offering. We have the sportswear, as we mentioned before, and the elegant. And as you can see, we are managing all the content related to the page inside Storyblog.

But the thing is that from the code of our application, we should grab one banner or the other, or we should show one banner or the other, and one thing that we should consider in the way that this project was created. These pages that we are visiting are static web pages. We generated them at build time using a static site generator. So what we are going to do is to generate all the static assets for all the pages of our website. The homepage, the different catalogs, and etc. And we should also create the static version of these personalized pages, showing the banner with the offering for the different types of users. For this demo, I used Next.js. As I mentioned before, Next.js is a framework that offers us the possibility of generating static content at build time. So that is what I did. Besides that, Next.js also offers server-side rendering in the case that we want to generate dynamic content from the server. But I also used Next.js because in the last version of Next.js we also have a couple of features that are interesting. One of them are the functions. These are scripts and functions that are executed server-side rendering code, but with the possibility of deploying them in the CDNs that Vercels offers. So, we don't have to worry about having server-side rendering on a specific server. We can deploy these functions in CDNs and have them closer to our users. And also we will have a middleware with Next.js. Next.js offers us the possibility of creating this Intermediate tier that executes custom logic and tasks before every request. So, what we are going to do with the middleware, I will go back to the demo, and I want to show you this is the page and this is the code of my application.

5. Implementing Personalized Experiences with NetJS

Short description:

We have all the code to generate the markup related to our pages and at build time generate the static assets. We will generate personalized versions of the pages, including a different banner for different types of users. The most important part is the middleware, which analyzes a cookie to show personalized versions of the homepage based on user type. Best practices include not annoying users with recommendations, testing strategies before deployment, monitoring analytics, and regularly revisiting strategies. Visit the provided links to learn more about personalization, NetJS, and Edge functions.

We have all the code to generate the markup related to our pages and at build time generate the static assets. Besides that, we have a function that will bring the information from the Content Management System related to each one of the pages and the content that we will use to generate the markup for the pages. And we will also generate the personalized versions of the pages.

So we will have the general home and we will also have each version of the homepage with a different banner for the different types of users. We do that bringing the personalized stories. We are bringing these pages from the Content Management System and we are looking for the ones that have personalized content. But the most important part that I want to show you here is the middleware. We can create a file called middleware in the pages folder in any NetJS project, and this middleware will analyze a cookie which is user type and based on that user type if we have that cookie from the user that is visiting our webpage we will show the personalized version of the homepage based on that user type. If we don't have the cookie for that user, we will create it based on the catalog page that the user is visiting if it is Sportswear or Elegant.

Again, this is a very simple example and a very simple website but I wanted to show you how we can implement personalized experiences and how we can get advantage of edge functions and middlewares for the experiences that we want to offer to our users.

Some final words, best practices that we should evaluate when creating personalized experiences. We shouldn't annoy the users with recommendations. That's something that we should have to consider, we have to offer personalized content but not annoying them with offers and etc. because the users will get angry because of that and they won't visit our website anymore. Besides that, we should test the strategies that we are creating and that we are implementing in our products before deploying that. I mean getting a good test period will give us a good picture of how our product will behave when we deploy it. We should monitor the analytics as we mentioned before. We should analyze how the users are behaving based on the strategies that we implemented to offer personalized experiences and besides that we should revisit the strategies regularly to see if they are working or not or if we are getting the results that we want to get or not.

Finally if you want to read about personalization and NetJS in deep you can visit the first link which is a tutorial that we have in the Storyblock Home official website. This is a tutorial on how to create a website with personalized experiences using NetJS and Edge functions. You can visit the second link to visit the NetJS technology hub that we have in Storyblock with other tutorials, code samples, videos and etc. to learn more about how to connect Storyblock and NetJS. Finally the last link you can visit that to learn more about Edge functions and this new feature that Vercel is offering in NetJS. Thank you very much, enjoy the conference and see you soon.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

React Summit 2022React Summit 2022
20 min
Routing in React 18 and Beyond
Top Content
Concurrent React and Server Components are changing the way we think about routing, rendering, and fetching in web applications. Next.js recently shared part of its vision to help developers adopt these new React features and take advantage of the benefits they unlock.In this talk, we’ll explore the past, present and future of routing in front-end applications and discuss how new features in React and Next.js can help us architect more performant and feature-rich applications.
TechLead Conference 2023TechLead Conference 2023
35 min
A Framework for Managing Technical Debt
Let’s face it: technical debt is inevitable and rewriting your code every 6 months is not an option. Refactoring is a complex topic that doesn't have a one-size-fits-all solution. Frontend applications are particularly sensitive because of frequent requirements and user flows changes. New abstractions, updated patterns and cleaning up those old functions - it all sounds great on paper, but it often fails in practice: todos accumulate, tickets end up rotting in the backlog and legacy code crops up in every corner of your codebase. So a process of continuous refactoring is the only weapon you have against tech debt.In the past three years, I’ve been exploring different strategies and processes for refactoring code. In this talk I will describe the key components of a framework for tackling refactoring and I will share some of the learnings accumulated along the way. Hopefully, this will help you in your quest of improving the code quality of your codebases.

React Summit 2023React Summit 2023
24 min
Debugging JS
As developers, we spend much of our time debugging apps - often code we didn't even write. Sadly, few developers have ever been taught how to approach debugging - it's something most of us learn through painful experience.  The good news is you _can_ learn how to debug effectively, and there's several key techniques and tools you can use for debugging JS and React apps.
React Advanced Conference 2022React Advanced Conference 2022
22 min
Monolith to Micro-Frontends
Top Content
Many companies worldwide are considering adopting Micro-Frontends to improve business agility and scale, however, there are many unknowns when it comes to what the migration path looks like in practice. In this talk, I will discuss the steps required to successfully migrate a monolithic React Application into a more modular decoupled frontend architecture.
React Advanced Conference 2023React Advanced Conference 2023
22 min
Power Fixing React Performance Woes
Next.js and other wrapping React frameworks provide great power in building larger applications. But with great power comes great performance responsibility - and if you don’t pay attention, it’s easy to add multiple seconds of loading penalty on all of your pages. Eek! Let’s walk through a case study of how a few hours of performance debugging improved both load and parse times for the Centered app by several hundred percent each. We’ll learn not just why those performance problems happen, but how to diagnose and fix them. Hooray, performance! ⚡️

Workshops on related topic

React Summit 2022React Summit 2022
173 min
Build a Headless WordPress App with Next.js and WPGraphQL
Top Content
In this workshop, you’ll learn how to build a Next.js app that uses Apollo Client to fetch data from a headless WordPress backend and use it to render the pages of your app. You’ll learn when you should consider a headless WordPress architecture, how to turn a WordPress backend into a GraphQL server, how to compose queries using the GraphiQL IDE, how to colocate GraphQL fragments with your components, and more.
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Data Fetching Strategies
Top Content
- Introduction- Prerequisites for the workshop- Fetching strategies: fundamentals- Fetching strategies – hands-on: fetch API, cache (static VS dynamic), revalidate, suspense (parallel data fetching)- Test your build and serve it on Vercel- Future: Server components VS Client components- Workshop easter egg (unrelated to the topic, calling out accessibility)- Wrapping up
React Summit Remote Edition 2021React Summit Remote Edition 2021
87 min
Building a Shopify App with React & Node
Top Content
Shopify merchants have a diverse set of needs, and developers have a unique opportunity to meet those needs building apps. Building an app can be tough work but Shopify has created a set of tools and resources to help you build out a seamless app experience as quickly as possible. Get hands on experience building an embedded Shopify app using the Shopify App CLI, Polaris and Shopify App Bridge.We’ll show you how to create an app that accesses information from a development store and can run in your local environment.
React Advanced Conference 2023React Advanced Conference 2023
102 min
Fetch, useEffect, React Query, SWR, what else?
In this workshop, first, we’ll go over the different ways you can consume APIs in React. Then, we’ll test each one by fetching content from a headless CMS (with both REST and GraphQL) and checking in detail how they work.
While there is no advanced React knowledge required, this is going to be a hands-on session, so you’ll need to clone a preconfigured GitHub repository and utilize your preferred React programming editor, like VS Code.
You will learn:- What diverse data fetching options there are in React- What are advantages and disadvantages of each- What are the typical use cases and when each strategy is more beneficial than others
React Summit 2023React Summit 2023
139 min
Create a Visually Editable Next.js Website Using React Bricks, With Blog and E-commerce
- React Bricks: why we built it, what it is and how it works- Create a free account- Create a new project with Next.js and Tailwind- Explore the directory structure- Anatomy of a Brick- Create a new Brick (Text-Image)- Add a title and description with RichText visual editing- Add an Image with visual editing- Add Sidebar controls to edit props (padding and image side)- Nesting Bricks using the Repeater component- Create an Image gallery brick- Publish on Netlify or Vercel- Page Types and Custom fields- Access Page meta values- Internationalization- How to reuse content across pages: Stories and Embeds- How to create an E-commerce with Products’ data from an external database and landing pages created visually in React Bricks- Advanced enterprise features: flexible permissions, locked structure, custom visual components
React Summit 2023React Summit 2023
71 min
Building Blazing-Fast Websites with Next.js and
Join us for a hands-on workshop where we'll show you how to level up your React skills to build a high-performance headless website using Next.js, Sanity, and the JAMstack architecture. No prior knowledge of Next.js or Sanity is required, making this workshop ideal for anyone familiar with React who wants to learn more about building dynamic, responsive websites.
In this workshop, we'll explore how Next.js, a React-based framework, can be used to build a static website with server-side rendering and dynamic routing. You'll learn how to use Sanity as a headless CMS to manage your website’s content, create custom page templates with Next.js, use APIs to integrate with the CMS, and deploy your website to production with Vercel.
By the end of this workshop, you will have a solid understanding of how Next.js and can be used together to create a high-performance, scalable, and flexible website.