From 124e8d5fbfe648b605a55e45747da435c41bf2cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Thu, 14 May 2026 12:03:40 +0200 Subject: [PATCH 1/3] Added doc for Anonymous user segmentation in CDP --- docs/cdp/cdp_activation/cdp_activation.md | 4 +- ...ntside_tracking.md => cdp_add_tracking.md} | 2 +- docs/cdp/cdp_activation/cdp_configuration.md | 39 +++++++++++++++++++ docs/cdp/cdp_guide.md | 10 ++++- docs/cdp/cdp_installation.md | 4 +- mkdocs.yml | 2 +- plugins.yml | 3 +- 7 files changed, 56 insertions(+), 8 deletions(-) rename docs/cdp/cdp_activation/{cdp_add_clientside_tracking.md => cdp_add_tracking.md} (98%) diff --git a/docs/cdp/cdp_activation/cdp_activation.md b/docs/cdp/cdp_activation/cdp_activation.md index c15223bb64..432cf3bf25 100644 --- a/docs/cdp/cdp_activation/cdp_activation.md +++ b/docs/cdp/cdp_activation/cdp_activation.md @@ -13,5 +13,5 @@ Activation includes configuration, data export and adding Client-side Tracking. [[= cards([ "cdp/cdp_activation/cdp_configuration", "cdp/cdp_activation/cdp_data_export", - "cdp/cdp_activation/cdp_add_clientside_tracking", -], columns=3) =]] \ No newline at end of file + "cdp/cdp_activation/cdp_add_tracking", +], columns=3) =]] diff --git a/docs/cdp/cdp_activation/cdp_add_clientside_tracking.md b/docs/cdp/cdp_activation/cdp_add_tracking.md similarity index 98% rename from docs/cdp/cdp_activation/cdp_add_clientside_tracking.md rename to docs/cdp/cdp_activation/cdp_add_tracking.md index b57ccf37c2..2e0bfc9e94 100644 --- a/docs/cdp/cdp_activation/cdp_add_clientside_tracking.md +++ b/docs/cdp/cdp_activation/cdp_add_tracking.md @@ -32,4 +32,4 @@ Add the user ID information by using below script: raptor.push("setRuid","USER_ID_HERE") ``` -For more information on tracking events, see [the documentation](https://content.raptorservices.com/help-center/tracking-events-for-recommendation). \ No newline at end of file +For more information on tracking events, see [the documentation](https://content.raptorservices.com/help-center/tracking-events-for-recommendation). diff --git a/docs/cdp/cdp_activation/cdp_configuration.md b/docs/cdp/cdp_activation/cdp_configuration.md index cba8400133..1db9b6e795 100644 --- a/docs/cdp/cdp_activation/cdp_configuration.md +++ b/docs/cdp/cdp_activation/cdp_configuration.md @@ -31,6 +31,9 @@ ibexa: client_id: '%env(CDP_ACTIVATION_CLIENT_ID)%' client_secret: '%env(CDP_ACTIVATION_CLIENT_SECRET)%' segment_group_identifier: example_segment_group_identifier + membership: # For anonymous user segmentation + activation_id: '%env(CDP_MEMBERSHIP_ACTIVATION_ID)%' + api_key: '%env(CDP_MEMBERSHIP_API_KEY)%' ``` - `account_number` - a [number](#account-number) obtained from Accounts settings in [[= product_name_cdp =]] dashboard @@ -38,6 +41,7 @@ ibexa: - `activations` - activation details. You can configure multiple activations. They have to be of type `Ibexa` in [[= product_name =]] dashboard - `client_id` and `client_secret` - client credentials are used to authenticate against the Webhook endpoint. Make sure they're random and secure - `segment_group_identifier` - a [location](#segment-group) to which CDP data is imported +- `membership.activation_id` and `membership.api_key` - credentials for the CDP Membership API, required for [anonymous user segmentation](#anonymous-user-segmentation) ## Account number @@ -65,3 +69,38 @@ Choose wisely, as once connected to CDP segment group cannot be changed. ![Creating a new segment group](cdp_create_segment_group.png) Next, add a segment group identifier to the configuration. + +## Anonymous user segmentation + +To set up [segmentation for Anonymous visitors](cdp_guide.md#anonymous-user-segmentation), execute the following steps: + +### Set up CDP API activation + +Create an activation of type "CDP API" in the Raptor dashboard. +For instructions, see [CDP API activations](https://content.raptorservices.com/help-center/cdp/activations/cdp-api) in Raptor documentation. + +### Configure website tracking dataflow + +Set up a "website tracking" dataflow with `coid` (cookie ID) as the person identifier so that Raptor can use the tracking data in the CDP. + +For more information, see [Introduction to the Data Manager](https://content.raptorservices.com/help-center/tools/datamanager/introduction-to-the-data-manager) in Raptor documentation. + +### Configuration + +Add the `membership.activation_id` and `membership.api_key` credentials to your [`ibexa_cdp` configuration](#configuration). + +To control how long resolved segment memberships are cached per visitor, use the `ibexa_segmentation.anonymous.cache` configuration key: + +```yaml +# config/packages/ibexa_segmentation.yaml +ibexa_segmentation: + anonymous: + cache: + enabled: true # default; set to false to disable + ttl: 300 # cache lifetime in seconds, default 300 (5 minutes) + pool: 'ibexa.cache_pool' # Symfony cache pool service ID, default ibexa.cache_pool +``` + +- `enabled` - whether to cache CDP segment results per visitor cookie. Disabling this causes an additional API call to Raptor on every request +- `ttl` - how long resolved segment results are cached per visitor (in seconds) +- `pool` - the Symfony cache pool used to store the results diff --git a/docs/cdp/cdp_guide.md b/docs/cdp/cdp_guide.md index 18de2e1d9d..e8988a5377 100644 --- a/docs/cdp/cdp_guide.md +++ b/docs/cdp/cdp_guide.md @@ -1,5 +1,5 @@ --- -description: The Ibexa CDP product guide describes all the possibilities that the Customer Data Platform offers to help you build great customer experiences. +description: The [[= product_name_cdp =]] product guide describes all the possibilities that the Customer Data Platform offers to help you build great customer experiences. edition: experience --- @@ -103,6 +103,14 @@ You can also connect created audiences to the activations. ![Audience Builder](img/audience_builder.png) +### Anonymous user segmentation + +[[= product_name =]] can resolve CDP segments for anonymour users, enabling personalised content delivery for not logged-in visitors. + +When an anonymous visitor accesses your site, Raptor starts building an [anonymous profile](https://content.raptorservices.com/help-center/introduction-to-person-identifiers-and-profile-unification). + +You can segment these anonymous profiles into different audiences, exactly as in case of logged-in users, and use this information in [[= product_name =]] to provide personalized experiences for them. + ## Benefits ### Personalized user experience diff --git a/docs/cdp/cdp_installation.md b/docs/cdp/cdp_installation.md index 73ba9dd5ae..30a7162a06 100644 --- a/docs/cdp/cdp_installation.md +++ b/docs/cdp/cdp_installation.md @@ -1,5 +1,5 @@ --- -description: Installation of standalone Ibexa CDP package. +description: Installation of standalone [[= product_name_cdp =]] package. edition: experience --- @@ -10,7 +10,7 @@ First, you need to register your [[= product_name_cdp =]] account, then you can ## Register in [[= product_name_cdp =]] dashboard -If you decide to acquire [[= product_name_cdp =]] contact your sales representative, they provide you with a registration link to [[= product_name_cdp =]]. +If you decide to acquire [[= product_name_cdp =]], contact your sales representative to receive a registration link to [[= product_name_cdp =]]. After registration, you get access to a separate instance where you can find data required for configuring, activating, and using this feature. ## Install CDP package diff --git a/mkdocs.yml b/mkdocs.yml index a2082cc594..60d03f31fe 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -528,7 +528,7 @@ nav: - CDP activation: cdp/cdp_activation/cdp_activation.md - CDP configuration: cdp/cdp_activation/cdp_configuration.md - CDP data export: cdp/cdp_activation/cdp_data_export.md - - CDP add client-side tracking: cdp/cdp_activation/cdp_add_clientside_tracking.md + - 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 - Search: diff --git a/plugins.yml b/plugins.yml index 77c3fd4879..90a0283964 100644 --- a/plugins.yml +++ b/plugins.yml @@ -249,7 +249,6 @@ plugins: 'guide/basket/basket.md': 'commerce/commerce.md' 'guide/basket/wishlist_and_stored_baskets.md': 'commerce/commerce.md' 'commerce/wishlist_and_stored_baskets.md': 'commerce/commerce.md' - 'commerce/basket.md': 'commerce/commerce.md' 'guide/checkout/checkout.md': 'commerce/checkout/checkout.md' 'guide/checkout/order_confirmation.md': 'commerce/checkout/checkout.md' 'commerce/checkout/order_confirmation.md': 'commerce/checkout/checkout.md' @@ -586,3 +585,5 @@ plugins: 'ai_actions/install_ai_actions.md': 'ai_actions/configure_ai_actions.md' 'discounts/install_discounts.md': 'discounts/configure_discounts.md' 'content_management/collaborative_editing/install_collaborative_editing.md': 'content_management/collaborative_editing/configure_collaborative_editing.md' + + 'cdp/cdp_activation/cdp_add_clientside_tracking.md': 'cdp/cdp_activation/cdp_add_tracking.md' From 03ea2e30bca3439358e61fcf72a5509e3367ab82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Thu, 14 May 2026 12:03:52 +0200 Subject: [PATCH 2/3] New content for renamed file --- docs/cdp/cdp_activation/cdp_add_tracking.md | 25 ++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/docs/cdp/cdp_activation/cdp_add_tracking.md b/docs/cdp/cdp_activation/cdp_add_tracking.md index 2e0bfc9e94..7a1486df22 100644 --- a/docs/cdp/cdp_activation/cdp_add_tracking.md +++ b/docs/cdp/cdp_activation/cdp_add_tracking.md @@ -1,14 +1,27 @@ --- -description: Client-side Tracking in Ibexa CDP. +description: Adding tracking in [[= product_name_cdp =]]. edition: experience --- -# Add Client-side Tracking +# Add tracking + +The final step is setting up a tracking script that identifies visitors and records their interactions. +You can set it up in two ways: + +## Tracking with built-in Raptor tracking functions + +If your project uses the [Raptor connector](raptor_connector.md), use the built-in [Raptor tracking functions](tracking_functions.md). +This recommended approach supports both client-side and server-side tracking, handles cookie consent, and sets the tracking cookie required for [anonymous user segmentation](cdp_configuration.md#anonymous-user-segmentation). + +For setup instructions, see [Raptor tracking functions](tracking_functions.md). + +## Manual setup + +If you aren't using the Raptor connector, you can set up tracking manually. -The final step is setting up a tracking script. It requires a head tracking script between the `` tags on your website, a main script after the head script, and cookie consent. -For more information about setting up a tracking script, see [Raptor documentation](https://content.raptorservices.com/help-center/client-side-tracking). +For more information about setting up a tracking script manually, see [Raptor documentation](https://content.raptorservices.com/help-center/client-side-tracking). Now, you need to add a tracker to specific places in your website where you want to track users. For example, add this tracker to the landing page template to track user entrances. @@ -26,10 +39,12 @@ raptor.trackEvent('buy', ..., ...); ``` For tracking to be effective, you also need to send ID of a logged-in user in the same way. -Add the user ID information by using below script: +Add the user ID information of logged-in users by using below script: ```js raptor.push("setRuid","USER_ID_HERE") ``` +For anonymous visitors, Raptor's tracking script automatically sets an `rsa` cookie that uniquely identifies the visitor, without calling the `setRuid` method. + For more information on tracking events, see [the documentation](https://content.raptorservices.com/help-center/tracking-events-for-recommendation). From db9749a9d91abc92d4d2aff336448f1e2d4ea186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Noco=C5=84?= Date: Thu, 14 May 2026 12:16:56 +0200 Subject: [PATCH 3/3] Selfreview --- docs/cdp/cdp_activation/cdp_activation.md | 2 +- docs/cdp/cdp_activation/cdp_configuration.md | 14 +++++++++----- docs/cdp/cdp_guide.md | 4 ++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/docs/cdp/cdp_activation/cdp_activation.md b/docs/cdp/cdp_activation/cdp_activation.md index 432cf3bf25..f93aa9a94c 100644 --- a/docs/cdp/cdp_activation/cdp_activation.md +++ b/docs/cdp/cdp_activation/cdp_activation.md @@ -8,7 +8,7 @@ edition: experience Follow a step-by-step procedure that allows you to activate [[= product_name_cdp =]]. -Activation includes configuration, data export and adding Client-side Tracking. +Activation includes configuration, data export and adding tracking. [[= cards([ "cdp/cdp_activation/cdp_configuration", diff --git a/docs/cdp/cdp_activation/cdp_configuration.md b/docs/cdp/cdp_activation/cdp_configuration.md index 1db9b6e795..d210d8b68f 100644 --- a/docs/cdp/cdp_activation/cdp_configuration.md +++ b/docs/cdp/cdp_activation/cdp_configuration.md @@ -32,8 +32,10 @@ ibexa: client_secret: '%env(CDP_ACTIVATION_CLIENT_SECRET)%' segment_group_identifier: example_segment_group_identifier membership: # For anonymous user segmentation - activation_id: '%env(CDP_MEMBERSHIP_ACTIVATION_ID)%' - api_key: '%env(CDP_MEMBERSHIP_API_KEY)%' + activation_id: '%env(CDP_API_ACTIVATION_ID)%' + api_key: '%env(CDP_API_KEY)%' + base_url: 'https://cdp-api.raptorsmartadvisor.com' + timeout: 5 ``` - `account_number` - a [number](#account-number) obtained from Accounts settings in [[= product_name_cdp =]] dashboard @@ -42,6 +44,8 @@ ibexa: - `client_id` and `client_secret` - client credentials are used to authenticate against the Webhook endpoint. Make sure they're random and secure - `segment_group_identifier` - a [location](#segment-group) to which CDP data is imported - `membership.activation_id` and `membership.api_key` - credentials for the CDP Membership API, required for [anonymous user segmentation](#anonymous-user-segmentation) +- `membership.base_url` - base URL of the CDP Membership API (default: `https://cdp-api.raptorsmartadvisor.com`) +- `membership.timeout` - timeout in seconds for Membership API requests (default: `5`) ## Account number @@ -81,13 +85,13 @@ For instructions, see [CDP API activations](https://content.raptorservices.com/h ### Configure website tracking dataflow -Set up a "website tracking" dataflow with `coid` (cookie ID) as the person identifier so that Raptor can use the tracking data in the CDP. +Set up a "Website tracking" dataflow with `coid` (cookie ID) as the person identifier so that Raptor can use the tracking data in the CDP. -For more information, see [Introduction to the Data Manager](https://content.raptorservices.com/help-center/tools/datamanager/introduction-to-the-data-manager) in Raptor documentation. +For more information, see [Website tracking dataflow](https://content.raptorservices.com/help-center/tools/datamanager/introduction-to-the-data-manager#:~:text=Website%20tracking,-You) in Raptor documentation. ### Configuration -Add the `membership.activation_id` and `membership.api_key` credentials to your [`ibexa_cdp` configuration](#configuration). +First, add the `membership.activation_id` and `membership.api_key` credentials to your [`ibexa_cdp` configuration](#configuration), using the values for [CDP API activation](#set-up-cdp-api-activation). To control how long resolved segment memberships are cached per visitor, use the `ibexa_segmentation.anonymous.cache` configuration key: diff --git a/docs/cdp/cdp_guide.md b/docs/cdp/cdp_guide.md index e8988a5377..f54705bf8a 100644 --- a/docs/cdp/cdp_guide.md +++ b/docs/cdp/cdp_guide.md @@ -105,11 +105,11 @@ You can also connect created audiences to the activations. ### Anonymous user segmentation -[[= product_name =]] can resolve CDP segments for anonymour users, enabling personalised content delivery for not logged-in visitors. +[[= product_name_cdp =]] can build audiences for anonymour users, enabling personalised experiences for not logged-in visitors. When an anonymous visitor accesses your site, Raptor starts building an [anonymous profile](https://content.raptorservices.com/help-center/introduction-to-person-identifiers-and-profile-unification). -You can segment these anonymous profiles into different audiences, exactly as in case of logged-in users, and use this information in [[= product_name =]] to provide personalized experiences for them. +You can segment these anonymous profiles into different audiences, exactly as in case of logged-in users, and use this information in [[= product_name =]] to provide personalized experiences. ## Benefits