Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Watch the video tutorial

The content of this page is presented in a video tutorial, have a look:

https://youtu.be/cw6nrfmBwIs

https://youtu.be/v3KPpCW_vjg

Other tutorials

Flexible Landing Pages

 

Include Page
1. Flexible Landing Pages
1. Flexible Landing Pages

Dynamic Brand Pages

 

 

Include Page
2. Dynamic Brand Pages
2. Dynamic Brand Pages

Personalized Layouts

 

 

Include Page
3. Personalized Layouts
3. Personalized Layouts
 A Narrative is a way for you to control everything that appears on a page of your website. For example: A image with a description at the top, A custom product listing, or various other visual elements (explained in the chapter 16.4 Visual Elements).

What is a Narrative?

A Narrative is a page layout (or a set of zones in a page layout) with headless content (headless because the content is not specific to any view, it can be used in any channel: web-site, e-mail, print marketing, …).

A Narrative can be a complete web page layout or the layouts of sections (or zones) of the page.

As you integrate the Narratives in your Website, you decide which narrative appears where (in which pages or page zones) during the technical integration.

For example, for a search result page, the layout of the search results will be defined by a narrative (e.g., as in the example we will see in details later in this page: first a search message, then a banner, then the pagination and sorting option, then a grid of product results, then pagination again and below an SEO text, and on the left of it all the facets (search refinement filters).

Image Added

You can find the Narrative-view under Marketing > Narratives.

The main Widget of a Narrative

Narratives are always connected to at least one Widget.

This is because the request from your Website to our API is always done on a widget.

The system will then identify the one narrative (in case many are defined) which are connected to this widget that should be used.

This widget is then the main widget of the narrative.

As per the flow below, the main widget will provide the key content to be integrated as content in the narrative layout.

Image Added
Tip

You can add additional sub widgets in the Narrative if you need them (for example, if your narrative shows two blocks of product recommendations, then the first one is typically the main widget which is the one called by your Front-End API request and the second one is a sub widget defined in the narrative).

Create a new narrative

To create a narrative, click on the add-button and give the narrative a unique key. This is how your narrative will later be accessed, so use a name that describes it and makes sensewell and is easy to understand.

The next thing is the configuration of the narrative itself.

First you can give the Narrative a title.

Image Removed

The next step is to add chapters to your narrative. To do this click on the add-button next the chapter-option.

Image Removed

Here you can add the visual elements. You can see how to create these in the following chapter (16.4 Visual Elements). Choose one and click on the add-button to start editing it.

Image Removed

In this example there are four options, which are available and are defined in the json schema in the next chapter (16.4 Visual Elements). You can add as many visual elements as you like. For example, your narrative could look like this:

 

Image Removed

As you can see from top to bottom there is first a jssor banner, then a newsletter element, followed by a voucher. After that, a YouTube video will be shown, then a brand visual should be displayed and finally the listing. You can define the order of these elements by clicking on the arrows to the right.

In the Contexts-tab of the Narrative you have to define when the narrative appears by adding a context parameter called campaign and the value {{var-currentNarrative-uniqueKey}}. This makes sure that this campaign we just created will be applied if the URL parameter is campaign=narrative-example is there.

Image Removed

When you are done editing, you can save the narrative and then click Save & Test.

There is one more step you have to do before the narrative is active. You have to add a use-case to your narrative widget. The use-case is called Campaign Correlation Promoter and is located under:

CPO STRATEGIES > MARKETING OPTIMIZATION > LEVEL 1 - ALIGN MARCOM > ALIGNED PRODUCT PROMOTION WITH YOUR CAMPAIGNS

Image Removed

It should have the word campaign in the request parameter. When this is set up, you can click on Save&Test and then switch to the test-view.

 

 

Add the following parameters to the Request.

Image RemovedImage Removed

Widget: The choiceID, you configured the use-case for (in this case narrative)

Language: Whichever language you want

Test mode: Test mode with live data

Context Parameters: campaign=narrative-example (narrative-example is the unique-key of the narrative)

Afterwards click Get Results and check the extra info.

Image Removed

You should see the relevant JSON under the key cpo_journey_example-journey.

Image RemovedWhen you are satisfied by the results, you can go to the publishing-menu and click publish all
Info

For example, you can use the same name as a widget (in case you don’t plan to have more than one narrative for this widget), or add “_default” at the end of the widget name in case you want to have it as the default version but plan to create a more specific narrative for specific cases.

Image Added

Your widget will then appear at the end of the list, you can then edit it by clicking on the action edit (pencil icon).

Note

If you have several pages of narratives, you might not see the newly added Narrative until you paginate to the last page

Image Added

On the top right of the dialog, you can define a list of main Widgets for the Narrative.

Why several Narratives for the same main Widget?

There are different ways to configure different Narrative Layouts and Contents for different situations.

One way is to have several Narratives and to make them vary by the Narrative Context (see details below).

Tip

In case several Narratives can apply (which means that their Narrative Contextare all satisfied), the system will show the most specific Context available (e.g: if a Narrative is set as default with no specific context and another one is set specifically for the traffic segment from Google Shopping, the second one will apply for visitors from Google Shopping as the context is more specific than the default one).

Another way is to have one Narrative but to have Conditional Layouts in the narrative for the different cases (see details below)

A third way is to have one Narrative with a Fix Layout but dynamic content defined with Variables (check our documentation here: How to dynamize Narratives with Variables )

Info

All three possibilities can also be mixed, so they are not mutually exclusive!

A less important question: Why several main Widgets for the same Narrative?

The opposite is also possible, to have more than one main Widget defined in one Narrative.

The main reason for doing it is to configure only one Narrative (typically a quite dynamic one) but to use it in the context of different widgets.

Different widgets will automatically provide segmentation in the statistics.

One Narrative is easier to maintain (no need to copy changes back and for).

However, this is not a very common need and typically is not applied.

Title, Aliases, and SEO Content

Info

You can skip this section if you do not plan to integrate your Page Title and SEO tags with the Narrative.

Image Added

Above: You can provide here the Title (H1) in Each Language.

Image Added

Above: in the SEO Content Tab you can define Header information: Page Title, Meta Tags and other parameters as well as the Breadcrumb of the page (to be provided in JSON).

Narrative Context

A narrative is connected to a context. The Narrative Context defines (as a condition) if the Narrative should be considered as active in a given context.

The context by default is empty which means that the Narrative is always active.

A context can be defined on many different criteria (A/B testing variant, Visitor or Customer Segment, Page Context (page URL, current filter, facets selected by the user, search query, …).

Tip

Learn more about Contexts in our related documentation.

Image Added

Example with a Context Parameter “campaign” set with the Variable “{{var-currentNarrative-uniqueKey}}”. This logic is often used for landing pages where a parameter “campaign” is passed (typically with the url path of the page) and is automatically matched with the Name of the Narrative.

Tip

This way, simply adding a Narrative with the name of the path of the landing page will make it work automatically!

Fix versus Conditional Layout

Image Added

A Narrative is defined as a list of Layouts (typically only one).

A Layout can be Fix, Conditional, or be a reference to another Narrative (this is simply a way to embed Narratives).

Fix Layout

A Fix layout is a layout that never changes and is always the same for all the different situations.

Image Added

A Fix Layout has a Context (it only applies if the Context is satisfied, see the explanations about Context above).

A Fix Layout is defined by an ordered List of configured Layout Blocks (see explanation below).

Tip

By creating several blocks of Fix Layouts and using their Contexts, you can still do a certain type of Dynamic layout by having some Fix Layouts appear to some visitors and others not.

Conditional Layout

A Conditional Layout has a Context as a condition (it only applies if the Context is satisfied, see the explanations about Context above).

Then it has a list of Fix Layouts each connected either to the true or the false (or both) evaluation of the condition.

Image Added

In this example, we create automatically an A/B test simply by naming “testA” as a test Variant in the condition and we have then 3 Fix layout: the first two will apply to the control variant (testA is false) and the second and third will apply to the test variant (testA is true).

Configure the Layout Blocks Parameters of a Fix Layout

To fill the list of configured Layout Blocks of a Fix Layout, you need to select a Layout Block in the list.

Image Added
Info

The Layout Blocks and their name are defined by your IT team. If you are not sure about their meaning and desired usage, please check with your team to get more information!

After adding a Layout Block you can configure it by filling in its content.

Image Added

Each Layout block has its own Parameter Schema, so it means that what field you will see in the form (as in the example above) depend on the definition of the Layout Block.

Info

The Layout Blocks and their Parameter Schema are defined by your IT team. If you are not sure about what is a parameter should be used for, check with your team to get more information!

You can set the content of each parameter with static values (i.e.: writing the content as it should appear to the user).

You can also set the content with Dynamic Variables (or a mix of static text and Dynamic Variable, like, for example: “hello {{template-firstname}}”.

To find out more about how to set dynamic variables: How to dynamize Narratives with Variables

Nesting Layout Blocks

Some Layout blocks might expect (or support) to have children Layout Blocks defined.

For example, a product slider would typically be a Layout Block with a list of product Layout Blocks inside.

Image Added
Tip

In this typical case a product_slider has one product as a Sub-Content. You don’t need to put several products as sub-element, only one, as Layout Block connected to the current widget with the parameter bx-hits (product-list) and bx-hit (product) will automatically create as many product children as necessary (see details in next section).

Of course, for other cases without any dynamic logic behind the system with the bx-… parameters, you can also create several children block and configured them with the logic you want.

And the nesting is not limited to one level, so you can do children blocks of children blocks of children blocks …

The automated widget content bx-… parameters

Image Added

As illustrated in this diagram, a few Layout Blocks will be configured by your team with bx-… parameters.

These parameters will automate the filling of specific parts of their content.

As a user, you don’t have to do anything, just to select the Layout Blocks that you want, but here we explained what is happening automatically behind the scene:

bx parameter

type of Layout Blocks

Effect

bx-hits

Product Slider

Product List

the container of the Final Results of the Widget

bx-hit

Product

the block that should be duplicated and filled with the appropriate content for each of the Final Results of the Widget

bx-facets*

Facets

the facets informations (including visual rendering options) which should be used to display the facets content (filtering option for the user on a search or a product listing page).

bx-pagination*

Toolbar

Pagination

the pagination information (user can paginate to page 2, 3, …)

bx-hitCount*

Toolbar

gives only the number of items to be displayed to the user (often done with bx-pagination

bx-sort*

ToolBar

gives the option to the user to order the results by a criteria (lowest price, name, …)

*ONLY WORKS FOR WPO IN THE CONSIDERATION COLUMNS!

The Accessor Parameter

Layout Blocks containing dynamic lists of content provided by a widget will have an accessor parameter (for example the Layout Block “Product List” which has Product Layout Blocks as children)

Image Added

This accessor parameter can be left empty by default. It will then take the value of the Main Widget (see the section above for details).

However if your container should display the results of another widget, you need to define the widget name as accessor.

Image Added

For example, this widget has the widget “accessories” as the main Widget. However, it is showing 4 sliders of product recommendations (Accessories, Similar, Complementary, and Related products suggestions).

While the first Layout Block (Accessor) will have an empty accessor parameter (as it will use the main Widget “accessor” by default). All the other ones will have a value defined with the name of their related widget, for example here, for the second one, the widget “similar”.

Image Added
Info

You can define parameters for the Widget by making it a variable:

  • filters: to reduce the scope of the widget to a specific filter

  • hitCount: to control the number of results that should be shown to the user

  • exclude: to list the prior widget results which should be excluded from the results of this widget

To find out more about how to set this type and many other types of dynamic variables: How to dynamize Narratives with Variables

Save, Test & Deploy

When you are done editing, you can save the narrative and then click Save.

To test your Narrative changes click on the top-right button “Test” (or “Save & Test”). Go test on your stage front-end (wait for 5-10 minutes for the cache to automatically clear). Make API requests with the flag “test”:true enabled.

When you are satisfied with your changes, go to Deployment > Publish, click on the “Publish All” button, and confirm.

Only the WPO changes are disclosed as “differences” between test & production configurations.