How to create link rotation displays in Arnica LinkServer

September 15, 2015 by Igor Lozhkin
Arnica LinkServer is a part of the Arnica Platform.  Arnica LinkServer displays lists of links which may be personalized per user, and manages link access based on defined permissions. 

One of LinkServer use scenarios is to provide link output with pre-defined link rotation algorithm. For example, with 5 links defined as:
  • Link 1
  • Link 2 
  • Link 3 
  • Link 4
  • Link 5
Rotation specification may be to display 2 links at a time, so the display sequence would be:
  • Link 1
  • Link 2
next:
  • Link 3
  • Link 4
next:
  • Link 5
  • Link 1
next:
  • Link 2
  • Link 3
and so on.

LinkServer provides the following properties for managing rotation effect (this is a screenshot from the link category properties page, which encapsulates the links): 

LinkServer_links_rotation_managment.png

The three properties which control link rotation are: Sort Order, Maximum Link Count and Link Selection Type.

The Sort Order defines the sequence in which link pool in link category is processed when applying the algorithm to derive next links to display. Sort order is composite, i.e. it uses two criteria: the first one is major, and the second one is minor. The minor criterion is used when the values in the major criterion are the same.  Both criteria have the same collection of sort options:

LinkSevrer_links_sort_orders.png

Maximum Link Count property defines how many links are displayed at the same time. Values 0 or same or greater than the total number of links means that all links will be displayed, and no rotation effect will be achieved.

Link Selection Type determines how links are selected from the links pool for display on the next request. The following options are available for the Link Selection Type property:
  • Random - link selection is random. The Sort Order property has no effect on selecting links. The link's Weight property, optionally defined for individual links, may increase probability of selecting the link for display.
  • Rotation (global) - links are selected based on sort order, however, without taking into account context of each user, i.e. if a user A sees links 1 and 2, then user B sees links 3 and 4, then the next links the user A would see would be 5 and 1.
  • Rotation (per user) - links are selected based on sort order and take into account context of each user. To achieve this functionality, link category should have access control set to Identification, Authentication, or Authorization. With access control set to "No Access Control", this rotation type will fall back to Rotation (global).
  • Rotation (per IP Address) - links are selected based on sort order and take into account the IP address of the requestor. This method allows achieving high probability of sequential rotation per user when access control is set to "No Access Control", and user has a persistent IP address for a short period of time (for the duration of session).