Versions Compared

Key

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

Custom Tree Adaptor - Monitoring Non-SharePoint Websites

CardioLog 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 SharePoint 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, or create a Custom Tree Web Service that will return a logical tree structure that represents the hierarchy of your website.

Contents

...

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 server name]/CardioLogAgent/agentEmbed.aspx

  • Create a CardioLogAgent folder on the web site machine.
  • Copy the installation files into the new folder from [CardioLog Installation Folder]\CardioLogAgent\. Verify that the BasicAgent_*.*.js file is in the folder (if not, contact us to receive it).
  • Open IIS Manager on the web site machine, create a new virtual directory named CardioLogAgent under the website, which points to the copied CardioLogAgent folder.
  • Set the following properties for the new virtual directory: "ASP.NET 2.0, Integrated Windows Authentication" and then verify that the folder permissions allow "Everyone" read access.
  • Verify that you can open http://[web site root]/CardioLogAgent/AgentEmbed.aspx (Enter your website server name)
  • Open the copied CardioLogAgent directory, open the web.config file and edit the following key, located in the <appSettings> section:

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

  • Edit the Java Script tracking code to change the Tracking Agent location: 
  • Copy the sp_js_tracking_code.txt file and edit the web site server name, depending on your CardioLogAgent web application location.

...

  • Either add the edited tracking code into every page you want to track immediately after the opening <head> tag, or you can also use a common JavaScript file. Alternatively you can add it to a non-JavaScript common page component. In this case you need to add the opening and closing <script> tags. If you add the code to a master page, insert it before the closing </head> tag, and use opening and closing <script> tags.
  • Verify event collection by clicking Ctrl+F12 or the "Agent Console" bookmark and wait for several seconds. Verify that you see the tracking agent console.
  • To add the "Agent Console" bookmark to your browser, follow the instructions in http://[CardioLog server name:port]/CardioLog/Configuration/AgentConsoleBookmarklet.aspx (Enter your CardioLog server name and port number).

...

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:

  1. Create the custom tree web service for your web site.
  2. Verify that the custom tree web service returns a valid XML response according to the XML schema, and that the CardioLog Scheduling Service user account has sufficient permissions to access (request) the web service.
  3. From the navigation pane in CardioLog go to Administration and select System Configuration.  Click on Website Tree Adaptor in the main window and select the website collection you would like to edit.
  4. Enter the custom tree web service URL in the Website URL textbox. (Acceptable file extensions are "aspx", "asmx" or "xml") and enter the name of your website in the Website Name textbox.
  5. Click Save and restart the CardioLog Scheduling Service.
  6. After the next run of Portal Tree Updates, the tree structure will be displayed in the Analysis Center (Object Explorer) and will be available for reports that allow content drilldown. 

...

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

1.0"encoding="utf-8" ?>

<xs:schemaid="OMTreeXmlSchema"elementFormDefault="qualified"

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

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

<xs:elementname="tree">

<xs:complexType>

<xs:sequence>

<xs:elementname="item"type="XmlNode" />

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:complexTypename="XmlNode">

<xs:all>

<xs:elementname="url"type="xs:string" />

<xs:elementname="title"type="xs:string" />

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

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

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

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

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

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

<xs:elementname="permissions"minOccurs="0"maxOccurs="1">

<xs:complexType>

<xs:sequence>

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

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

</xs:sequence>

</xs:complexType>

</xs:element>

<xs:elementname="items"minOccurs="0"maxOccurs="1">

<xs:complexType>

<xs:sequence>

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

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:all>

</xs:complexType>

<xs:complexTypename="UserNode">

<xs:sequence>

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

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

</xs:sequence>

</xs:complexType>

<xs:complexTypename="GroupNode">

<xs:sequence>

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

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

</xs:sequence>

</xs:complexType>

<xs:simpleTypename="PermissionEnum">

<xs:restrictionbase="xs:string">

<xs:enumerationvalue="R"/>

<xs:enumerationvalue="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.

  • owner - item's owner/creator
  • version - item version, for tracking updates 
  • created- the item's creation date
  • modified - the item's most recent modification date

Sample 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 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.