From 6c0294c50e71505b85523687d8b7fbfeb02c103b Mon Sep 17 00:00:00 2001 From: julitafalcondusza Date: Tue, 18 Aug 2026 12:16:47 +0200 Subject: [PATCH] cdp revisit - updates --- .../admin_panel/segments_admin_panel.md | 20 +++++++- docs/cdp/cdp.md | 4 ++ docs/cdp/cdp_audience_metadata.md | 24 +++++++++ docs/cdp/cdp_guide.md | 7 +++ .../content_management_guide.md | 4 ++ .../pages/page_builder_guide.md | 15 +++++- .../pages/targeting_block.md | 49 +++++++++++++++++++ docs/ibexa_products/ibexa_experience.md | 4 +- docs/users/segment_api.md | 3 ++ mkdocs.yml | 2 + 10 files changed, 127 insertions(+), 5 deletions(-) create mode 100644 docs/cdp/cdp_audience_metadata.md create mode 100644 docs/content_management/pages/targeting_block.md diff --git a/docs/administration/admin_panel/segments_admin_panel.md b/docs/administration/admin_panel/segments_admin_panel.md index 1f9e3e144c7..20345d25225 100644 --- a/docs/administration/admin_panel/segments_admin_panel.md +++ b/docs/administration/admin_panel/segments_admin_panel.md @@ -1,12 +1,13 @@ --- description: You can use segments to display specific content to specific users. edition: experience +month_change: true --- # Segments You can use segments to display specific content to specific [users](users.md). -They're used out of the box in the Targeting block in the page. +They're used out of the box in the [Targeting block](targeting_block.md) in the page. You can collect segments in segment groups: @@ -16,4 +17,21 @@ Each segment group can contain segments that you can target content for. ![Segment](admin_panel_segment.png) +## Segments view + +The segments view lists all segments within a segment group in a searchable, sortable, and filterable table. + +The table shows the following metadata: + +- **Name** - the audience's name +- **Identifier** - the unique audience identifier used, for example, in the [Targeting block](targeting_block.md) +- **Size** - the number of profiles currently in the audience +- **Last updated** - the timestamp of the most recent audience sync + +Secondary metadata, such as the audience's description and tags, is available through contextual UI elements, for example tooltips or hover states. +Additional metadata may also be displayed when it's available from the source system. + +All of this metadata is synced from your CDP and served from [[= product_name =]], so opening the Segments view doesn't trigger a live request per audience. +For more information on how metadata is retrieved and kept up to date, see [Audience metadata](cdp_audience_metadata.md). + You can assign users to segments [through the API](segment_api.md#assigning-users). diff --git a/docs/cdp/cdp.md b/docs/cdp/cdp.md index 51259b70bb0..3841c626595 100644 --- a/docs/cdp/cdp.md +++ b/docs/cdp/cdp.md @@ -1,6 +1,7 @@ --- description: Ibexa CDP is a software system designed to collect and organize customer data from multiple sources to build comprehensive customer profiles. edition: experience +month_change: true --- # Customer Data Platform (CDP) @@ -20,3 +21,6 @@ With defined audiences you can target your user segments at the right time, thro The customer data are collected through the system of trackers embedded in different parts of your page. For more information on activation and trackers, see [CDP activation documentation](cdp_activation.md). + +Audience metadata, such as size, description, tags, and last update timestamp, is synced from [[= product_name_cdp =]] and persisted on the [[= product_name =]] side. +For more information, see [Audience metadata](cdp_audience_metadata.md). diff --git a/docs/cdp/cdp_audience_metadata.md b/docs/cdp/cdp_audience_metadata.md new file mode 100644 index 00000000000..17ab0ca399d --- /dev/null +++ b/docs/cdp/cdp_audience_metadata.md @@ -0,0 +1,24 @@ +--- +description: Audience metadata retrieved from Raptor is synced and persisted on the CMS side, and served through APIs. +edition: experience +month_change: true +--- + +# Audience metadata + +For each [audience](cdp_guide.md#audience-builder) built in [[= product_name_cdp =]], [[= product_name =]] retrieves and stores the following metadata: + +- number of profiles in the audience +- audience description +- audience tags +- last audience update timestamp + +Audience metadata is synced from [[= product_name_cdp =]] and persisted on the [[= product_name =]] side. +It's exposed through APIs, rather than being fetched from [[= product_name_cdp =]] on every request. + +This means that components, such as the [Targeting block](targeting_block.md), [audience preview](page_builder_guide.md#audience-preview), and the [Segments view](segments_admin_panel.md#segments-view), read metadata from [[= product_name =]] directly, instead of making a runtime request to [[= product_name_cdp =]]. +This makes setting up targeting rules and browsing audiences faster. + +Metadata refreshes automatically, without editors having to manually trigger an update. + +To retrieve audience metadata through the API, use the `SegmentationService`, as described in [Segment API](segment_api.md#getting-segment-information). diff --git a/docs/cdp/cdp_guide.md b/docs/cdp/cdp_guide.md index 477624e3aab..e814d0d56f1 100644 --- a/docs/cdp/cdp_guide.md +++ b/docs/cdp/cdp_guide.md @@ -103,6 +103,13 @@ You can also connect created audiences to the activations. ![Audience Builder](img/audience_builder.png) +#### Audience metadata + +For each audience, [[= product_name_cdp =]] retrieves metadata such as the number of profiles, description, tags, and the timestamp of the last update. +This metadata is synced and persisted on the [[= product_name =]] side, and then served through CMS APIs, so components like the [Targeting block](targeting_block.md), audience preview, and the [Segments view](segments_admin_panel.md#segments-view) don't need to make a live request to [[= product_name_cdp =]] for every audience. + +For more information, see [Audience metadata](cdp_audience_metadata.md). + ### Anonymous user segmentation [[= product_name_cdp =]] can build audiences for anonymous users, enabling personalised experiences for not logged-in visitors. diff --git a/docs/content_management/content_management_guide.md b/docs/content_management/content_management_guide.md index 8d6422a3c2b..949d650d6d5 100644 --- a/docs/content_management/content_management_guide.md +++ b/docs/content_management/content_management_guide.md @@ -1,5 +1,6 @@ --- description: Read the content management product guide and learn how to create, modify, and display information to the target audience. +month_change: true --- # Content management product guide @@ -208,6 +209,9 @@ Although segments aren't meant to classify content, they could fall into this ca With segments, you can reach specific groups, or categories, of visitors with specific information about content or products that could be of their interest. For example, you can build Pages that contain different recommendations, depending on who is visiting them. +Each segment, also referred to as an audience, contains metadata such as size, description, tags, and last update timestamp, synced from your CDP. +This metadata is available in the [Segments view](segments_admin_panel.md#segments-view), and while configuring the [Targeting block](targeting_block.md) in Page Builder. + ![A segment group with two user segments](img/user_segments.png) ## How to get started diff --git a/docs/content_management/pages/page_builder_guide.md b/docs/content_management/pages/page_builder_guide.md index 4dc104396d8..3a7c8b227ac 100644 --- a/docs/content_management/pages/page_builder_guide.md +++ b/docs/content_management/pages/page_builder_guide.md @@ -73,7 +73,7 @@ E. Buttons: |Button|Description| |------|-----------| |![Edit and preview switch](page_builder_toolbar_editpreview.png)|Access main properties of the page, like title and description.| -|![Preview segments](page_builder_toolbar_preview_segment.png)|Access preview of the page for a given segment.| +|![Preview segments](page_builder_toolbar_preview_segment.png)|Access [preview of the page for a given audience](#audience-preview).| |![Timeline button](page_builder_toolbartimelinetoggler.png)|Access the timeline to preview how the page changes with time. You can also view the list of all upcoming scheduled events.| |![View toggler](page_builder_toolbar_devicestoggler.png)|Toggle through to see how the page is rendered on different devices.| |![Page blocks menu](page_builder_toolbarelements.png)|Move Page blocks / Structure view to the other side of the screen.| @@ -187,6 +187,17 @@ You can schedule content to be revealed, or hidden in Page Builder in two ways w For more information, see [Schedule publication]([[= user_doc =]]/content_management/schedule_publishing/). +#### Audience preview + +When previewing content for a specific [audience](cdp_audience_metadata.md), editors can see the audience’s details and metadata without leaving Page Builder. + +Where the metadata is available, the tooltip includes: + +- thumbnail +- content type icon +- content name +- available language versions + ## Benefits ### Manage your pages without technical skills @@ -213,7 +224,7 @@ Additionally, Page Builder offers you a selection of ready-to-use page blocks th A. **Default** blocks: -- Targeting - embeds a content item based on the segment the user belongs to. +- [Targeting](targeting_block.md) - displays a content variation based on the audiences the user belongs to. B. **PIM** blocks: diff --git a/docs/content_management/pages/targeting_block.md b/docs/content_management/pages/targeting_block.md new file mode 100644 index 00000000000..6fce50724ca --- /dev/null +++ b/docs/content_management/pages/targeting_block.md @@ -0,0 +1,49 @@ +--- +description: Targeting block provides recommendation of content based on users related to the configured segments. +edition: experience +month_change: true +--- + +# Targeting block + +The Targeting block is a [Page Builder](page_builder_guide.md) block that displays a content variation based on the [audiences](cdp_audience_metadata.md) a visitor belongs to. +While configuring the block, you can see each audience's size, timestamp, and tags inline. + +## Multi-audience configuration + +The Targeting block lets you assign multiple audiences to a single content item in one configuration pass. + +Each variation in the block is configured with: + +- one or more audiences +- the content item to display when a visitor matches + +The system uses audiences in the order set by the editor. +If a visitor belongs to multiple audiences, the first matching audience determines the displayed variation. + +The same audience can be assigned to more than one variation. +If the same audience appears in multiple variations, visitors see the variation that comes first in the list. +To avoid audience overlaps, audiences already assigned to another variation are disabled and cannot be selected again. + +## Permissions + +Audience evaluation takes content permissions into account. +The system checks if the visitor can access the content for each audience. + +If a visitor belongs to multiple audiences: + +- the system checks audiences in the configured order +- the system checks the next matching audience if the visitor cannot access the content for the first one +- the system stops when it finds content the visitor can access + +If a visitor belongs to only one audience and cannot access the associated content, the system shows the [fallback content](targeting_block.md#fallback-content). + +## Fallback content + +Fallback content is rendered: + +- if a visitor belongs to only one audience and the associated content is not accessible +- whenever no accessible content variation can be displayed across all audiences the visitor belongs to +- the visitor doesn't belong to any of the configured audiences + +You can find the fallback selector at the bottom of the configuration screen, as it should be treated as the default option rather than the primary choice. diff --git a/docs/ibexa_products/ibexa_experience.md b/docs/ibexa_products/ibexa_experience.md index cd0db3f0f8a..103eb6a4577 100644 --- a/docs/ibexa_products/ibexa_experience.md +++ b/docs/ibexa_products/ibexa_experience.md @@ -92,9 +92,9 @@ Using this tool, your customers can change their organization details, invite an #### Segments -[Segmentation](segments_admin_panel.md) allows you to split up the user base. +[Segmentation](segments_admin_panel.md) allows you to split up the user base into audiences with the metadata such as size, description, tags, and last update timestamp synced from the CDP. By assigning users to segments, you can display specific content to selected visitors and tailor the content that they can see. -One of the tools that you can use right out of the box is the Targeting block that is available in the Page Builder. +One of the tools that you can use right out of the box is the [Targeting block](targeting_block.md) that is available in the Page Builder, where you can assign multiple audiences to a single content item. Segmentation is also useful with the [Recommendations](raptor_connector_guide.md). You can assign users to different recommendation groups and create advanced logic with operators to provide your audience with the best recommendations. diff --git a/docs/users/segment_api.md b/docs/users/segment_api.md index 2a96d10ecbd..6f582712229 100644 --- a/docs/users/segment_api.md +++ b/docs/users/segment_api.md @@ -24,6 +24,9 @@ Similarly, you can load a segment by using `SegmentationService::loadSegmentById [[= include_code('code_samples/api/public_php_api/src/Command/SegmentCommand.php', 57, 57, remove_indent=True) =]] ``` +The returned `Segment` includes [audience metadata](cdp_audience_metadata.md) synced from your CDP: the number of profiles in the audience, its description, tags, and the timestamp of the last update. +This metadata is read-only through the API, as it's kept up to date by the synchronization process rather than by manual updates. + ## Checking assignment You can check whether a user is assigned to a segment with `SegmentationService::isUserAssignedToSegment()`: diff --git a/mkdocs.yml b/mkdocs.yml index 3b409011525..2a6556efdbb 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -211,6 +211,7 @@ nav: - Page block attributes: content_management/pages/page_block_attributes.md - Page block validators: content_management/pages/page_block_validators.md - Create custom Page block: content_management/pages/create_custom_page_block.md + - Targeting block: content_management/pages/targeting_block.md - React App page block: content_management/pages/react_app_block.md - Ibexa Connect scenario block: content_management/pages/ibexa_connect_scenario_block.md - Forms: @@ -529,6 +530,7 @@ nav: - CDP add tracking: cdp/cdp_activation/cdp_add_tracking.md - CDP data export schedule: cdp/cdp_data_export_schedule.md - CDP data customization: cdp/cdp_data_customization.md + - CDP audience metadata: cdp/cdp_audience_metadata.md - Search: - Search: search/search.md - Search engines: