Profile Marker are marker RepositoryItem that attaches to a user profile. Use profile markers when you want to “mark” a user’s profile with some information.
For example navigate to one of your sites by way of an advertisement on another site. If you were to create a mechanism that extracts the site name and advertisement ID from the URL, when the user browses to your site, that information could be stored in a marker on the user’s profile.
Each profile marker has several properties, the most important of which are key, value and data. You should use these properties to hold string values that define the marker or represent the particular circumstances in which the marker is assigned.
For more info please go through the following documentation link:
And just to add on what Gurvinder already explained that the DSS module adds a multi-valued property called markers (data-type="list" with component-item-type="marker") to the user profile item and a item of type marker. Similarly it also adds a businessProcessMarker item with a multi-valued property businessProcessMarkers to user by which you can track the user activity within a business process.
To add more, markers are variable created on fly which can be used later in scenarios or else where.
For example, I want to track the count of each user logins into website. Based on that I want to give him some promotion if he logins more than 10 times.
For above requirement, creating a new property in user item-descriptor and deploying the code is very time consuming.
Instead create a profile marker variable say loginCount and will increment that when user logins using a scenario.
And if the loginCount variable is greater than 10, grant him a promotion in scenario.
To do these kind of dynamic variables, profile markers are used.