Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

 

...

CardioLog Analytics uses a logical tree to represent the hierarchical structure of the monitored website. Whenever a usage event is sent to CardioLog it maps to the relevant item in the website hierarchy. This allows CardioLog to create reports for any level of the website hierarchy.

The Portal Tree Updates service component is responsible for retrieving the hierarchical data from your website. If you wish to retrieve the structure of a non-SharePoint website, you can specify an external web service to provide the hierarchical (logical) structure of your website.

 In order to monitor a non-SharePoint web site you need to do the following:

  • Install the Tracking Agent, which monitors visitor behavior for non-SharePoint web sites. The tracking code is added to a common page component, like master pages.
  • Configure the Website tree adaptor to a create tree structure automatically by crawling the website pages, or develop a Custom Tree Web Service that will return a logical tree structure that represents the hierarchy of your website.

...

Note: The Tracking Agent installation does NOT require reboot or downtime. 

If the Tracking Agent web application, named CardioLogAgent and installed on your CardioLog application server, is inaccessible from the website server install the CardioLogAgent web application on the web site server. You can verify if CardioLogAgent is accessible by opening http://[web site root]/CardioLogAgent/ca.aspx

...

Open the copied CardioLogAgent directory, open the web.config file and edit the following key, located in the <appSettings> section:

Info
iconfalse

<add key="CardioLogAgentRoot" value="http://[web site root]/"/>

...

Using the Custom Tree Adaptor you can specify a web service which provides the hierarchical (logical) structure of your website.
In order to load your custom hierarchical structure to CardioLog from which the CardioLog Portal Tree Updates service component will obtain it, perform the following steps:

...

The Custom Tree web service should be exposed by a web page which provides an XML string response according to the following schema:

...

iconfalse
titleXML Schema

<?xml version="1.0" encoding="utf-8" ?>

<xs:schema id="OMTreeXmlSchema" elementFormDefault="qualified"

xmlns:mstns="http://tempuri.org/OMTreeXmlSchema.xsd"

xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="tree">

<xs:complexType>

<xs:sequence>

<xs:element name="item" type="XmlNode" />

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="XmlNode">

<xs:all>

<xs:element name="url" type="xs:string" />

<xs:element name="title" type="xs:string" />

<xs:element name="entitytype" type="xs:string" minOccurs="0" maxOccurs="1" />

<xs:element name="owner" type="xs:string" minOccurs="0" maxOccurs="1" />

<xs:element name="version" type="xs:string" minOccurs="0" maxOccurs="1" />

<xs:element name="template" type="xs:string" minOccurs="0" maxOccurs="1" />

<xs:element name="created" type="xs:string" minOccurs="0" maxOccurs="1" />

<xs:element name="modified" type="xs:string" minOccurs="0" maxOccurs="1" />

<xs:element name="permissions" minOccurs="0" maxOccurs="1">

<xs:complexType>

<xs:sequence>

<xs:element name="user" type="UserNode" minOccurs="0" maxOccurs="unbounded"/>

<xs:element name="group" type="GroupNode" minOccurs="0" maxOccurs="unbounded"/>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="items" minOccurs="0" maxOccurs="1">

<xs:complexType>

<xs:sequence>

<xs:element name="item" type="XmlNode" minOccurs="0" maxOccurs="unbounded" />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:all>

</xs:complexType>

<xs:complexType name="UserNode">

<xs:sequence>

<xs:element name="username" type="xs:string" minOccurs="1" maxOccurs="1"/>

<xs:element name="permission" type="PermissionEnum" minOccurs="1" maxOccurs="1"/>

</xs:sequence>

</xs:complexType>

<xs:complexType name="GroupNode">

<xs:sequence>

<xs:element name="groupname" type="xs:string" minOccurs="1" maxOccurs="1"/>

<xs:element name="permission" type="PermissionEnum" minOccurs="1" maxOccurs="1"/>

</xs:sequence>

</xs:complexType>

<xs:simpleType name="PermissionEnum">

<xs:restriction base="xs:string">

<xs:enumeration value="R"/>

<xs:enumeration value="W"/>

</xs:restriction>

</xs:simpleType>

</xs:schema>

Field Definitions:

  • item - any specific item in the custom tree hierarchy.
  • URL - the item's full URL path
  • title -  the item's title as you would like it to be displayed in CardioLog reports
  • entitytype - the item's content type
  • template - the item's content type template, for displaying related icons in the tree structure 

Examples:

Entity type 5 - Folder
Available templates: 
Website Folder - Website_Folder.gifImage Removed

Entity type 12 - Page 
Available templates: 
Website Page - Website_Page.GIFImage Removed 
Website Folder Page -  Website_Folder.gifImage Removed
Website Document - Website_Document.gifImage Removed
Website Media - Website_Media.gifImage Removed
Website Other - Website_Other.GIFImage Removed

You can also define your own custom content types in coordination with Intlock.

...

Info
iconfalse
titleSample Data

 

<item>
   <url>http://www.intlock.com</url>
   <title>Intlock</title>
   <entitytype>5</entitytype>
   <owner>INTLOCK\James</owner>
   <version>1</version>
   <template>Website Folder</template>
   <created>01/01/2007 00:00:00</created>
   <modified>08/01/2007 10:37:35</modified>
   <items>
      <item>
         <url>http://www.intlock.com/en-us/</url>
         <title>Home</title>
         <entitytype>12</entitytype>
         <owner>INTLOCK\James</owner>
         <version>1</version>
         <template>Website Folder Page</template>
         <created>01/01/2007 00:00:00</created>
         <modified>08/01/2007 10:59:16</modified>
         <items />
      </item>
      <item>
         <url>http://www.intlock.com/home.aspx</url>
         <title>Home</title>
         <entitytype>12</entitytype>
         <owner>INTLOCK\James</owner>
         <version>1</version>
         <template>Website Page</template>
         <created>01/01/2007 00:00:00</created>
         <modified>08/01/2007 10:59:16</modified>
         <items />
      </item>
   </items>
</item>

...

CardioLog Analytics provides the ability to segment authenticated visitors by their user names and the groups they belong to. The organizational hierarchy of users and groups is monitored by the Active Directory Updates service, which retrieves the data directly from Active Directory by default. 

The Active Directory Updates service can also retrieve the data from a custom source, using a designated web service which supplies the desired organizational structure of users and groups. 

...

In order to load your user and group organization structure to CardioLog, you are required to specify a web service that the Active Directory Updates service will gather the organization's data from. This is done through the CardioLog Administration user interface:

...

The Users and Groups web service should be exposed by a web page which provides a XML string response according to the following schema:

...

iconfalse
titleXML Schema

<?xmlversion="1.0"encoding="utf-8" ?>

<xs:schema

elementFormDefault="qualified"

xmlns:mstns="http://tempuri.org/ADXmlSchema.xsd"

xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="tree">

<xs:complexType>

<xs:sequence>

<xs:element name="users">

<xs:complexType>

<xs:sequence>

<xs:element maxOccurs="unbounded" name="user">

<xs:complexType>

<xs:sequence>

<xs:element name="accountName" type="xs:string" />

<xs:element name="displayName" type="xs:string" />

<xs:element name="userMail" type="xs:string" />

<xs:element name="memberOf" type="xs:string" />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:element name="groups">

<xs:complexType>

<xs:sequence>

<xs:element maxOccurs="unbounded" name="group">

<xs:complexType>

<xs:sequence>

<xs:element name="groupName" type="xs:string" />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

Field Definitions:

User accountName: the user account name (a unique user ID).
User displayName: the user display name.
User userMail: the user email address.
User memberOf: a semicolon separated list of group names associated with the user.

 

...

iconfalse
titleSample Data

<tree>

<users>

<user>

<accountName>MyCompany\james</accountName>

<displayName>James Wright</displayName>

<userMail>james.wright@mycompany.com</userMail>

<memberOf>Administrators;Marketing</memberOf>

</user>

<user>

<accountName>MyCompany\dana</accountName>

<displayName>Dana Cohen</displayName>

<userMail>dana.cohen@mycompany.com</userMail>

<memberOf>Sales</memberOf>

</user>

</users>

</tree>

...

CardioLog Analytics provides advanced visitor segmentation capabilities by integrating both external and internal personal user data into reports.

Retrieval of additional user information, such as department, gender, and other profile data is performed by the User Categories Updates service, which retrieves the data from Active Directory attributes or SharePoint User Profiles by default. The User Categories Updates service can also retrieve the data from a custom source, using a designated web service that supplies the user information.

...

In order to load additional user information from a web service, specify a web service from which the User Categories Updates service will extract the user data. This is done through the CardioLog Administration user interface:

...

The user information web service should be exposed by a web page which provides an XML string response, according to the following format: 

...

iconfalse
titleXML Schema

<?xml version="1.0" encoding="utf-8" ?>

<xs:schema id="CategoryXmlSchema"

elementFormDefault="qualified"

xmlns:mstns="http://tempuri.org/CategoryXmlSchema.xsd"

xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="tree">

<xs:complexType>

<xs:sequence>

<xs:element name="item" type="UserCategoryXmlNode" minOccurs="0" maxOccurs="unbounded" />

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexType name="UserCategoryXmlNode">

<xs:sequence>

<xs:element name="userName" type="xs:string" />

<xs:element name="categories" minOccurs="0" maxOccurs="1">

<xs:complexType>

<xs:sequence>

<xs:element name="categoryValue" type="categoryNode" minOccurs="0" maxOccurs="unbounded" />

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:sequence>

</xs:complexType>

<xs:complexType name="categoryNode">

<xs:sequence>

<xs:element name="categoryName" type="xs:string" minOccurs="1" maxOccurs="1" />

<xs:element name="categoryValue" type="xs:string" minOccurs="1" maxOccurs="1" />

</xs:sequence>

</xs:complexType>

</xs:schema>

Field Definitions:

username: the user account name (should match the accountName field in the organization structure)
categoryName: the designated category name.
categoryValue: the assigned category value.

 

...

iconfalse
titleSample Data

<tree>

<item>

<userName>MyCompany\james</userName>

<categories>

<categoryValue>

<categoryName>Region</categoryName>

<categoryValue>West</categoryValue>

</categoryValue>

<categoryValue>

<categoryName>Gender</categoryName>

<categoryValue>Male</categoryValue>

</categoryValue>

</categories>

</item>

<item>

<userName>MyCompany\taylor</userName>

<categories>

<categoryValue>

<categoryName>Region</categoryName>

<categoryValue>North</categoryValue>

</categoryValue>

<categoryValue>

<categoryName>Gender</categoryName>

<categoryValue>Female</categoryValue>

</categoryValue>

</categories>

</item>

</tree>

CardioLog has several user customizable adaptors for connecting your organization's data with the robust reporting and analysis features that CardioLog has built-in.

With the Custom Tree Adaptor API, you can configure your version of CardioLog to monitor any environment you'd like. Adaptors for non-SharePoint environments are common, but you can also connect to an application that isn't a traditional website. CardioLog can track pages within an application and create a tree structure based upon them. For example, if you would like to track the data from your Customer Relationship Management (CRM) platform, or even your Enterprise Resource Planning software, you can configure the Custom Tree Adaptor and create customized tree structures to interface with the platforms that you use.

Using the Custom User and Group Adaptor or the Custom User Categories Adaptor, you can integrate any personal user details relevant to your organization such as department, region, usernames and associated email addresses, into your usage report data. We also easily integrate with Active Directory, Sitrion and Yammer to easily integrate social data into your reports.