# Personalize Foundations

### About this export

| Field | Value |
| --- | --- |
| **content_type** | course |
| **platform** | contentstack-academy |
| **source_url** | https://www.contentstack.com/academy/courses/personalize-foundations |
| **language** | en |
| **product_area** | personalize |
| **learning_path** | standalone |
| **course_id** | personalize-foundations |
| **slug** | personalize-foundations |
| **version** | 2026-03-01 |
| **last_updated** | 2026-04-28 |
| **status** | published |
| **keywords** | ["personalize"] |
| **summary_one_line** | In the Personalize Foundations course, you will explore the essentials of delivering tailored content to your audience through Contentstack's personalization features. The course covers the challenges of personalization,… |
| **total_duration_minutes** | 24 |
| **lessons_count** | 8 |
| **video_lessons_count** | 8 |
| **text_lessons_count** | 0 |
| **linked_learning_path** | standalone |
| **linked_assessment_ref** | LMS_UNCONFIGURED_COURSE_ASSESSMENT |
| **markdown_file_url** | /academy/md/courses/personalize-foundations.md |
| **generated_at** | 2026-04-28T06:55:48.555Z |
| **intended_audience** | [] |
| **prerequisites** | [] |
| **related_courses** | [] |

> **Academy MD v3** — companion `.md` for Ask AI. Quizzes and graded assessments are **LMS-only**; this file never contains answer keys.

## Course Overview

| Metadata | Value |
| --- | --- |
| Catalog duration | 24m 26s |
| Released (if known) | 2026-03-01 |
| Product area | personalize |

### Description

In the _Personalize Foundations_ course, you will explore the essentials of delivering tailored content to your audience through Contentstack's personalization features. The course covers the challenges of personalization, such as scalability and complexity, and presents a solution that balances simplicity and flexibility. You'll learn how to set up projects, configure segmented experiences, run A/B tests, and leverage attributes and audiences to deliver the right message at the right time. With practical guidance on creating dynamic user experiences, this course aims to improve engagement, conversions, and customer loyalty through effective personalization.

### Learning objectives

1. Follow each lesson in order.
2. Practice in a training stack using placeholders **YOUR_STACK_API_KEY** and **YOUR_DELIVERY_TOKEN** in local `.env` files only.
3. Validate API responses against the official documentation.

### Topics covered

personalize

## Course structure

```text
personalize-foundations/
├── 01-about-personalize · video · 279s
├── 02-creating-a-personalize-project-and-experiences · video · 177s
├── 03-working-with-attributes · video · 162s
├── 04-creating-audiences · video · 151s
├── 05-creating-events-for-a-b-tests · video · 119s
├── 06-adding-audiences-to-experiences · video · 229s
├── 07-working-with-entry-variants · video · 196s
├── 08-a-b-testing-an-audience-impersonation · video · 153s
```

## Lessons

### Lesson 01 — About Personalize

<!-- ai_metadata: {"lesson_id":"01","type":"video","duration_seconds":279,"video_url":"https://cdn.jwplayer.com/previews/S9WCKPOo","thumbnail_url":"https://cdn.jwplayer.com/v2/media/S9WCKPOo/poster.jpg?width=720","topics":["About","Personalize"]} -->

#### Video details

#### At a glance

- **Title:** About Personalize
- **Duration:** 4m 39s
- **Media link:** https://cdn.jwplayer.com/previews/S9WCKPOo
- **Publish date (unix):** 1727654555

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113530 kbps
- video/mp4 · 180p · 180p · 199432 kbps
- video/mp4 · 270p · 270p · 259565 kbps
- video/mp4 · 360p · 360p · 301123 kbps
- video/mp4 · 406p · 406p · 342280 kbps
- video/mp4 · 540p · 540p · 480011 kbps
- video/mp4 · 720p · 720p · 737824 kbps
- video/mp4 · 1080p · 1080p · 1759812 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/S9WCKPOo-120.vtt`

#### Transcript

Let's talk about personalization. Now more than ever, it's incredibly important to deliver experiences that are uniquely tailored to the individual person interacting with your brand. But here's the thing, there's a lot of challenges to implementing personalization and maybe, even more importantly, making that implementation scalable. There's definitely solutions out there, but oftentimes they're either too complex and expensive or they don't deliver enough value. And the truth is, customers love that personal touch and at ContentStack, we've developed a solution that eliminates many of the challenges I just mentioned. Now there's a common misconception about personalization. It's not just about putting someone's name at the top of a website header when they return back to your site. It goes far beyond that. Personalization means delivering the right message at the right time to the right person. It's about providing value that feels specific to each individual's needs. In the end, successful personalization drives loyalty, increases conversion rates, and elevates your brand. It's not just about selling more, it's about building deeper relationships with your customers. And that, ultimately, is what makes personalization so powerful. Personalize, ContentStack's personalization solution, is made up of several components that deliver on the complexity required to accommodate a variety of experiences to a variety of customers in a simple and intuitive manner. Throughout this course, we'll dive into detail on each element required to create a personalized experience. Before we do, I just want to level set and review some terminology, give a quick explanation of some of the personalized features that we'll be using and how they relate to one another. There are several steps you need to take in order to create a successful personalized project. First, you want to establish what type of experience you want to create. You can create either a segmented experience or an A-B test. A segmented experience allows you to serve different content to users based on attributes that you can configure. More on that in a bit. A-B tests give you the ability to run experiments by delivering two or more variations of content to different groups. Now, I just mentioned that for your segmented experiences, you can serve different content to users based on attributes. So what's an attribute? In Personalize, you have the ability to use preset attributes, things like location, date, or operating system. Or you can create custom attributes, which would be user-defined characteristics. In the case of Compass Travel, this might include attributes like a business traveler, a loyalty member, or an adventure seeker. An attribute gives you the ability to uniquely position content that suits their behavior and interests. Once you establish those attributes, you can associate them to users through a personalized feature called Audiences. Simply put, Audiences are dynamic user segments based on common attributes. Once you have an experience, attributes created, and then have those attributes grouped into Audiences, you're now ready to create variants of your entries. That means you can change the content in an entry based on the factors configured for each audience. Before we move on and look at how we can do this in detail, the last thing I'll touch on is something called Events, which are unique to A-B Tests. Events play a critical role in evaluating the success of your A-B Tests by capturing and tracking every interaction a user makes. By monitoring specific user actions, such as clicks, form submissions, or video plays, you can effectively assess which variant of your experience delivers better performance. Now that we've laid the foundation of terminology for the different components that make up Content Stack Personalize, let's dig deeper and explore how we can actually implement them.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:05.100
Let's talk about personalization.

2
00:00:05.100 --> 00:00:10.400
Now more than ever, it's incredibly important to deliver experiences that are uniquely tailored

3
00:00:10.400 --> 00:00:14.120
to the individual person interacting with your brand.

4
00:00:14.120 --> 00:00:18.560
But here's the thing, there's a lot of challenges to implementing personalization

5
00:00:18.560 --> 00:00:24.520
and maybe, even more importantly, making that implementation scalable.

6
00:00:24.520 --> 00:00:28.920
There's definitely solutions out there, but oftentimes they're either too complex

7
00:00:28.920 --> 00:00:32.760
and expensive or they don't deliver enough value.

8
00:00:32.760 --> 00:00:38.440
And the truth is, customers love that personal touch and at ContentStack, we've developed

9
00:00:38.440 --> 00:00:43.440
a solution that eliminates many of the challenges I just mentioned.

10
00:00:43.440 --> 00:00:47.600
Now there's a common misconception about personalization.

11
00:00:47.600 --> 00:00:51.800
It's not just about putting someone's name at the top of a website header when they return

12
00:00:51.800 --> 00:00:53.400
back to your site.

13
00:00:53.400 --> 00:00:56.640
It goes far beyond that.

14
00:00:56.640 --> 00:01:01.960
Personalization means delivering the right message at the right time to the right person.

15
00:01:01.960 --> 00:01:07.680
It's about providing value that feels specific to each individual's needs.

16
00:01:07.680 --> 00:01:14.400
In the end, successful personalization drives loyalty, increases conversion rates, and elevates

17
00:01:14.400 --> 00:01:15.920
your brand.

18
00:01:15.920 --> 00:01:21.320
It's not just about selling more, it's about building deeper relationships with your

19
00:01:21.320 --> 00:01:22.320
customers.

20
00:01:22.320 --> 00:01:27.640
And that, ultimately, is what makes personalization so powerful.

21
00:01:27.640 --> 00:01:33.760
Personalize, ContentStack's personalization solution, is made up of several components

22
00:01:33.760 --> 00:01:39.880
that deliver on the complexity required to accommodate a variety of experiences to a

23
00:01:39.880 --> 00:01:44.640
variety of customers in a simple and intuitive manner.

24
00:01:44.640 --> 00:01:50.020
Throughout this course, we'll dive into detail on each element required to create

25
00:01:50.020 --> 00:01:51.840
a personalized experience.

26
00:01:52.360 --> 00:01:58.360
Before we do, I just want to level set and review some terminology, give a quick explanation

27
00:01:58.360 --> 00:02:03.080
of some of the personalized features that we'll be using and how they relate to one

28
00:02:03.080 --> 00:02:04.080
another.

29
00:02:04.080 --> 00:02:08.760
There are several steps you need to take in order to create a successful personalized

30
00:02:08.760 --> 00:02:09.760
project.

31
00:02:09.760 --> 00:02:15.280
First, you want to establish what type of experience you want to create.

32
00:02:15.280 --> 00:02:20.000
You can create either a segmented experience or an A-B test.

33
00:02:20.000 --> 00:02:26.180
A segmented experience allows you to serve different content to users based on attributes

34
00:02:26.180 --> 00:02:28.180
that you can configure.

35
00:02:28.180 --> 00:02:29.860
More on that in a bit.

36
00:02:29.860 --> 00:02:36.500
A-B tests give you the ability to run experiments by delivering two or more variations of content

37
00:02:36.500 --> 00:02:37.980
to different groups.

38
00:02:37.980 --> 00:02:43.820
Now, I just mentioned that for your segmented experiences, you can serve different content

39
00:02:43.820 --> 00:02:47.000
to users based on attributes.

40
00:02:47.000 --> 00:02:49.420
So what's an attribute?

41
00:02:49.420 --> 00:02:55.300
In Personalize, you have the ability to use preset attributes, things like location, date,

42
00:02:55.300 --> 00:02:56.800
or operating system.

43
00:02:56.800 --> 00:03:03.740
Or you can create custom attributes, which would be user-defined characteristics.

44
00:03:03.740 --> 00:03:08.940
In the case of Compass Travel, this might include attributes like a business traveler,

45
00:03:08.940 --> 00:03:12.660
a loyalty member, or an adventure seeker.

46
00:03:12.660 --> 00:03:18.280
An attribute gives you the ability to uniquely position content that suits their behavior

47
00:03:18.280 --> 00:03:20.080
and interests.

48
00:03:20.080 --> 00:03:24.880
Once you establish those attributes, you can associate them to users through a personalized

49
00:03:24.880 --> 00:03:28.080
feature called Audiences.

50
00:03:28.080 --> 00:03:34.280
Simply put, Audiences are dynamic user segments based on common attributes.

51
00:03:34.280 --> 00:03:39.320
Once you have an experience, attributes created, and then have those attributes grouped into

52
00:03:39.320 --> 00:03:44.800
Audiences, you're now ready to create variants of your entries.

53
00:03:44.800 --> 00:03:50.200
That means you can change the content in an entry based on the factors configured for

54
00:03:50.200 --> 00:03:52.000
each audience.

55
00:03:52.000 --> 00:03:56.940
Before we move on and look at how we can do this in detail, the last thing I'll touch

56
00:03:56.940 --> 00:04:01.960
on is something called Events, which are unique to A-B Tests.

57
00:04:01.960 --> 00:04:07.520
Events play a critical role in evaluating the success of your A-B Tests by capturing

58
00:04:07.520 --> 00:04:11.520
and tracking every interaction a user makes.

59
00:04:11.520 --> 00:04:17.200
By monitoring specific user actions, such as clicks, form submissions, or video plays,

60
00:04:17.200 --> 00:04:23.000
you can effectively assess which variant of your experience delivers better performance.

61
00:04:23.000 --> 00:04:27.720
Now that we've laid the foundation of terminology for the different components that make up

62
00:04:27.720 --> 00:04:34.120
Content Stack Personalize, let's dig deeper and explore how we can actually implement them.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] Let's talk about personalization.
[00:05] Now more than ever, it's incredibly important to deliver experiences that are uniquely tailored
[00:10] to the individual person interacting with your brand.
[00:14] But here's the thing, there's a lot of challenges to implementing personalization
[00:18] and maybe, even more importantly, making that implementation scalable.
[00:24] There's definitely solutions out there, but oftentimes they're either too complex
[00:28] and expensive or they don't deliver enough value.
[00:32] And the truth is, customers love that personal touch and at ContentStack, we've developed
[00:38] a solution that eliminates many of the challenges I just mentioned.
[00:43] Now there's a common misconception about personalization.
[00:47] It's not just about putting someone's name at the top of a website header when they return
[00:51] back to your site.
[00:53] It goes far beyond that.
[00:56] Personalization means delivering the right message at the right time to the right person.
[01:01] It's about providing value that feels specific to each individual's needs.
[01:07] In the end, successful personalization drives loyalty, increases conversion rates, and elevates
[01:14] your brand.
[01:15] It's not just about selling more, it's about building deeper relationships with your
[01:21] customers.
[01:22] And that, ultimately, is what makes personalization so powerful.
[01:27] Personalize, ContentStack's personalization solution, is made up of several components
[01:33] that deliver on the complexity required to accommodate a variety of experiences to a
[01:39] variety of customers in a simple and intuitive manner.
[01:44] Throughout this course, we'll dive into detail on each element required to create
[01:50] a personalized experience.
[01:52] Before we do, I just want to level set and review some terminology, give a quick explanation
[01:58] of some of the personalized features that we'll be using and how they relate to one
[02:03] another.
[02:04] There are several steps you need to take in order to create a successful personalized
[02:08] project.
[02:09] First, you want to establish what type of experience you want to create.
[02:15] You can create either a segmented experience or an A-B test.
[02:20] A segmented experience allows you to serve different content to users based on attributes
[02:26] that you can configure.
[02:28] More on that in a bit.
[02:29] A-B tests give you the ability to run experiments by delivering two or more variations of content
[02:36] to different groups.
[02:37] Now, I just mentioned that for your segmented experiences, you can serve different content
[02:43] to users based on attributes.
[02:47] So what's an attribute?
[02:49] In Personalize, you have the ability to use preset attributes, things like location, date,
[02:55] or operating system.
[02:56] Or you can create custom attributes, which would be user-defined characteristics.
[03:03] In the case of Compass Travel, this might include attributes like a business traveler,
[03:08] a loyalty member, or an adventure seeker.
[03:12] An attribute gives you the ability to uniquely position content that suits their behavior
[03:18] and interests.
[03:20] Once you establish those attributes, you can associate them to users through a personalized
[03:24] feature called Audiences.
[03:28] Simply put, Audiences are dynamic user segments based on common attributes.
[03:34] Once you have an experience, attributes created, and then have those attributes grouped into
[03:39] Audiences, you're now ready to create variants of your entries.
[03:44] That means you can change the content in an entry based on the factors configured for
[03:50] each audience.
[03:52] Before we move on and look at how we can do this in detail, the last thing I'll touch
[03:56] on is something called Events, which are unique to A-B Tests.
[04:01] Events play a critical role in evaluating the success of your A-B Tests by capturing
[04:07] and tracking every interaction a user makes.
[04:11] By monitoring specific user actions, such as clicks, form submissions, or video plays,
[04:17] you can effectively assess which variant of your experience delivers better performance.
```

#### Key takeaways

- Connect **About Personalize** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 02 — Creating a Personalize Project and Experiences

<!-- ai_metadata: {"lesson_id":"02","type":"video","duration_seconds":177,"video_url":"https://cdn.jwplayer.com/previews/t4HUHTEx","thumbnail_url":"https://cdn.jwplayer.com/v2/media/t4HUHTEx/poster.jpg?width=720","topics":["Creating","Personalize","Project","and","Experiences"]} -->

#### Video details

#### At a glance

- **Title:** Creating A Personalize Project And Experiences
- **Duration:** 2m 57s
- **Media link:** https://cdn.jwplayer.com/previews/t4HUHTEx
- **Publish date (unix):** 1727654555

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113822 kbps
- video/mp4 · 180p · 180p · 135885 kbps
- video/mp4 · 270p · 270p · 148512 kbps
- video/mp4 · 360p · 360p · 159906 kbps
- video/mp4 · 406p · 406p · 166453 kbps
- video/mp4 · 540p · 540p · 188064 kbps
- video/mp4 · 720p · 720p · 216660 kbps
- video/mp4 · 1080p · 1080p · 286915 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/t4HUHTEx-120.vtt`

#### Transcript

The first thing that you need to do to start working with Personalize in Content Stack is create a new Personalize project. To create a project, make sure you're at the Organization level of Content Stack. Once you are, click the Personalize button on the left side. This will bring you directly to your Personalize projects. Here, we want to create a new project. To do that, click the Create New Personalize Project button. This will open a window where you can provide a name and a description. It's important to note you can only assign one Personalize project per stack. I'll name this Compass Travel Personalization. Give it a description of Compass Travel and assign this stack. In my case, it's the Compass Personalize Demo stack. Once you're happy with the settings, click the Create Project button. Once your project is created, you're ready to start working with the features of Personalize. To do this, I'll click the Personalize project I just created, which will bring you into the project itself with the first option of Experiences Active. Notice on the left you have access to other features as well. Audiences, Attributes, Events, and of course the Project Settings. Our focus here will be creating new experiences. To do that, click the New Experience button at the bottom. Next, you'll have to decide if you want an A-B test experience or a segmented experience. We'll look at both, but for now, let's choose segmented. Remember, a segmented experience gives you the ability to create highly targeted, individualized content experiences for distinct audience segments. They're ideal for scenarios where you have a diverse audience with varied needs that requires a high level of content customization. Let's give it a name of Personalize and add a description if you'd like. Then click Save General Details. If you look on the left, there's a Configuration option. Here you'll notice we can add variants to this experience. We don't have any at the moment, likewise with Analytics, so we'll return back here later in the course. Before we move on, let's also set up an A-B test experience. Click the Back button in the top left to return to the previous screen. In the top right, click New Experience, but this time choose the A-B test experience. You get the same dialog box where you have to add a name and a description. Here I'll name it A-B Testing. I'll then click the Save General Details button.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:10.640
The first thing that you need to do to start working with Personalize in Content Stack

2
00:00:10.640 --> 00:00:13.900
is create a new Personalize project.

3
00:00:13.900 --> 00:00:19.600
To create a project, make sure you're at the Organization level of Content Stack.

4
00:00:19.600 --> 00:00:23.640
Once you are, click the Personalize button on the left side.

5
00:00:23.640 --> 00:00:26.760
This will bring you directly to your Personalize projects.

6
00:00:26.760 --> 00:00:30.160
Here, we want to create a new project.

7
00:00:30.160 --> 00:00:33.800
To do that, click the Create New Personalize Project button.

8
00:00:33.800 --> 00:00:38.120
This will open a window where you can provide a name and a description.

9
00:00:38.120 --> 00:00:43.520
It's important to note you can only assign one Personalize project per stack.

10
00:00:43.520 --> 00:00:47.280
I'll name this Compass Travel Personalization.

11
00:00:47.280 --> 00:00:51.600
Give it a description of Compass Travel and assign this stack.

12
00:00:51.600 --> 00:00:55.840
In my case, it's the Compass Personalize Demo stack.

13
00:00:55.840 --> 00:01:00.320
Once you're happy with the settings, click the Create Project button.

14
00:01:00.320 --> 00:01:05.560
Once your project is created, you're ready to start working with the features of Personalize.

15
00:01:05.560 --> 00:01:11.200
To do this, I'll click the Personalize project I just created, which will bring you into

16
00:01:11.200 --> 00:01:17.000
the project itself with the first option of Experiences Active.

17
00:01:17.000 --> 00:01:20.960
Notice on the left you have access to other features as well.

18
00:01:20.960 --> 00:01:26.360
Audiences, Attributes, Events, and of course the Project Settings.

19
00:01:26.360 --> 00:01:30.080
Our focus here will be creating new experiences.

20
00:01:30.080 --> 00:01:33.320
To do that, click the New Experience button at the bottom.

21
00:01:33.320 --> 00:01:39.440
Next, you'll have to decide if you want an A-B test experience or a segmented experience.

22
00:01:39.440 --> 00:01:43.120
We'll look at both, but for now, let's choose segmented.

23
00:01:43.120 --> 00:01:49.480
Remember, a segmented experience gives you the ability to create highly targeted, individualized

24
00:01:49.480 --> 00:01:53.760
content experiences for distinct audience segments.

25
00:01:53.760 --> 00:01:59.040
They're ideal for scenarios where you have a diverse audience with varied needs that

26
00:01:59.040 --> 00:02:03.120
requires a high level of content customization.

27
00:02:03.120 --> 00:02:07.560
Let's give it a name of Personalize and add a description if you'd like.

28
00:02:07.560 --> 00:02:10.240
Then click Save General Details.

29
00:02:10.240 --> 00:02:13.760
If you look on the left, there's a Configuration option.

30
00:02:13.760 --> 00:02:17.300
Here you'll notice we can add variants to this experience.

31
00:02:17.300 --> 00:02:22.580
We don't have any at the moment, likewise with Analytics, so we'll return back here

32
00:02:22.580 --> 00:02:24.260
later in the course.

33
00:02:24.260 --> 00:02:28.940
Before we move on, let's also set up an A-B test experience.

34
00:02:28.940 --> 00:02:32.700
Click the Back button in the top left to return to the previous screen.

35
00:02:32.700 --> 00:02:39.980
In the top right, click New Experience, but this time choose the A-B test experience.

36
00:02:39.980 --> 00:02:44.620
You get the same dialog box where you have to add a name and a description.

37
00:02:44.620 --> 00:02:47.700
Here I'll name it A-B Testing.

38
00:02:47.700 --> 00:02:50.700
I'll then click the Save General Details button.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] The first thing that you need to do to start working with Personalize in Content Stack
[00:10] is create a new Personalize project.
[00:13] To create a project, make sure you're at the Organization level of Content Stack.
[00:19] Once you are, click the Personalize button on the left side.
[00:23] This will bring you directly to your Personalize projects.
[00:26] Here, we want to create a new project.
[00:30] To do that, click the Create New Personalize Project button.
[00:33] This will open a window where you can provide a name and a description.
[00:38] It's important to note you can only assign one Personalize project per stack.
[00:43] I'll name this Compass Travel Personalization.
[00:47] Give it a description of Compass Travel and assign this stack.
[00:51] In my case, it's the Compass Personalize Demo stack.
[00:55] Once you're happy with the settings, click the Create Project button.
[01:00] Once your project is created, you're ready to start working with the features of Personalize.
[01:05] To do this, I'll click the Personalize project I just created, which will bring you into
[01:11] the project itself with the first option of Experiences Active.
[01:17] Notice on the left you have access to other features as well.
[01:20] Audiences, Attributes, Events, and of course the Project Settings.
[01:26] Our focus here will be creating new experiences.
[01:30] To do that, click the New Experience button at the bottom.
[01:33] Next, you'll have to decide if you want an A-B test experience or a segmented experience.
[01:39] We'll look at both, but for now, let's choose segmented.
[01:43] Remember, a segmented experience gives you the ability to create highly targeted, individualized
[01:49] content experiences for distinct audience segments.
[01:53] They're ideal for scenarios where you have a diverse audience with varied needs that
[01:59] requires a high level of content customization.
[02:03] Let's give it a name of Personalize and add a description if you'd like.
[02:07] Then click Save General Details.
[02:10] If you look on the left, there's a Configuration option.
[02:13] Here you'll notice we can add variants to this experience.
[02:17] We don't have any at the moment, likewise with Analytics, so we'll return back here
[02:22] later in the course.
[02:24] Before we move on, let's also set up an A-B test experience.
[02:28] Click the Back button in the top left to return to the previous screen.
[02:32] In the top right, click New Experience, but this time choose the A-B test experience.
[02:39] You get the same dialog box where you have to add a name and a description.
[02:44] Here I'll name it A-B Testing.
[02:47] I'll then click the Save General Details button.
```

#### Key takeaways

- Connect **Creating a Personalize Project and Experiences** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 03 — Working with Attributes

<!-- ai_metadata: {"lesson_id":"03","type":"video","duration_seconds":162,"video_url":"https://cdn.jwplayer.com/previews/RcVjZyCA","thumbnail_url":"https://cdn.jwplayer.com/v2/media/RcVjZyCA/poster.jpg?width=720","topics":["Working","with","Attributes"]} -->

#### Video details

#### At a glance

- **Title:** Working With Attributes
- **Duration:** 2m 42s
- **Media link:** https://cdn.jwplayer.com/previews/RcVjZyCA
- **Publish date (unix):** 1727659471

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113668 kbps
- video/mp4 · 180p · 180p · 175263 kbps
- video/mp4 · 270p · 270p · 220411 kbps
- video/mp4 · 360p · 360p · 260386 kbps
- video/mp4 · 406p · 406p · 294806 kbps
- video/mp4 · 540p · 540p · 410759 kbps
- video/mp4 · 720p · 720p · 642371 kbps
- video/mp4 · 1080p · 1080p · 1563618 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/RcVjZyCA-120.vtt`

#### Transcript

Attributes define key characteristics of your users and there's two types of attributes in Personalize. Preset attributes and custom attributes. Preset attributes are predefined user characteristics that represent common user traits across all visitors. Traits like country, region, and city give you the ability to offer content to specific users in a geography. For example, you might want to promote content for a local attraction in the city where the user is visiting from. If they're in New York City, you might want to showcase a tour of Manhattan, tickets to the Statue of Liberty, or dining reservations in Soho. By identifying these attributes, you can group users into distinct audience segments, allowing you to tailor content and deliver more personalized experiences. Custom attributes, on the other hand, are characteristics you define to improve audience targeting. They let you capture visitor details that preset attributes don't, allowing for more precise personalization. Once you've created a custom attribute, you'll need to collect data for it, which can be done using the Personalize Edge SDK or API, as well as tools like Google Tag Manager or custom data platform integrations. This flexibility helps you create specific user segments and delivers personalized experiences, boosting engagement and conversions. Let's take a look at how we can create a custom attribute. On the left-hand side, click the Attributes button to open the Attributes screen. Here, you'll see all the preset attributes we discussed a moment ago. Of course, our interest is in creating a new attribute, so we'll click that button in the top right-hand corner. Enter a name of Travel Type and an attribute key of Travel Underscore Type. Enter a description if you'd like, and then click Save. Once it's done saving, you'll see your custom attribute appear in the list. On the right side, under the Actions column, you can either edit the attribute, which will return you to the previous window where you could rename the attribute or the attribute key, and modify the description. The other option is to delete the attribute if you wish. Once you have your attributes set up, it's time to add them to an audience.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:05.520
Attributes define key characteristics of your users and there's two types of

2
00:00:05.520 --> 00:00:10.680
attributes in Personalize. Preset attributes and custom attributes.

3
00:00:10.680 --> 00:00:16.640
Preset attributes are predefined user characteristics that represent common

4
00:00:16.640 --> 00:00:23.360
user traits across all visitors. Traits like country, region, and city give you

5
00:00:23.360 --> 00:00:29.120
the ability to offer content to specific users in a geography. For example, you

6
00:00:29.120 --> 00:00:33.360
might want to promote content for a local attraction in the city where the

7
00:00:33.360 --> 00:00:38.720
user is visiting from. If they're in New York City, you might want to showcase a

8
00:00:38.720 --> 00:00:44.680
tour of Manhattan, tickets to the Statue of Liberty, or dining reservations in Soho.

9
00:00:44.680 --> 00:00:50.320
By identifying these attributes, you can group users into distinct audience

10
00:00:50.320 --> 00:00:55.400
segments, allowing you to tailor content and deliver more personalized

11
00:00:55.400 --> 00:01:01.280
experiences. Custom attributes, on the other hand, are characteristics you define

12
00:01:01.280 --> 00:01:07.360
to improve audience targeting. They let you capture visitor details that preset

13
00:01:07.360 --> 00:01:13.560
attributes don't, allowing for more precise personalization. Once you've

14
00:01:13.560 --> 00:01:18.320
created a custom attribute, you'll need to collect data for it, which can be done

15
00:01:18.320 --> 00:01:24.640
using the Personalize Edge SDK or API, as well as tools like Google Tag Manager or

16
00:01:24.680 --> 00:01:30.760
custom data platform integrations. This flexibility helps you create specific

17
00:01:30.760 --> 00:01:36.480
user segments and delivers personalized experiences, boosting engagement and

18
00:01:36.480 --> 00:01:42.860
conversions. Let's take a look at how we can create a custom attribute. On the

19
00:01:42.860 --> 00:01:47.240
left-hand side, click the Attributes button to open the

20
00:01:47.240 --> 00:01:51.960
Attributes screen. Here, you'll see all the preset attributes we discussed a

21
00:01:52.160 --> 00:01:57.880
moment ago. Of course, our interest is in creating a new attribute, so we'll click

22
00:01:57.880 --> 00:02:03.360
that button in the top right-hand corner. Enter a name of Travel Type and an

23
00:02:03.360 --> 00:02:08.400
attribute key of Travel Underscore Type. Enter a description if you'd like, and

24
00:02:08.400 --> 00:02:14.000
then click Save. Once it's done saving, you'll see your custom attribute appear

25
00:02:14.000 --> 00:02:18.920
in the list. On the right side, under the Actions column, you can either edit the

26
00:02:18.960 --> 00:02:23.040
attribute, which will return you to the previous window where you could rename

27
00:02:23.040 --> 00:02:28.680
the attribute or the attribute key, and modify the description. The other option

28
00:02:28.680 --> 00:02:33.880
is to delete the attribute if you wish. Once you have your attributes set up,

29
00:02:33.880 --> 00:02:38.640
it's time to add them to an audience.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] Attributes define key characteristics of your users and there's two types of
[00:05] attributes in Personalize. Preset attributes and custom attributes.
[00:10] Preset attributes are predefined user characteristics that represent common
[00:16] user traits across all visitors. Traits like country, region, and city give you
[00:23] the ability to offer content to specific users in a geography. For example, you
[00:29] might want to promote content for a local attraction in the city where the
[00:33] user is visiting from. If they're in New York City, you might want to showcase a
[00:38] tour of Manhattan, tickets to the Statue of Liberty, or dining reservations in Soho.
[00:44] By identifying these attributes, you can group users into distinct audience
[00:50] segments, allowing you to tailor content and deliver more personalized
[00:55] experiences. Custom attributes, on the other hand, are characteristics you define
[01:01] to improve audience targeting. They let you capture visitor details that preset
[01:07] attributes don't, allowing for more precise personalization. Once you've
[01:13] created a custom attribute, you'll need to collect data for it, which can be done
[01:18] using the Personalize Edge SDK or API, as well as tools like Google Tag Manager or
[01:24] custom data platform integrations. This flexibility helps you create specific
[01:30] user segments and delivers personalized experiences, boosting engagement and
[01:36] conversions. Let's take a look at how we can create a custom attribute. On the
[01:42] left-hand side, click the Attributes button to open the
[01:47] Attributes screen. Here, you'll see all the preset attributes we discussed a
[01:52] moment ago. Of course, our interest is in creating a new attribute, so we'll click
[01:57] that button in the top right-hand corner. Enter a name of Travel Type and an
[02:03] attribute key of Travel Underscore Type. Enter a description if you'd like, and
[02:08] then click Save. Once it's done saving, you'll see your custom attribute appear
[02:14] in the list. On the right side, under the Actions column, you can either edit the
[02:18] attribute, which will return you to the previous window where you could rename
[02:23] the attribute or the attribute key, and modify the description. The other option
[02:28] is to delete the attribute if you wish. Once you have your attributes set up,
[02:33] it's time to add them to an audience.
```

#### Key takeaways

- Connect **Working with Attributes** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 04 — Creating Audiences

<!-- ai_metadata: {"lesson_id":"04","type":"video","duration_seconds":151,"video_url":"https://cdn.jwplayer.com/previews/c8Q04HgU","thumbnail_url":"https://cdn.jwplayer.com/v2/media/c8Q04HgU/poster.jpg?width=720","topics":["Creating","Audiences"]} -->

#### Video details

#### At a glance

- **Title:** Creating Audiences
- **Duration:** 2m 31s
- **Media link:** https://cdn.jwplayer.com/previews/c8Q04HgU
- **Publish date (unix):** 1727654555

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113737 kbps
- video/mp4 · 180p · 180p · 134293 kbps
- video/mp4 · 270p · 270p · 144596 kbps
- video/mp4 · 360p · 360p · 155157 kbps
- video/mp4 · 406p · 406p · 160821 kbps
- video/mp4 · 540p · 540p · 178307 kbps
- video/mp4 · 720p · 720p · 204706 kbps
- video/mp4 · 1080p · 1080p · 263506 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/c8Q04HgU-120.vtt`

#### Transcript

Audiences in ContentStack Personalize allow you to tailor content experiences for individual users by segmenting them based on attributes, behaviors, and context. Here you'll notice I'm still in Personalize inside of ContentStack. Moreover, I've created two additional custom attributes of travel destination and price type. To look at Audiences, on the left side I'll click the Audiences button to enter the Audiences screen. Let's create a new audience by clicking the New Audience button. First provide a name that means something. Here I'll type in Luxury and provide a description of Luxury Traveler. This obviously will be an audience catered towards travelers interested in luxurious vacations. Below is where you can configure your rules. Rules define how visitors are grouped for personalized experiences based on their attributes and behaviors. You can use preset or custom attributes to shape your audience. First in the drop-down menu you can select either match all of the below conditions or match any of the below conditions. I'm going to leave it set to match all. Notice there's two buttons, Add Rule and Add Group. We're going to click the Add Rule button, but know that if you need more complex rules you can group multiple conditions together by clicking Add Group. Again, for our needs we'll click Add Rule. In the Select Attribute menu you can access all the attributes that are defined within your personalized project. Here I'm going to scroll down towards the bottom and select the price type. Next I'll set the operator value to String Equals. Finally I'll type Luxury in the Select Value text field. And that's it. Now just go to the top right and click the Save button to save the attribute. Under the Actions column you can access commands to edit or delete the attribute. I'll create more audiences for the Compass Travel site, but the key to making this work is adding audiences to your experiences, which is exactly what we'll be doing in just a bit.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:11.600
Audiences in ContentStack Personalize allow you to tailor content experiences for individual

2
00:00:11.600 --> 00:00:18.120
users by segmenting them based on attributes, behaviors, and context.

3
00:00:18.120 --> 00:00:22.360
Here you'll notice I'm still in Personalize inside of ContentStack.

4
00:00:22.360 --> 00:00:28.600
Moreover, I've created two additional custom attributes of travel destination and price

5
00:00:28.600 --> 00:00:29.760
type.

6
00:00:29.760 --> 00:00:36.400
To look at Audiences, on the left side I'll click the Audiences button to enter the Audiences

7
00:00:36.400 --> 00:00:37.400
screen.

8
00:00:37.400 --> 00:00:42.920
Let's create a new audience by clicking the New Audience button.

9
00:00:42.920 --> 00:00:45.120
First provide a name that means something.

10
00:00:45.120 --> 00:00:51.080
Here I'll type in Luxury and provide a description of Luxury Traveler.

11
00:00:51.080 --> 00:00:56.960
This obviously will be an audience catered towards travelers interested in luxurious

12
00:00:56.960 --> 00:00:59.240
vacations.

13
00:00:59.240 --> 00:01:02.640
Below is where you can configure your rules.

14
00:01:02.640 --> 00:01:08.280
Rules define how visitors are grouped for personalized experiences based on their attributes

15
00:01:08.280 --> 00:01:09.740
and behaviors.

16
00:01:09.740 --> 00:01:14.760
You can use preset or custom attributes to shape your audience.

17
00:01:14.760 --> 00:01:20.040
First in the drop-down menu you can select either match all of the below conditions or

18
00:01:20.040 --> 00:01:22.840
match any of the below conditions.

19
00:01:22.840 --> 00:01:26.180
I'm going to leave it set to match all.

20
00:01:26.180 --> 00:01:30.460
Notice there's two buttons, Add Rule and Add Group.

21
00:01:30.460 --> 00:01:36.180
We're going to click the Add Rule button, but know that if you need more complex rules

22
00:01:36.180 --> 00:01:40.900
you can group multiple conditions together by clicking Add Group.

23
00:01:40.900 --> 00:01:45.040
Again, for our needs we'll click Add Rule.

24
00:01:45.040 --> 00:01:50.140
In the Select Attribute menu you can access all the attributes that are defined within

25
00:01:50.140 --> 00:01:52.380
your personalized project.

26
00:01:52.380 --> 00:01:56.860
Here I'm going to scroll down towards the bottom and select the price type.

27
00:01:56.860 --> 00:02:00.660
Next I'll set the operator value to String Equals.

28
00:02:00.660 --> 00:02:04.980
Finally I'll type Luxury in the Select Value text field.

29
00:02:04.980 --> 00:02:06.180
And that's it.

30
00:02:06.180 --> 00:02:10.900
Now just go to the top right and click the Save button to save the attribute.

31
00:02:10.900 --> 00:02:15.780
Under the Actions column you can access commands to edit or delete the attribute.

32
00:02:15.780 --> 00:02:21.100
I'll create more audiences for the Compass Travel site, but the key to making this work

33
00:02:21.100 --> 00:02:27.260
is adding audiences to your experiences, which is exactly what we'll be doing in just a bit.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] Audiences in ContentStack Personalize allow you to tailor content experiences for individual
[00:11] users by segmenting them based on attributes, behaviors, and context.
[00:18] Here you'll notice I'm still in Personalize inside of ContentStack.
[00:22] Moreover, I've created two additional custom attributes of travel destination and price
[00:28] type.
[00:29] To look at Audiences, on the left side I'll click the Audiences button to enter the Audiences
[00:36] screen.
[00:37] Let's create a new audience by clicking the New Audience button.
[00:42] First provide a name that means something.
[00:45] Here I'll type in Luxury and provide a description of Luxury Traveler.
[00:51] This obviously will be an audience catered towards travelers interested in luxurious
[00:56] vacations.
[00:59] Below is where you can configure your rules.
[01:02] Rules define how visitors are grouped for personalized experiences based on their attributes
[01:08] and behaviors.
[01:09] You can use preset or custom attributes to shape your audience.
[01:14] First in the drop-down menu you can select either match all of the below conditions or
[01:20] match any of the below conditions.
[01:22] I'm going to leave it set to match all.
[01:26] Notice there's two buttons, Add Rule and Add Group.
[01:30] We're going to click the Add Rule button, but know that if you need more complex rules
[01:36] you can group multiple conditions together by clicking Add Group.
[01:40] Again, for our needs we'll click Add Rule.
[01:45] In the Select Attribute menu you can access all the attributes that are defined within
[01:50] your personalized project.
[01:52] Here I'm going to scroll down towards the bottom and select the price type.
[01:56] Next I'll set the operator value to String Equals.
[02:00] Finally I'll type Luxury in the Select Value text field.
[02:04] And that's it.
[02:06] Now just go to the top right and click the Save button to save the attribute.
[02:10] Under the Actions column you can access commands to edit or delete the attribute.
[02:15] I'll create more audiences for the Compass Travel site, but the key to making this work
[02:21] is adding audiences to your experiences, which is exactly what we'll be doing in just a bit.
```

#### Key takeaways

- Connect **Creating Audiences** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 05 — Creating Events for A/B Tests

<!-- ai_metadata: {"lesson_id":"05","type":"video","duration_seconds":119,"video_url":"https://cdn.jwplayer.com/previews/T4oeI9zD","thumbnail_url":"https://cdn.jwplayer.com/v2/media/T4oeI9zD/poster.jpg?width=720","topics":["Creating","Events","for","Tests"]} -->

#### Video details

#### At a glance

- **Title:** Creating Events For A-b Tests
- **Duration:** 1m 59s
- **Media link:** https://cdn.jwplayer.com/previews/T4oeI9zD
- **Publish date (unix):** 1727658446

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113768 kbps
- video/mp4 · 180p · 180p · 180820 kbps
- video/mp4 · 270p · 270p · 231008 kbps
- video/mp4 · 360p · 360p · 272234 kbps
- video/mp4 · 406p · 406p · 312846 kbps
- video/mp4 · 540p · 540p · 439286 kbps
- video/mp4 · 720p · 720p · 699874 kbps
- video/mp4 · 1080p · 1080p · 1747898 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/T4oeI9zD-120.vtt`

#### Transcript

Events track and monitor actions users take. In Personalize, events are key for measuring the success of your A-B tests. By tracking actions like clicks, form submissions, or video plays, you can see which variation of your content performs better. Personalize lets you track two main types of events, impressions and conversions. Impressions track how many times users see specific content on your website. Each user only gets counted once even if they view the same personalized content multiple times. This helps you know if your content is actually being seen. For example, if you have two versions of a homepage banner for different audiences, tracking impressions tells you how often each banner is viewed, helping you see which one is more popular. A conversion is a positive user action like signing up for a newsletter, completing a form, or watching a video. In A-B testing, conversions help you figure out which version is more effective, with more conversions usually pointing to the better variant. For example, if you have two different sign-up forms, tracking conversions will show you which form gets more submissions, helping you see which one works best. Creating an event is simple. From the Personalize screen, click the Events button on the left. This will bring you to the Events screen, where you can click the New Event button. Enter an event key. In this case, I'll type Click, and I'll add a description of This is a custom event for tracking clicks. Once you're done, click Create. It's important to note that the maximum number of events per project is 100.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:11.320
Events track and monitor actions users take. In Personalize, events are key for measuring

2
00:00:11.320 --> 00:00:13.920
the success of your A-B tests.

3
00:00:13.920 --> 00:00:20.000
By tracking actions like clicks, form submissions, or video plays, you can see which variation

4
00:00:20.000 --> 00:00:23.120
of your content performs better.

5
00:00:23.120 --> 00:00:29.400
Personalize lets you track two main types of events, impressions and conversions.

6
00:00:29.400 --> 00:00:35.020
Impressions track how many times users see specific content on your website. Each user

7
00:00:35.020 --> 00:00:41.220
only gets counted once even if they view the same personalized content multiple times.

8
00:00:41.220 --> 00:00:44.920
This helps you know if your content is actually being seen.

9
00:00:44.920 --> 00:00:50.140
For example, if you have two versions of a homepage banner for different audiences, tracking

10
00:00:50.140 --> 00:00:56.480
impressions tells you how often each banner is viewed, helping you see which one is more

11
00:00:56.520 --> 00:01:03.080
popular. A conversion is a positive user action like signing up for a newsletter, completing

12
00:01:03.080 --> 00:01:06.040
a form, or watching a video.

13
00:01:06.040 --> 00:01:11.920
In A-B testing, conversions help you figure out which version is more effective, with

14
00:01:11.920 --> 00:01:16.160
more conversions usually pointing to the better variant.

15
00:01:16.160 --> 00:01:20.600
For example, if you have two different sign-up forms, tracking conversions will show you

16
00:01:20.880 --> 00:01:26.960
which form gets more submissions, helping you see which one works best.

17
00:01:26.960 --> 00:01:32.760
Creating an event is simple. From the Personalize screen, click the Events button on the left.

18
00:01:32.760 --> 00:01:37.320
This will bring you to the Events screen, where you can click the New Event button.

19
00:01:37.320 --> 00:01:43.600
Enter an event key. In this case, I'll type Click, and I'll add a description of This

20
00:01:43.600 --> 00:01:46.760
is a custom event for tracking clicks.

21
00:01:46.760 --> 00:01:51.560
Once you're done, click Create. It's important to note that the maximum number of events

22
00:01:51.560 --> 00:01:53.760
per project is 100.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] Events track and monitor actions users take. In Personalize, events are key for measuring
[00:11] the success of your A-B tests.
[00:13] By tracking actions like clicks, form submissions, or video plays, you can see which variation
[00:20] of your content performs better.
[00:23] Personalize lets you track two main types of events, impressions and conversions.
[00:29] Impressions track how many times users see specific content on your website. Each user
[00:35] only gets counted once even if they view the same personalized content multiple times.
[00:41] This helps you know if your content is actually being seen.
[00:44] For example, if you have two versions of a homepage banner for different audiences, tracking
[00:50] impressions tells you how often each banner is viewed, helping you see which one is more
[00:56] popular. A conversion is a positive user action like signing up for a newsletter, completing
[01:03] a form, or watching a video.
[01:06] In A-B testing, conversions help you figure out which version is more effective, with
[01:11] more conversions usually pointing to the better variant.
[01:16] For example, if you have two different sign-up forms, tracking conversions will show you
[01:20] which form gets more submissions, helping you see which one works best.
[01:26] Creating an event is simple. From the Personalize screen, click the Events button on the left.
[01:32] This will bring you to the Events screen, where you can click the New Event button.
[01:37] Enter an event key. In this case, I'll type Click, and I'll add a description of This
[01:43] is a custom event for tracking clicks.
[01:46] Once you're done, click Create. It's important to note that the maximum number of events
[01:51] per project is 100.
```

#### Key takeaways

- Connect **Creating Events for A/B Tests** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 06 — Adding Audiences to Experiences

<!-- ai_metadata: {"lesson_id":"06","type":"video","duration_seconds":229,"video_url":"https://cdn.jwplayer.com/previews/HOknJnAi","thumbnail_url":"https://cdn.jwplayer.com/v2/media/HOknJnAi/poster.jpg?width=720","topics":["Adding","Audiences","Experiences"]} -->

#### Video details

#### At a glance

- **Title:** Adding Audiences To Experiences
- **Duration:** 3m 49s
- **Media link:** https://cdn.jwplayer.com/previews/HOknJnAi
- **Publish date (unix):** 1727654555

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113854 kbps
- video/mp4 · 180p · 180p · 136079 kbps
- video/mp4 · 270p · 270p · 147553 kbps
- video/mp4 · 360p · 360p · 159726 kbps
- video/mp4 · 406p · 406p · 165066 kbps
- video/mp4 · 540p · 540p · 186748 kbps
- video/mp4 · 720p · 720p · 219929 kbps
- video/mp4 · 1080p · 1080p · 289684 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/HOknJnAi-120.vtt`

#### Video transcript

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish -->
[00:00] Transcript not attached in source entry.
```

#### Key takeaways

- Connect **Adding Audiences to Experiences** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 07 — Working with Entry Variants

<!-- ai_metadata: {"lesson_id":"07","type":"video","duration_seconds":196,"video_url":"https://cdn.jwplayer.com/previews/8izyapOo","thumbnail_url":"https://cdn.jwplayer.com/v2/media/8izyapOo/poster.jpg?width=720","topics":["Working","with","Entry","Variants"]} -->

#### Video details

#### At a glance

- **Title:** Working With Entry Variants
- **Duration:** 3m 16s
- **Media link:** https://cdn.jwplayer.com/previews/8izyapOo
- **Publish date (unix):** 1727654555

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113453 kbps
- video/mp4 · 180p · 180p · 146486 kbps
- video/mp4 · 270p · 270p · 167259 kbps
- video/mp4 · 360p · 360p · 183746 kbps
- video/mp4 · 406p · 406p · 195426 kbps
- video/mp4 · 540p · 540p · 232746 kbps
- video/mp4 · 720p · 720p · 289426 kbps
- video/mp4 · 1080p · 1080p · 427826 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/8izyapOo-120.vtt`

#### Transcript

Now that we have our personalized project configured, let's take a look at how we can create variants of our entries. Entry variants are versions of a base entry used to customize content for different experiences. There's three elements at play here. First is the collection of variants called a variant group. Then there's the original content from which all the variants are created called the base entry. It's essentially the foundation that all variants inherit. And finally, there's the entry variant, which is a customized version of the base entry tailored for the specific audience. So before we get started, let's review the final configuration of the personalized experience we were working with. Here you can see I have four variants of Luxury or Relaxing, Budget Adventure South America, Luxury Europe, and Luxury Relaxed Asia. Before we create entry variants, you have to make sure that your content type is linked to the variant groups you'd like to use. Once they are, you can create as many variants as you'd like. To do this, make sure you get back to the organization level. Then you want to enter the appropriate stack, and from there you can then enter the settings. Once you're inside the settings, you'll notice on the left side there's a variants option. Here you'll notice the variants we created in the personalized experience are automatically added for you. What we need to do is link them to the content types we want to use. Here I'll choose Homepage, and then you can go ahead and click Save. The final step is to activate our experience configuration. To do that, click the Stacks icon in the top left, then click Personalize. Enter the personalized project that you're working with, then you can select the experience you're working with. In my case, it's Personalize. Then click Configuration, and finally you can click the Activate Version button. Now that all of that is configured properly, let's return to our stack by clicking the Personalize button in the top left corner. Then we have to click the Stacks button, and then enter our stack so we can click on the Entries button on the left. We'll enter the homepage, and notice that there's a drop-down menu at the top. Here we can choose the Luxury Relaxed Asia variant. Then I can come in and make some modifications. Through the magic of editing, you'll notice I've updated the heading field, the content field, and I added a new image. Notice the Variant Field menu gives you the option to revert back to the base entry value. Finally, make sure you save and publish the entry. Now when I visit the Compass site and visit the Asia Pacific region, and then return back to the homepage, I'm now part of the Luxury Relaxed Asia audience and will be targeted with that variant of the homepage. Thanks for watching. If you like this video, please subscribe to my YouTube channel. I'll see you in the next video.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:04.960
Now that we have our personalized project configured, let's take a look at how we

2
00:00:04.960 --> 00:00:07.940
can create variants of our entries.

3
00:00:07.940 --> 00:00:14.240
Entry variants are versions of a base entry used to customize content for different experiences.

4
00:00:14.240 --> 00:00:16.320
There's three elements at play here.

5
00:00:16.320 --> 00:00:19.560
First is the collection of variants called a variant group.

6
00:00:19.560 --> 00:00:23.320
Then there's the original content from which all the variants are created called the base

7
00:00:23.320 --> 00:00:24.440
entry.

8
00:00:24.440 --> 00:00:28.600
It's essentially the foundation that all variants inherit.

9
00:00:28.600 --> 00:00:32.880
And finally, there's the entry variant, which is a customized version of the base

10
00:00:32.880 --> 00:00:37.280
entry tailored for the specific audience.

11
00:00:37.280 --> 00:00:42.120
So before we get started, let's review the final configuration of the personalized experience

12
00:00:42.120 --> 00:00:43.880
we were working with.

13
00:00:43.880 --> 00:00:50.920
Here you can see I have four variants of Luxury or Relaxing, Budget Adventure South America,

14
00:00:50.920 --> 00:00:55.160
Luxury Europe, and Luxury Relaxed Asia.

15
00:00:55.160 --> 00:00:59.560
Before we create entry variants, you have to make sure that your content type is linked

16
00:00:59.560 --> 00:01:02.520
to the variant groups you'd like to use.

17
00:01:02.520 --> 00:01:07.160
Once they are, you can create as many variants as you'd like.

18
00:01:07.160 --> 00:01:11.200
To do this, make sure you get back to the organization level.

19
00:01:11.200 --> 00:01:19.320
Then you want to enter the appropriate stack, and from there you can then enter the settings.

20
00:01:19.320 --> 00:01:23.200
Once you're inside the settings, you'll notice on the left side there's a variants

21
00:01:23.200 --> 00:01:25.360
option.

22
00:01:25.360 --> 00:01:30.340
Here you'll notice the variants we created in the personalized experience are automatically

23
00:01:30.340 --> 00:01:31.920
added for you.

24
00:01:31.920 --> 00:01:37.000
What we need to do is link them to the content types we want to use.

25
00:01:37.000 --> 00:01:43.600
Here I'll choose Homepage, and then you can go ahead and click Save.

26
00:01:43.600 --> 00:01:47.160
The final step is to activate our experience configuration.

27
00:01:47.160 --> 00:01:54.080
To do that, click the Stacks icon in the top left, then click Personalize.

28
00:01:54.080 --> 00:01:59.400
Enter the personalized project that you're working with, then you can select the experience

29
00:01:59.400 --> 00:02:00.400
you're working with.

30
00:02:00.400 --> 00:02:02.520
In my case, it's Personalize.

31
00:02:02.520 --> 00:02:08.840
Then click Configuration, and finally you can click the Activate Version button.

32
00:02:08.840 --> 00:02:13.680
Now that all of that is configured properly, let's return to our stack by clicking the

33
00:02:13.680 --> 00:02:16.520
Personalize button in the top left corner.

34
00:02:16.520 --> 00:02:20.680
Then we have to click the Stacks button, and then enter our stack so we can click on

35
00:02:20.680 --> 00:02:23.480
the Entries button on the left.

36
00:02:23.480 --> 00:02:28.360
We'll enter the homepage, and notice that there's a drop-down menu at the top.

37
00:02:28.360 --> 00:02:32.120
Here we can choose the Luxury Relaxed Asia variant.

38
00:02:32.120 --> 00:02:34.400
Then I can come in and make some modifications.

39
00:02:34.400 --> 00:02:39.400
Through the magic of editing, you'll notice I've updated the heading field, the content

40
00:02:39.400 --> 00:02:42.640
field, and I added a new image.

41
00:02:42.640 --> 00:02:49.520
Notice the Variant Field menu gives you the option to revert back to the base entry value.

42
00:02:49.520 --> 00:02:53.880
Finally, make sure you save and publish the entry.

43
00:02:53.880 --> 00:02:59.240
Now when I visit the Compass site and visit the Asia Pacific region, and then return back

44
00:02:59.240 --> 00:03:04.960
to the homepage, I'm now part of the Luxury Relaxed Asia audience and will be targeted

45
00:03:04.960 --> 00:03:07.480
with that variant of the homepage.

46
00:03:12.640 --> 00:03:13.640
Thanks for watching.

47
00:03:13.640 --> 00:03:14.640
If you like this video, please subscribe to my YouTube channel.

48
00:03:14.640 --> 00:03:15.640
I'll see you in the next video.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] Now that we have our personalized project configured, let's take a look at how we
[00:04] can create variants of our entries.
[00:07] Entry variants are versions of a base entry used to customize content for different experiences.
[00:14] There's three elements at play here.
[00:16] First is the collection of variants called a variant group.
[00:19] Then there's the original content from which all the variants are created called the base
[00:23] entry.
[00:24] It's essentially the foundation that all variants inherit.
[00:28] And finally, there's the entry variant, which is a customized version of the base
[00:32] entry tailored for the specific audience.
[00:37] So before we get started, let's review the final configuration of the personalized experience
[00:42] we were working with.
[00:43] Here you can see I have four variants of Luxury or Relaxing, Budget Adventure South America,
[00:50] Luxury Europe, and Luxury Relaxed Asia.
[00:55] Before we create entry variants, you have to make sure that your content type is linked
[00:59] to the variant groups you'd like to use.
[01:02] Once they are, you can create as many variants as you'd like.
[01:07] To do this, make sure you get back to the organization level.
[01:11] Then you want to enter the appropriate stack, and from there you can then enter the settings.
[01:19] Once you're inside the settings, you'll notice on the left side there's a variants
[01:23] option.
[01:25] Here you'll notice the variants we created in the personalized experience are automatically
[01:30] added for you.
[01:31] What we need to do is link them to the content types we want to use.
[01:37] Here I'll choose Homepage, and then you can go ahead and click Save.
[01:43] The final step is to activate our experience configuration.
[01:47] To do that, click the Stacks icon in the top left, then click Personalize.
[01:54] Enter the personalized project that you're working with, then you can select the experience
[01:59] you're working with.
[02:00] In my case, it's Personalize.
[02:02] Then click Configuration, and finally you can click the Activate Version button.
[02:08] Now that all of that is configured properly, let's return to our stack by clicking the
[02:13] Personalize button in the top left corner.
[02:16] Then we have to click the Stacks button, and then enter our stack so we can click on
[02:20] the Entries button on the left.
[02:23] We'll enter the homepage, and notice that there's a drop-down menu at the top.
[02:28] Here we can choose the Luxury Relaxed Asia variant.
[02:32] Then I can come in and make some modifications.
[02:34] Through the magic of editing, you'll notice I've updated the heading field, the content
[02:39] field, and I added a new image.
[02:42] Notice the Variant Field menu gives you the option to revert back to the base entry value.
[02:49] Finally, make sure you save and publish the entry.
[02:53] Now when I visit the Compass site and visit the Asia Pacific region, and then return back
[02:59] to the homepage, I'm now part of the Luxury Relaxed Asia audience and will be targeted
[03:04] with that variant of the homepage.
[03:12] Thanks for watching.
[03:13] If you like this video, please subscribe to my YouTube channel.
[03:14] I'll see you in the next video.
```

#### Key takeaways

- Connect **Working with Entry Variants** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

### Lesson 08 — A/B Testing and Audience Impersonation

<!-- ai_metadata: {"lesson_id":"08","type":"video","duration_seconds":153,"video_url":"https://cdn.jwplayer.com/previews/4JxNVxNH","thumbnail_url":"https://cdn.jwplayer.com/v2/media/4JxNVxNH/poster.jpg?width=720","topics":["Testing","and","Audience","Impersonation"]} -->

#### Video details

#### At a glance

- **Title:** A-b Testing And Audience Impersonation
- **Duration:** 2m 33s
- **Media link:** https://cdn.jwplayer.com/previews/4JxNVxNH
- **Publish date (unix):** 1727654555

#### Streaming renditions

- application/vnd.apple.mpegurl
- audio/mp4 · AAC Audio · 113901 kbps
- video/mp4 · 180p · 180p · 155064 kbps
- video/mp4 · 270p · 270p · 184090 kbps
- video/mp4 · 360p · 360p · 210713 kbps
- video/mp4 · 406p · 406p · 229072 kbps
- video/mp4 · 540p · 540p · 287260 kbps
- video/mp4 · 720p · 720p · 374567 kbps
- video/mp4 · 1080p · 1080p · 589216 kbps

#### Timed text tracks (delivery)

- **thumbnails:** `https://cdn.jwplayer.com/strips/4JxNVxNH-120.vtt`

#### Transcript

Let's take a look at how we can run a simple A B test. Here, I want to change the Learn More button to be a bit more exciting. Again, let's look at the final configuration for the A B test experience we set up as I modified it slightly. At the organization level, I'll enter Personalize. Then, I'll click the Project tile to enter it. Next, I'll click A B Testing. Then, I'll click the Configuration option on the left. Notice, I set up a custom variant distribution across three variants. Straightforward, adventurous, and fun with the traffic distribution between them being divided equally. It's also important to know that the content type of homepage is now linked to this A B test variant group. If you forgot how to do that, just review the previous video. Before we leave this screen, be sure to activate the draft. Now, let's click the Personalize icon in the top to return to the organization. Then, click Stacks to see our stack, and then enter the stack that you're working with. Now, I'll come over and choose Entries. Then, I'll enter the homepage. Here in the dropdown menu, I'll choose the Fun A B Test. The call to action has a text label that's not all that exciting. I'll update that to read Let's Go and save it. If we go to our visual preview experience, I can impersonate what each of those particular segments are going to see. When it loads, I can open up our audience impersonation widget. This is going to allow us to impersonate any number of audiences with all the different combinations of content that you might see. So, the first thing is, I'm going to toggle on the audience that I know will give me the ability to serve the A B test, which is for visitors looking for a relaxing luxury travel vacation in the Asia Pacific region. You'll see that the actual content has changed, and the reason for that is, I've selected all the audiences at the bottom that match the criteria to serve that particular content. Because all of those were selected, I now have the ability to preview the A B test. We have learned more, but for adventurous, you can see it says Explore This, and for fun, which is what we just created, it now says Let's Go.

#### Subtitles (WebVTT)

```webvtt
WEBVTT

1
00:00:00.000 --> 00:00:10.920
Let's take a look at how we can run a simple A B test. Here, I want to change the Learn

2
00:00:10.920 --> 00:00:16.360
More button to be a bit more exciting. Again, let's look at the final configuration for

3
00:00:16.360 --> 00:00:23.000
the A B test experience we set up as I modified it slightly. At the organization level, I'll

4
00:00:23.000 --> 00:00:28.640
enter Personalize. Then, I'll click the Project tile to enter it. Next, I'll click

5
00:00:28.640 --> 00:00:34.900
A B Testing. Then, I'll click the Configuration option on the left. Notice, I set up a custom

6
00:00:34.900 --> 00:00:41.080
variant distribution across three variants. Straightforward, adventurous, and fun with

7
00:00:41.080 --> 00:00:45.880
the traffic distribution between them being divided equally. It's also important to

8
00:00:45.880 --> 00:00:52.080
know that the content type of homepage is now linked to this A B test variant group.

9
00:00:52.080 --> 00:00:57.360
If you forgot how to do that, just review the previous video. Before we leave this screen,

10
00:00:57.360 --> 00:01:03.240
be sure to activate the draft. Now, let's click the Personalize icon in the top to

11
00:01:03.240 --> 00:01:09.120
return to the organization. Then, click Stacks to see our stack, and then enter the stack

12
00:01:09.120 --> 00:01:14.000
that you're working with. Now, I'll come over and choose Entries. Then, I'll enter

13
00:01:14.000 --> 00:01:20.720
the homepage. Here in the dropdown menu, I'll choose the Fun A B Test. The call to action

14
00:01:20.720 --> 00:01:27.320
has a text label that's not all that exciting. I'll update that to read Let's Go and save

15
00:01:27.320 --> 00:01:33.040
it. If we go to our visual preview experience, I can impersonate what each of those particular

16
00:01:33.040 --> 00:01:39.600
segments are going to see. When it loads, I can open up our audience impersonation widget.

17
00:01:39.600 --> 00:01:43.920
This is going to allow us to impersonate any number of audiences with all the different

18
00:01:43.920 --> 00:01:49.840
combinations of content that you might see. So, the first thing is, I'm going to toggle

19
00:01:49.840 --> 00:01:55.520
on the audience that I know will give me the ability to serve the A B test, which is for

20
00:01:55.520 --> 00:02:02.080
visitors looking for a relaxing luxury travel vacation in the Asia Pacific region. You'll

21
00:02:02.080 --> 00:02:07.160
see that the actual content has changed, and the reason for that is, I've selected all

22
00:02:07.160 --> 00:02:13.440
the audiences at the bottom that match the criteria to serve that particular content.

23
00:02:13.440 --> 00:02:17.960
Because all of those were selected, I now have the ability to preview the A B test.

24
00:02:17.960 --> 00:02:24.040
We have learned more, but for adventurous, you can see it says Explore This, and for

25
00:02:24.040 --> 00:02:28.720
fun, which is what we just created, it now says Let's Go.

```

```transcript
<!-- PLACEHOLDER: replace with real transcript before publish if cues were auto-derived from WebVTT -->
[00:00] Let's take a look at how we can run a simple A B test. Here, I want to change the Learn
[00:10] More button to be a bit more exciting. Again, let's look at the final configuration for
[00:16] the A B test experience we set up as I modified it slightly. At the organization level, I'll
[00:23] enter Personalize. Then, I'll click the Project tile to enter it. Next, I'll click
[00:28] A B Testing. Then, I'll click the Configuration option on the left. Notice, I set up a custom
[00:34] variant distribution across three variants. Straightforward, adventurous, and fun with
[00:41] the traffic distribution between them being divided equally. It's also important to
[00:45] know that the content type of homepage is now linked to this A B test variant group.
[00:52] If you forgot how to do that, just review the previous video. Before we leave this screen,
[00:57] be sure to activate the draft. Now, let's click the Personalize icon in the top to
[01:03] return to the organization. Then, click Stacks to see our stack, and then enter the stack
[01:09] that you're working with. Now, I'll come over and choose Entries. Then, I'll enter
[01:14] the homepage. Here in the dropdown menu, I'll choose the Fun A B Test. The call to action
[01:20] has a text label that's not all that exciting. I'll update that to read Let's Go and save
[01:27] it. If we go to our visual preview experience, I can impersonate what each of those particular
[01:33] segments are going to see. When it loads, I can open up our audience impersonation widget.
[01:39] This is going to allow us to impersonate any number of audiences with all the different
[01:43] combinations of content that you might see. So, the first thing is, I'm going to toggle
[01:49] on the audience that I know will give me the ability to serve the A B test, which is for
[01:55] visitors looking for a relaxing luxury travel vacation in the Asia Pacific region. You'll
[02:02] see that the actual content has changed, and the reason for that is, I've selected all
[02:07] the audiences at the bottom that match the criteria to serve that particular content.
[02:13] Because all of those were selected, I now have the ability to preview the A B test.
[02:17] We have learned more, but for adventurous, you can see it says Explore This, and for
[02:24] fun, which is what we just created, it now says Let's Go.
```

#### Key takeaways

- Connect **A/B Testing and Audience Impersonation** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

## Resources & references

| Page | Companion Markdown |
| --- | --- |
| /courses/personalize-foundations/about-personalize | /academy/md/courses/personalize-foundations/about-personalize.md |
| /courses/personalize-foundations/creating-a-personalize-project-and-experiences | /academy/md/courses/personalize-foundations/creating-a-personalize-project-and-experiences.md |
| /courses/personalize-foundations/working-with-attributes | /academy/md/courses/personalize-foundations/working-with-attributes.md |
| /courses/personalize-foundations/creating-audiences | /academy/md/courses/personalize-foundations/creating-audiences.md |
| /courses/personalize-foundations/creating-events-for-a-b-tests | /academy/md/courses/personalize-foundations/creating-events-for-a-b-tests.md |
| /courses/personalize-foundations/adding-audiences-to-experiences | /academy/md/courses/personalize-foundations/adding-audiences-to-experiences.md |
| /courses/personalize-foundations/working-with-entry-variants | /academy/md/courses/personalize-foundations/working-with-entry-variants.md |
| /courses/personalize-foundations/a-b-testing-an-audience-impersonation | /academy/md/courses/personalize-foundations/a-b-testing-an-audience-impersonation.md |

## Supplement for indexing

### Content summary

In the Personalize Foundations course, you will explore the essentials of delivering tailored content to your audience through Contentstack's personalization features. The course covers the challenges of personalization,… In the Personalize Foundations course, you will explore the essentials of delivering tailored content to your audience through Contentstack's personalization features. The course covers the challenges of personalization, such as scalability and complexity, and presents a solution that balances simplicity and flexibility. You'll learn how to set up projects, configure segmented experiences, run A/B tests, and leverage attributes and audiences to deliver the right message at the right time. With practical guidance on creating dynamic user experiences, this course aims to improve engagement, conv

### Retrieval tags

- personalize
- personalize-foundations
- About
- Creating
- Project
- and
- Experiences
- Working
- with
- Attributes
- Audiences
- Events
- for
- Tests

### Indexing notes

Chunk at each "### Lesson NN — Title" heading; copy lesson_id and topics from the preceding HTML comment into chunk metadata for RAG filters.
Course slug: personalize-foundations. Union of lesson topic tokens: About, Personalize, Creating, Project, and, Experiences, Working, with, Attributes, Audiences, Events, for, Tests, Adding, Entry, Variants, Testing, Audience, Impersonation.
Do not embed or retrieve LMS-only quiz items or mastery exam answer keys from this export.

### Asset references

| Label | URL |
| --- | --- |
| Video thumbnail: About Personalize | `https://cdn.jwplayer.com/v2/media/S9WCKPOo/poster.jpg?width=720` |
| Video thumbnail: Creating a Personalize Project and Experiences | `https://cdn.jwplayer.com/v2/media/t4HUHTEx/poster.jpg?width=720` |
| Video thumbnail: Working with Attributes | `https://cdn.jwplayer.com/v2/media/RcVjZyCA/poster.jpg?width=720` |
| Video thumbnail: Creating Audiences | `https://cdn.jwplayer.com/v2/media/c8Q04HgU/poster.jpg?width=720` |
| Video thumbnail: Creating Events for A/B Tests | `https://cdn.jwplayer.com/v2/media/T4oeI9zD/poster.jpg?width=720` |
| Video thumbnail: Adding Audiences to Experiences | `https://cdn.jwplayer.com/v2/media/HOknJnAi/poster.jpg?width=720` |
| Video thumbnail: Working with Entry Variants | `https://cdn.jwplayer.com/v2/media/8izyapOo/poster.jpg?width=720` |
| Video thumbnail: A/B Testing and Audience Impersonation | `https://cdn.jwplayer.com/v2/media/4JxNVxNH/poster.jpg?width=720` |

### External links

| Label | URL |
| --- | --- |
| Contentstack Academy home | `https://www.contentstack.com/academy/` |
| Training instance setup | `https://www.contentstack.com/academy/training-instance` |
| Academy playground (GitHub) | `https://github.com/contentstack/contentstack-academy-playground` |
| Contentstack documentation | `https://www.contentstack.com/docs/` |
