diff --git a/13/umbraco-ums/developers/headless/headless-example.md b/13/umbraco-ums/developers/headless/headless-example.md index e59b1aa422a..bb8d3251230 100644 --- a/13/umbraco-ums/developers/headless/headless-example.md +++ b/13/umbraco-ums/developers/headless/headless-example.md @@ -1,65 +1,80 @@ -# headless-example +--- +description: >- + This article shows how to personalize content using the uMarketingSuite Headless API and Umbraco’s Content Delivery API. +--- -This will show a simple tutorial to use the uMarketingSuite Headless API with Umbraco Content Delivery API. +# Headless Example -### Setting up a simple Personalization Segment +This article shows how to use the uMarketingSuite Headless API with Umbraco Content Delivery API. -* With uMarketingSuite goto the **Marketing** Section and the **Personalization** section -* Navigate to the **Segments** tab and click **Add new Segment** - * Give the segment a name such as **Morning People** or similar - * And a description such as **For people who like to visit us in the morning** - * Set the segment type to **Core** as we don't wish this to be temporary and tied to end date for a campaign - * Choose the parameter **Time of day** and set its configuration values to **Include** **00:00** to **12:00** as it is a 24 hour clock +## Setting up a Personalization Segment -Refer to the [documentation on Personalization to learn more](../../../../personalization/) what can be done. +1. Go to the **Marketing** > **Personalization** section. +2. Navigate to the **Segments** tab. +3. Click **Add new Segment**. + * Give the segment a name. For example: **Morning People**. + * And a description such as **For people who like to visit us in the morning**. + * Set the segment type to **Core** as we don't wish this to be temporary and tied to end date for a campaign. + * Select the **Time of day** parameter and configure it to **Include** times from **00:00** to **12:00** as it is a 24 hour clock. + +For more information, see the [Personalization](../personalization/README.md) documentation. ![]() -### Creating a Document Type to Personalize +### Creating a Document Type for Personalization + +1. Navigate to **Settings**. +2. Click **Create a New Document Type**. +3. Enable **Allow Segmentation** under **Permissions**. +4. Save the Document Type. +5. Add a new property, such as **Header**, using a **Textstring** property editor. + + * Ensure **Allow Segmentation** is enabled for this property. + +6. Create a piece of content using this new Document Type so we can query and request it using the Umbraco Content Delivery API -* Navigate to **Settings** and **Create a New Document Type** -* Ensure the setting **Allow Segmentation** is enabled under **Permissions** and Save the Document Type -* Add a new property to the document type such as **Header** using a **Textstring property editor** - * Ensure the property added has the **Allow Segmentation** value enabled -* Create a piece of content using this new Document Type so we can query and request it using the Umbraco Content Delivery API * _For this example lets create this piece of content at the root_ -### Creating Content that is personalized +### Creating Personalized Content + +1. Open the created content and go to **Personalization**. +2. Click **Add personalized variant**. +3. Set the following in the **Add a new variant** dialog: -* With a simple piece of content created click the **Personalization** content app -* Click the **Add personalized variant** button -* In the Add a new variant dialog we can set the following - * Choose our segment **Morning People** we added earlier - * Give it a name and a meaningful descriptions such as **Home Page for Morning People** + * Choose the segment **Morning People** we added earlier. + * Give it a name and a meaningful description such as **Home Page for Morning People**. ![]() -* After adding the variant we will return to the content node in split view mode -* We can then add a different piece of content we want to return in our Header property specific to morning people such as **Hello you EARLY risers** -* Save and publish the node with the variant content +4. After adding the variant we will return to the content node in split view mode +5. We can then add a different piece of content we want to return in our Header property specific to morning people such as **Hello you early risers** +6. Save and publish the node with the variant content ![]() ### Using the Content Delivery API -We will do the reminder of this tutorial using the Swagger development tool, so we can easily create requests against Umbraco Content Delivery API and uMarketingSuite Headless - -* Navigate to the swagger endpoint of your site **/umbraco/swagger** -* From the dropdown select the **Umbraco Delivery API** -* Expand the \*\*/umbraco/delivery/api/v1/content/item/{path}\*\*request - * Click the **Try it out** button - * For the path parameter enter / for the example piece of content we created at the root of our site - alternatively specify the correct URL path to the content - * You may need to set the **Api-Key** parameter depending if your Umbraco application has been [setup to allow Public Access](https://docs.umbraco.com/umbraco-cms/reference/content-delivery-api#additional-configuration) this can be toggled with the configuration value _Umbraco:CMS:DeliveryAPI:PublicAccess_ -* If everything is working correctly we should see the JSON result of the content node and see the default value for our header -* Next from the definitions dropdown navigate to **uMarketingSuite Marketing API** -* Expand the **/umbraco/umarketingsuite/api/v1/analytics/pageview/trackpageview/client**request - * Click the **Try it out** button - * Modify the JSON body, we need to set the url property to be the page we have just visited with the content delivery api above and we can leave the other property **referrerUrl** empty -* Repeat the earlier steps to fetch the content by it's path and you should note that the JSON of the content node and the header property now contains our personalized content **Hello you EARLY risers** - * Remember it will only show us different content if we are to view the page before midday +Let us use the Swagger development tool to make requests to the Umbraco Content Delivery API and uMarketingSuite Headless API. -![]() +1. Navigate to the swagger endpoint of your site **/umbraco/swagger**. +2. Select **Umbraco Delivery API** from the dropdown. +3. Expand `/umbraco/delivery/api/v1/content/item/{path}`: + + * Click **Try it out**. + * For the path parameter, enter `/` for the example piece of content we created at the root of our site - alternatively specify the correct URL path to the content + * Set the **Api-Key** parameter if your Umbraco application requires [Public Access](https://docs.umbraco.com/umbraco-cms/reference/content-delivery-api#additional-configuration) this can be toggled with the configuration value `Umbraco:CMS:DeliveryAPI:PublicAccess` + +4. You should see the JSON result of the content node, including the default header value. +5. Navigate to **uMarketingSuite Marketing API** from the definitions dropdown. +* Expand `/umbraco/umarketingsuite/api/v1/analytics/pageview/trackpageview/client`: -**Disclaimer**: Due to the way uMarketingSuite is licenced to individual domains, it is required that the Host Header matches one of the registered licenced domains in order for personalisation and A/B Testing on the Content Delivery API to work + * Click **Try it out**. + * Modify the JSON body, setting the URL to the page visited earlier. With the content delivery api above, leave the other property **referrerUrl** empty. +* Repeat the earlier steps to fetch the content by it's path. The JSON of the content node and the header property now contains our personalized content **Hello you early risers** + * Remember it will only show different content if we view the page before midday. + +![]() -TADA that's it you can see how easy it is. +{% hint style="info" %} +uMarketingSuite is licensed to individual domains. It requires the Host Header to match one of the registered licensed domains for personalization and A/B Testing to work. +{% endhint %} diff --git a/13/umbraco-ums/marketers-and-editors/personalization/cockpit-insights.md b/13/umbraco-ums/marketers-and-editors/personalization/cockpit-insights.md index f137f97d1f6..cd1e957faab 100644 --- a/13/umbraco-ums/marketers-and-editors/personalization/cockpit-insights.md +++ b/13/umbraco-ums/marketers-and-editors/personalization/cockpit-insights.md @@ -1,17 +1,28 @@ +--- +description: >- + This article explains how to use the uMarketingSuite cockpit to verify tracking and understand personalization in your analytics. +--- + # Cockpit Insights -To verify whether the tracking of uMarketingSuite analytics works correctly and to get a better understanding of the way personalization works in the uMarketingSuite we've added a cockpit to the uMarketingSuite. The cockpit gives you an additional button in the frontend that allows you to see what actually is going on: +uMarketingSuite includes a cockpit feature to help verify the tracking of analytics and understand personalization behavior. The cockpit adds a button to the frontend, giving real-time insights: ![]() -If you click on it, it will open and you see even more information: +Clicking the button provides detailed information: ![]() -To add the cockpit to your website you need to render the html partial that is shipped by default by the uMarketingSuite. The partial view is located in the folder **/Views/Partials/uMarketings/Cockpit.cshtml**. +## Adding the Cockpit to Your Website + +To add the cockpit to your website: -The view can be rendered by adding in this code snippets before the closing **</body>**-tag: +1. Render the HTML partial provided by uMarketingSuite. +2. The partial view is located at `/Views/Partials/uMarketings/Cockpit.cshtml`. +3. Insert the following code before the closing `
` tag: + ```cs @Html.Partial("uMarketingSuite/Cockpit") + ``` -The cockpit itself will only be rendered if the user is logged into Umbraco. \ No newline at end of file +The cockpit will only be rendered if the user is logged into Umbraco. diff --git a/13/umbraco-ums/marketers-and-editors/personalization/creating-a-segment.md b/13/umbraco-ums/marketers-and-editors/personalization/creating-a-segment.md index d44cf0470af..ec7454cb05f 100644 --- a/13/umbraco-ums/marketers-and-editors/personalization/creating-a-segment.md +++ b/13/umbraco-ums/marketers-and-editors/personalization/creating-a-segment.md @@ -56,9 +56,9 @@ You see all browsers that have visited the website. So if you're missing a speci You can save the parameter and the segment will show the parameter that is part of this segment. -![]() +![]() -3\. Add a parameter for **Time of day** to select all visitors after "**15:00**". Enter **15:00** in **From** and leave **Until** empty. +3. Add a parameter for **Time of day** to select all visitors after "**15:00**". Enter **15:00** in **From** and leave **Until** empty. ![]() diff --git a/13/umbraco-ums/marketers-and-editors/profiling/profile-detail.md b/13/umbraco-ums/marketers-and-editors/profiling/profile-detail.md index b1fcebf4f3c..5cc90ad0849 100644 --- a/13/umbraco-ums/marketers-and-editors/profiling/profile-detail.md +++ b/13/umbraco-ums/marketers-and-editors/profiling/profile-detail.md @@ -1,80 +1,93 @@ +--- +description: >- + Discover how to analyze visitor profiles, including insights on engagement metrics, + potential, personas, and detailed activity tracking. +--- + # Profile Detail -If you go to a specific profile in the Profiles section you get access to two sections in that profiles "Insights" & "Activity" +In the Profiles section, you can access specific visitor profiles, which contain two sections: **Insights** and **Activity**. ## Insights -The insights section shows you an overview of the visitor +The insights section provides an overview of the visitor. ![]() -You see when the visitor first visited the website (first session), when the visitor has been to the website for the last time (Last activity), the number of sessions, the number of pageviews, the time spent on the website and the total engaged time. +Here, you can see: + +- The date of the visitor's first session on the website, +- The date of the visitor's last activity, +- The number of sessions, +- The number of pageviews, +- The time spent on the website, and +- The total engaged time. -You also see if there any goals triggered by this visitor. +You can also view any goals triggered by this visitor. -### Profile potential +### Profile Potential ![]() The uMarketingSuite will also show the potential of the profile based on the engagement time and when the profile was last active. -By default a profile is considered active if the profile has visited the website in the last 30 days. +By default, a profile is considered active if the profile has visited the website in the last 30 days. -By default a profile is considered engaged when the engagement time of the visitor was higher than 300 seconds in the last 3 sessions. +By default, a profile is considered engaged when the engagement time of the visitor was higher than 300 seconds in the last 3 sessions. The exact settings (30 days, 300 seconds, 3 sessions) can be overwritten via the [uMarketingSuite configuration file](/installing-umarketingsuite/configuration-options-1-x/). -## Calculated persona & customer journey phase +## Calculated Persona & Customer Journey Phase -On the profile we will also see all [personas](/personalization/implicit-explicit-personalization/setting-up-personas/) and [customer journeys](/personalization/implicit-explicit-personalization/setting-up-the-customer-journey/) that you have setup within the uMarketingSuite. Per persona and customer journey phase the score is shown and we will show if they uMarketingSuite assigns a persona or customer journey phase to this visitor. In the below example you see that the uMarketingSuite has assigned the persona "Data & Privacy officer" to this visitor. +Within the profile, you can see all [personas](/personalization/implicit-explicit-personalization/setting-up-personas/) and [customer journeys](/personalization/implicit-explicit-personalization/setting-up-the-customer-journey/) that you have setup within the uMarketingSuite. Each persona and customer journey phase displays a score. You can see if uMarketingSuite has assigned a persona or journey phase to this visitor. In the below example, you see that the uMarketingSuite has assigned the persona "Data & Privacy officer" to this visitor. ![]() ![]() -## Activity tab +## Activity Tab -In the Activity tab you see all the activity of this visitor. +In the Activity tab, you can view all the activity of this visitor. ![]() -Per session you see: +For each session, you can see: -- the first icon shows if the uMarketingSuite enriched the visitor experience (blue icon) by showing an A/B Test variant or personalized variant to the visitor. If that was not the case we show a grey icon. -- when the session was recorded -- which device type was uesed -- the number of pages that where visited in this session -- the duration of the session -- how long the person was engaged -- the number of goals that was triggered -- the events that were triggered -- on which page the session started -- from which website the visitor came into your website +- An icon indicating whether the uMarketingSuite enriched the visitor's experience (blue icon for A/B Test variant or personalized variant; grey icon if not). +- The timestamp when the session was recorded. +- Which device type was uesed. +- The number of pages that where visited in this session. +- The duration of the session. +- How long the person was engaged. +- The number of goals that was triggered. +- The events that were triggered. +- On which page the session started. +- From which website the visitor came into your website. -By clicking on the row you see more in-depth data of that session +By clicking on a row, you can access more detailed information about that session. ![]() -You see: +You will see: -- The visited page -- The time of visit -- The time on page -- The engaged time on page -- The scroll depth on that page -- The number of goals that where triggered -- The number of recorded events -- The variant of the page that somebody saw -- Also you see which Operating System, Browser and (anonymized) IP address is being used -- Finally the icon on the beginning indicates whether the person saw a personalized or A/B tested variant of the page +- The visited page. +- The time of visit. +- The time on page. +- The engaged time on page. +- The scroll depth on that page. +- The number of goals that where triggered. +- The number of recorded events. +- The variant of the page displayed to the visitor. +- The operating system, browser, and (anonymized) IP address used. +- An icon indicating whether the visitor saw a personalized or A/B tested variant of the page. -Finally you can also drilldown into the activity on a specific page: +Finally, you can drill down into the activity on a specific page: ![]() -Here you see when somebody: +Here, you can see: -- started a visit on the page -- when the maximum scroll depth was reached -- when the visit was ended -- when goals where triggered \ No newline at end of file +- When the visitor started their visit on the page. +- When the maximum scroll depth was reached. +- When the visit ended. +- When goals were triggered. diff --git a/13/umbraco-ums/security-and-privacy/gdpr/how-to-become-gdpr-compliant-using-cookiebot.md b/13/umbraco-ums/security-and-privacy/gdpr/how-to-become-gdpr-compliant-using-cookiebot.md index e3e30634fe9..8f7fbfa305b 100644 --- a/13/umbraco-ums/security-and-privacy/gdpr/how-to-become-gdpr-compliant-using-cookiebot.md +++ b/13/umbraco-ums/security-and-privacy/gdpr/how-to-become-gdpr-compliant-using-cookiebot.md @@ -1,26 +1,31 @@ +--- +description: >- + This article explains how to implement CookieBot with uMarketingSuite to comply with GDPR. +--- + # How To Become GDPR Compliant Using Cookiebot -You can integrate with a cookie consent banner service such as CookieBot and [depending on the users choice you can configure certain parts of uMS](../../../../the-umarketingsuite-broad-overview/the-umarketingsuite-cookie/module-permissions/). +Integrating a cookie consent banner service such as CookieBot allows you to configure parts of uMarketingSuite based on [user consent](../../../../the-umarketingsuite-broad-overview/the-umarketingsuite-cookie/module-permissions/). -This has been covered in our documentation previously, but this tutorial gives you a full working implementation to use with [CookieBot](https://www.cookiebot.com/) in particular. +This article gives you a working implementation to use with [CookieBot](https://www.cookiebot.com/). ![]() ## Code Example -The code example below shows how to create the back-end code to read the CookieBot consent cookie from the end-user, and based on that decides which features of uMarketingSuite it should enable or disable. +The code example below shows how to create the backend code to read the CookieBot consent cookie from the end-user. Based on that, decide which features of uMarketingSuite it should enable or disable. -First we need to create a class that implements the interface **uMarketingSuite.Business.Permissions.ModulePermissions.IModulePermissions** +1. Create a class that implements the `uMarketingSuite.Business.Permissions.ModulePermissions.IModulePermissions` interface. -We can use this class to check the current HTTPContext Request Cookies for the CookieBot cookie which is named **CookieConsent** +2. Check the current HTTPContext Request Cookies for the CookieBot cookie which is named **CookieConsent** -From some of the [documentation from CookieBot](https://www.cookiebot.com/en/developer/) we can implement the same logic to check if the value of the cookie is -1 or another value. If it is set to -1, CookieBot is indicating to us that this is a user within a region that does not require consent. +From some of the [documentation from CookieBot](https://www.cookiebot.com/en/developer/), implement the same logic to check if the value of the cookie is -1 or another value. If it is set to -1, CookieBot is indicating to us that this is a user within a region that does not require consent. -The rest of the code is deserializing the JSON string stored inside the cookie from CookieBot and mapping it the relevant cookie permission we want to use for turning on or off the uMarketingSuite features. +The rest of the code is deserializing the JSON string stored inside the cookie from CookieBot. It maps to the relevant cookie permission used for turning the uMarketingSuite features on or off. **CookieBotModulePermissions.cs** -``` +```cs using Microsoft.AspNetCore.Http; using Newtonsoft.Json; using System.Web; @@ -150,7 +155,7 @@ namespace uMarketingSuite.StarterKit.CookieBot **CookieBotComposer.cs** -``` +```cs using uMarketingSuite.Business.Permissions.ModulePermissions; using uMarketingSuite.Common.Composing; using Umbraco.Cms.Core.Composing; @@ -170,9 +175,9 @@ namespace uMarketingSuite.StarterKit.CookieBot } ``` -#### CookieBot Cookie +### CookieBot Cookie Keys -We use the existing CookieBot cookie Keys map these to the following uMarketingSuite features +The existing CookieBot cookie Keys are mapped to the following uMarketingSuite features: | **CookieBot Key** | **uMarketingSuite Feature** | | ----------------- | --------------------------- | @@ -180,23 +185,31 @@ We use the existing CookieBot cookie Keys map these to the following uMarketingS | Statistics | Analytics | | Marketing | A/B Testing | -#### Configuring CookieBot +### Configuring CookieBot -Please refer to CookieBot documentation on how to setup and configure your Cookie Consent Banner. This allows you to change the wording and the look and feel of the cookie consent banner to suit your needs along with its placement etc. +For information on setting up and configuring your Cookie Consent Banner, see the [Cookiebot Documentation](https://www.cookiebot.com/en/developer/). It contains information on changing the wording and the look and feel of the cookie consent banner. -#### Installing CookieBot +### Installing CookieBot -From the CookieBot website after generating your cookie consent banner, it gives you a JavaScript tag that you need to insert into the **\
** of your HTML template such as. +To install CookieBot, insert the JavaScript tag provided by CookieBot into the `
` of your HTML template: -``` +```html ``` -#### Tracking a visitors Initial Pageview +### Tracking a Visitors Initial Pageview + +uMarketingSuite does not actively track visitors until they have given their consent in the Cookiebot configuration. After the visitor consents, you need to **reload** the page to track the visit. If no reload is performed the visitors referrer and/or campaign information will not be tracked! + +Use JavaScript to reload the page when consent is given by handling the **CookiebotOnAccept** event: + +```js +window.location.reload(); +``` -Because uMarketingSuite does not actively track visitors until they have given their consent in the Cookiebot configuration as setup in this tutorial, it is required to **reload the current page as soon as the visitor has given consent** in order to track the current page visit the visitor has given consent on. If no reload is performed the visitors referrer and/or campaign information will not be tracked! +Calling the above method will preserve any referrers and query strings supplied in the current request. It results in uMarketingSuite processing the current page visit and visitor correctly. -You can do this by hooking into & handling the CookiebotOnAccept Event as described in the [Cookiebot documentation](https://www.cookiebot.com/en/developer/#h-event-handling), and forcing a page reload using Javascript after the visitor has given consent. Calling the "window.location.reload();" method would be the preferred option, as this will preserve any referrers & query strings supplied in the current request, resulting in uMarketingSuite processing the current page visit & visitor correctly +For more details, see [Cookiebot Documentation](https://www.cookiebot.com/en/developer/#h-event-handling). diff --git a/13/umbraco-ums/security-and-privacy/how-it-works.md b/13/umbraco-ums/security-and-privacy/how-it-works.md index 13f20cc17f5..7332bfd42b7 100644 --- a/13/umbraco-ums/security-and-privacy/how-it-works.md +++ b/13/umbraco-ums/security-and-privacy/how-it-works.md @@ -1,8 +1,13 @@ +--- +description: >- + This article explains how to implement CookieBot with uMarketingSuite to comply with GDPR. +--- + # How it works -When visitors are accepting the uMarketingSuite cookie on the website, it allows uMarketingSuite to collect and store data about their browsing behavior, preferences, and interactions. This data can include things like pages visited, time spent on each page, actions taken on the site, and more. This data can't be shared with 3rd parties because the data is stored in the local database of the site. +When visitors accept the uMarketingSuite cookie on the website, it allows uMarketingSuite to collect and store data about their browsing behavior, preferences, and interactions. This data can include things like pages visited, time spent on each page, actions taken on the site, and more. This data can't be shared with 3rd parties because the data is stored in the local database of the site. -With this information, uMarketingSuite can use this collected information to: +With this information, uMarketingSuite uses this information to: - Show Analytics - Run A/B tests @@ -16,8 +21,8 @@ When visitors do not accept the uMarketingSuite cookie, the website's ability to - No Personalization - No Profiling -To comply with privacy regulations like GDPR or CCPA, websites often give users the option to accept or reject cookies, [read more here how to accomplish this](/the-umarketingsuite-broad-overview/the-umarketingsuite-cookie/module-permissions/). This choice impacts the kind and depth of data collected and consequently affects the statistical analysis and personalization capabilities for those visitors. +To comply with privacy regulations like GDPR or California Consumer Privacy Act (CCPA), websites often give users the option to accept or reject cookies. This choice impacts the type and depth of data collected and consequently affects the statistical analysis and personalization capabilities for those visitors. Learn more about [cookie permissions](/the-umarketingsuite-broad-overview/the-umarketingsuite-cookie/module-permissions/). -Please see the diagram below for a general overview: +The diagram below provides a general overview: ![]() \ No newline at end of file