<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.clicktale.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.clicktale.com/api.php?action=feedcontributions&amp;user=Shmuls&amp;feedformat=atom</id>
		<title>ClickTale Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.clicktale.com/api.php?action=feedcontributions&amp;user=Shmuls&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Special:Contributions/Shmuls"/>
		<updated>2012-05-16T22:05:24Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.0</generator>

	<entry>
		<id>http://wiki.clicktale.com/Article/ClickTale_Enterprise</id>
		<title>ClickTale Enterprise</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/ClickTale_Enterprise"/>
				<updated>2011-12-07T11:49:12Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ClickTale Enterprise]] is a customized ClickTale plan with advanced functionality, extensive training and proactive support.&lt;br /&gt;
__TOC__&lt;br /&gt;
==Online Plan Limitations==&lt;br /&gt;
If a website has over 1,000,000 page views a month in total, it cannot be tracked with an online plan, and needs to use [[ClickTale Enterprise]] instead.&lt;br /&gt;
===Justification===&lt;br /&gt;
Every visitor that comes to a site tracked by ClickTale sends a request to the ClickTale servers to ask whether or not it should be recorded. Although sites using an online plan may only choose to record a small percentage of their traffic, the ClickTale servers are still receiving a lot of requests. For that reason, any domain that has over 1,000,000 page views a month, must be directed to a ClickTale Enterprise server instead on a standard online plan.&lt;br /&gt;
&lt;br /&gt;
==Additional Benefits==&lt;br /&gt;
===Scalable and Robust===&lt;br /&gt;
Built from the ground up to support larger enterprise sites with the scalability to cope with the world’s largest websites. Constantly optimized and upgraded to ensure lightning fast speeds and negligible effect on site performance.&lt;br /&gt;
===Expert Consultation===&lt;br /&gt;
A ClickTale Customer Experience Expert will help you define your KPIs, review your results, highlight key areas of visitor behavior and recommend actionable steps to improve your conversions and usability.&lt;br /&gt;
===Segmented Reports===&lt;br /&gt;
Filter your visitors based on specific behaviors to create segmented reports delivering unparalleled insights.&lt;br /&gt;
===Extensive Training and Education===&lt;br /&gt;
Comprehensive training webinars covering both the business applications and technical aspects of ClickTale, ensuring a quicker return on investment.&lt;br /&gt;
===Installation Guarantee===&lt;br /&gt;
Custom setup and installation support to guarantee that ClickTale is correctly implemented and operational on your website. &lt;br /&gt;
===Ongoing Support===&lt;br /&gt;
A dedicated support team available to answer any questions you may have regarding ClickTale features, services or integrations, any time of the day.&lt;br /&gt;
===3rd party integrations===&lt;br /&gt;
Full support for integration with Omniture, Silverpop, Exact Target, iContact, Constant Contact and many others.&lt;br /&gt;
==ClickTale Enterprise Vs  ClickTale Online?==&lt;br /&gt;
===Unlimited Total Website Traffic ===&lt;br /&gt;
With ClickTale Enterprise you will have the ability to run ClickTale on your website without any total traffic restrictions. ClickTale Enterprise is built on a dedicated infrastructure designed to handle the largest websites in the world with unlimited total traffic to your website.&lt;br /&gt;
===No Maximum Recording Limit===&lt;br /&gt;
As well as being able to cope with as much traffic to your website as necessary, ClickTale Enterprise can scale to record every single visitor to your website. Our packages start at 500,000 recordings per month but can be tailored to suite your needs. &lt;br /&gt;
===Is it still a hosted service?===&lt;br /&gt;
ClickTale Enterprise is still delivered as a hosted Software as a Service, this enables the same easy implementation and ease of use, without any hardware needs at your end. If you are interested in a dedicated server or onsite installation please contact us and we can work toward tailoring a solution. &lt;br /&gt;
===Segmentation and Filtering===&lt;br /&gt;
All of our reports have powerful aggregate views of activity on your website in both form analytics and heatmaps; however to gain the most value it is important to filter your reports to understand more defined trends. An example being the ability to see heatmaps based only on new users as opposed to customers logging in from the homepage. Another way this is used is to break up user trends based on refers and affiliates, PPC acidity or specific campaigns.&lt;br /&gt;
===Large Scale Aggregate View===&lt;br /&gt;
All heatmaps and form analytics reports are available for over 100,000 page views. This allows you to really see aggregate trends across a large scale of your user base or segmented analysis. This is opposed to a view of 1,000 page views in ClickTale Online. We will also shortly be adding offline reports where you can request specific reports for hundreds of thousands of page views which we will calculate offline and distribute to you within a few hours. &lt;br /&gt;
===Dedicated Technical Support Representative===&lt;br /&gt;
ClickTale Enterprise is offered as consultative approach to your web analytics. You are assigned an account team with a dedicated account manager and technical support representative. This takes the meaning of advanced customer support to a new level. Not only will your support representative work with you to ensure that ClickTale is implemented efficiently, but they will work with you having an understanding of your infrastructure and help you with any problems in an individual manner. You will have their direct phone number ensuring support is not just an anonymous generic e-mail for you. They will also help you when incorporating new technologies or site changes and ensure everything from the technical level is smooth and efficient.&lt;br /&gt;
===Consultation and Education===&lt;br /&gt;
Your account manager is your single point of contact at ClickTale. They will work pro-actively with you, understanding more about your website technologies and aims.  They will be able to work with you to identify the most valuable reports to create helping you build these into ClickTale. He will also help with analysis and bring suggestions to the output he is seeing from ClickTale.&lt;br /&gt;
&lt;br /&gt;
This consultative approach also extends to education sessions where we can quickly train up users within your organization so they can start defining their own reports and understanding behaviors on specific conversation processes or pages.&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/ClickTale_Enterprise</id>
		<title>ClickTale Enterprise</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/ClickTale_Enterprise"/>
				<updated>2011-12-07T11:48:36Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[ClickTale Enterprise]] is a customized plan with advanced functionality, extensive training and proactive support.&lt;br /&gt;
__TOC__&lt;br /&gt;
==Online Plan Limitations==&lt;br /&gt;
If a website has over 1,000,000 page views a month in total, it cannot be tracked with an online plan, and needs to use [[ClickTale Enterprise]] instead.&lt;br /&gt;
===Justification===&lt;br /&gt;
Every visitor that comes to a site tracked by ClickTale sends a request to the ClickTale servers to ask whether or not it should be recorded. Although sites using an online plan may only choose to record a small percentage of their traffic, the ClickTale servers are still receiving a lot of requests. For that reason, any domain that has over 1,000,000 page views a month, must be directed to a ClickTale Enterprise server instead on a standard online plan.&lt;br /&gt;
&lt;br /&gt;
==Additional Benefits==&lt;br /&gt;
===Scalable and Robust===&lt;br /&gt;
Built from the ground up to support larger enterprise sites with the scalability to cope with the world’s largest websites. Constantly optimized and upgraded to ensure lightning fast speeds and negligible effect on site performance.&lt;br /&gt;
===Expert Consultation===&lt;br /&gt;
A ClickTale Customer Experience Expert will help you define your KPIs, review your results, highlight key areas of visitor behavior and recommend actionable steps to improve your conversions and usability.&lt;br /&gt;
===Segmented Reports===&lt;br /&gt;
Filter your visitors based on specific behaviors to create segmented reports delivering unparalleled insights.&lt;br /&gt;
===Extensive Training and Education===&lt;br /&gt;
Comprehensive training webinars covering both the business applications and technical aspects of ClickTale, ensuring a quicker return on investment.&lt;br /&gt;
===Installation Guarantee===&lt;br /&gt;
Custom setup and installation support to guarantee that ClickTale is correctly implemented and operational on your website. &lt;br /&gt;
===Ongoing Support===&lt;br /&gt;
A dedicated support team available to answer any questions you may have regarding ClickTale features, services or integrations, any time of the day.&lt;br /&gt;
===3rd party integrations===&lt;br /&gt;
Full support for integration with Omniture, Silverpop, Exact Target, iContact, Constant Contact and many others.&lt;br /&gt;
==ClickTale Enterprise Vs  ClickTale Online?==&lt;br /&gt;
===Unlimited Total Website Traffic ===&lt;br /&gt;
With ClickTale Enterprise you will have the ability to run ClickTale on your website without any total traffic restrictions. ClickTale Enterprise is built on a dedicated infrastructure designed to handle the largest websites in the world with unlimited total traffic to your website.&lt;br /&gt;
===No Maximum Recording Limit===&lt;br /&gt;
As well as being able to cope with as much traffic to your website as necessary, ClickTale Enterprise can scale to record every single visitor to your website. Our packages start at 500,000 recordings per month but can be tailored to suite your needs. &lt;br /&gt;
===Is it still a hosted service?===&lt;br /&gt;
ClickTale Enterprise is still delivered as a hosted Software as a Service, this enables the same easy implementation and ease of use, without any hardware needs at your end. If you are interested in a dedicated server or onsite installation please contact us and we can work toward tailoring a solution. &lt;br /&gt;
===Segmentation and Filtering===&lt;br /&gt;
All of our reports have powerful aggregate views of activity on your website in both form analytics and heatmaps; however to gain the most value it is important to filter your reports to understand more defined trends. An example being the ability to see heatmaps based only on new users as opposed to customers logging in from the homepage. Another way this is used is to break up user trends based on refers and affiliates, PPC acidity or specific campaigns.&lt;br /&gt;
===Large Scale Aggregate View===&lt;br /&gt;
All heatmaps and form analytics reports are available for over 100,000 page views. This allows you to really see aggregate trends across a large scale of your user base or segmented analysis. This is opposed to a view of 1,000 page views in ClickTale Online. We will also shortly be adding offline reports where you can request specific reports for hundreds of thousands of page views which we will calculate offline and distribute to you within a few hours. &lt;br /&gt;
===Dedicated Technical Support Representative===&lt;br /&gt;
ClickTale Enterprise is offered as consultative approach to your web analytics. You are assigned an account team with a dedicated account manager and technical support representative. This takes the meaning of advanced customer support to a new level. Not only will your support representative work with you to ensure that ClickTale is implemented efficiently, but they will work with you having an understanding of your infrastructure and help you with any problems in an individual manner. You will have their direct phone number ensuring support is not just an anonymous generic e-mail for you. They will also help you when incorporating new technologies or site changes and ensure everything from the technical level is smooth and efficient.&lt;br /&gt;
===Consultation and Education===&lt;br /&gt;
Your account manager is your single point of contact at ClickTale. They will work pro-actively with you, understanding more about your website technologies and aims.  They will be able to work with you to identify the most valuable reports to create helping you build these into ClickTale. He will also help with analysis and bring suggestions to the output he is seeing from ClickTale.&lt;br /&gt;
&lt;br /&gt;
This consultative approach also extends to education sessions where we can quickly train up users within your organization so they can start defining their own reports and understanding behaviors on specific conversation processes or pages.&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Main_Page"/>
				<updated>2011-10-11T15:19:31Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;&amp;lt;big&amp;gt;'''Welcome to the new ClickTale Wiki!'''&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Eventually, this will be an online repository for everything to do with ClickTale, and hopefully website usability and optimization in general. For now we're just getting started. Feel free to have a look around. To contribute, please [http://www.clicktale.com/contact/contact_us contact us] and tell us about yourself and your plans so we can get you confirmed. You can check out [[Special:NewPages| new pages]] as we create them, and feel free to [[Requested pages|request a page]] you think we should have.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
==Getting Started==&lt;br /&gt;
[[Quick Start Guide]] - A brief, step-by-step guide to ClickTale and its most common features.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Frequently asked questions]] - The questions asked by most new users.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Troubleshooting]] - How to fix the most common ClickTale errors.&lt;br /&gt;
==Setup and Customization==&lt;br /&gt;
[[Tracking code|The ClickTale Tracking code]] - How to generate the tracking code for standard ClickTale implementations.&amp;lt;br&amp;gt;&lt;br /&gt;
[[:Category:Plugins and Integrations|Plugins and Integrations]] - A comprehensive list of all ClickTale's plugins, modules and integrations.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Sensitive data|Blocking sensitive data]] - How to stop ClickTale from recording sensitive data such as personal or financial details.&lt;br /&gt;
===Advanced Setup===&lt;br /&gt;
[[Recording JavaScript]] - How to record JavaScript within a webpage.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Recording Flash]] - How to record actions over Flash elements.&amp;lt;br&amp;gt;&lt;br /&gt;
[[JavaScript API|ClickTale's JavaScript API]] - A comprehensive overview of all our API commands.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Events]] - How to tag any visitor interaction as an Event.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Recording Ratio]] - A deeper look at the recording ratio, and how to change it.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Selective recordings]] - How to pick and choose what visitors you record based on a range of attributes.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Offline recordings]] - How use ClickTale with offline environments and intranet sites.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Managing domains]] - How to manage the domains that ClickTale records.&lt;br /&gt;
==Using ClickTale==&lt;br /&gt;
[[Dashboard|The Dashboard]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Visitor Playback]]&lt;br /&gt;
===Heatmaps===&lt;br /&gt;
[[Mouse Move Heatmaps]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Click Heatmaps]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Scroll-Reach Heatmaps]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Attention Heatmaps]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Link Analytics]]&lt;br /&gt;
===Search and Alerts===&lt;br /&gt;
[[Search|How to Search]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Search Filters]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Campaign Tracking]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Alerts|Creating Alerts]]&lt;br /&gt;
===Conversion Reports===&lt;br /&gt;
[[Conversion Funnels]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Form Analytics]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Behavioral reports]]&lt;br /&gt;
==Advanced Analytics==&lt;br /&gt;
[[ClickTale for Ecommerce]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[A/B Testing|A/B and Multivariate Testing]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Terms|Terms and Definitions]]&lt;br /&gt;
==About ClickTale==&lt;br /&gt;
[[About us]]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.clicktale.com/privacy_service.aspx Privacy policy]&amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.clicktale.com/terms Terms of use]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Zend_Framework_integration</id>
		<title>Zend Framework integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Zend_Framework_integration"/>
				<updated>2011-10-09T13:57:56Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
To incorporate the [[PHP integration module]] in a site using the Zend framework, you need to edit the index.php (the file which bootstraps the Zend controller and not your framework template).&lt;br /&gt;
&lt;br /&gt;
In the beginning of the file, before any other text, add the PHP line to include the top part of the tracking code (as specified in step 7 of the module instructions), without the PHP tag:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
require_once(&amp;quot;[physical_path_to_clicktale_dir_here]\ClickTale\ClickTaleTop.php&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In the end of the file, after all other text, add the PHP line to include the bottom part of the tracking code (as specified in step 7 of the module instructions), without the PHP tag:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
require_once(&amp;quot;[physical_path_to_clicktale_dir_here]\ClickTale\ClickTaleBottom.php&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Zen_Cart_integration</id>
		<title>Zen Cart integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Zen_Cart_integration"/>
				<updated>2011-10-09T13:57:52Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
To incorporate the [[PHP integration module]] in a site using Zen Cart you need to perform the following;&lt;br /&gt;
#Download and extract the [[PHP integration module]] to a folder called ClickTale on your web-server&lt;br /&gt;
#Insert your tracking code into ClickTaleScripts.xml&lt;br /&gt;
#Insert references to ClickTale in /includes/application_top.php and /includes/application_bottom.php&lt;br /&gt;
For testing purposes a free user cannot record localhost sites so use the local machines IP instead, this will only record the front page, a subscription upgrade would be required to record the entire cart on localhost.&lt;br /&gt;
&lt;br /&gt;
'''Here is example ClickTaleScripts.xml code for offline &amp;quot;localhost&amp;quot; testing:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;scripts&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Top&amp;quot; DoNotReplaceCondition = &amp;quot;&amp;amp;lt;!-- ClickTale Top part --&amp;amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&lt;br /&gt;
&amp;lt;!-- ClickTale Top part --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var WRInitTime=(new Date()).getTime();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Top part --&amp;gt;&lt;br /&gt;
]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Bottom&amp;quot; DoNotReplaceCondition=&amp;quot;&amp;amp;lt;!-- No ClickTale --&amp;amp;gt;&amp;quot; InsertBefore=&amp;quot;&amp;amp;lt;!-- ClickTale Bottom part Here --&amp;amp;gt;|&amp;amp;lt;/body&amp;amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(document.location.protocol!='https:')&lt;br /&gt;
  document.write(unescape(&amp;quot;%3Cscript%20src='http://s.clicktale.net/WRb6.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTaleFetchFrom=&amp;quot;%FetchFromUrl%&amp;quot;; --&amp;gt;&lt;br /&gt;
if(typeof ClickTaleUploadPage=='function') {&lt;br /&gt;
  ClickTaleUploadPage('&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&amp;lt;html&amp;gt;','&amp;lt;/html&amp;gt;');}&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale(xxxx,y,&amp;quot;wwwzzz&amp;quot;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&lt;br /&gt;
]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/scripts&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT NOTE! This is how the code looks like in a text editor. In a browser, &amp;quot;&amp;amp;amp;lt;&amp;quot; will be converted to &amp;quot;&amp;lt;&amp;quot; and &amp;quot;&amp;amp;amp;gt;&amp;quot; will become &amp;quot;&amp;gt;&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT NOTE! This code sample relates to http tracking code only! for tracking code which can record both http and https pages you should first make sure your plan offers the ability to record https pages (check if the option is available in the tracking code generation page), then generate SSL/https compliant code.'''&lt;br /&gt;
&lt;br /&gt;
'''The /includes/application_bottom.php should look like:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once(&amp;quot;../ClickTale/ClickTaleBottom.php&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * application_bottom.php&lt;br /&gt;
 * Common actions carried out at the ...........&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''The /includes/application_top.php should look like:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
require_once(&amp;quot;../ClickTale/ClickTaleTop.php&amp;quot;);&lt;br /&gt;
/**&lt;br /&gt;
 * application_top.php Common actions carried out at the start of each page invocation.&lt;br /&gt;
 *............&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/X-Cart_integration</id>
		<title>X-Cart integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/X-Cart_integration"/>
				<updated>2011-10-09T13:57:47Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
Websites which use the shopping cart software X-Cart can integrate ClickTale by following these steps:&lt;br /&gt;
#Install the ClickTale [[PHP integration module]] under the root X-Cart directory.&lt;br /&gt;
#Download and extract clicktale.php from [http://forum.clicktale.net/download/file.php?id=43 here], and save it to the X-Cart root directory.&lt;br /&gt;
#Modify the smarty.php file located in the X-Cart root directory by adding the following to the end of the file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php require_once ($xcart_dir . &amp;quot;/clicktale.php&amp;quot;); ?&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
'''Please note: You need to make sure there are no trailing spaces after the closing &amp;gt; as this might prevent x-cart from functioning.'''&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/WordPress_integration</id>
		<title>WordPress integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/WordPress_integration"/>
				<updated>2011-10-09T13:57:40Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
There are several simple ways to get ClickTale working with your WordPress blog or site, the easiest being with our pre-build WordPress plugin.&lt;br /&gt;
&lt;br /&gt;
==WordPress plugin==&lt;br /&gt;
&lt;br /&gt;
This is a plugin for self hosted WordPress blogs that allows easy addition and change of the ClickTale script. As well as recording your visitors, this plugin also automatically tags their recordings with [[events]] based on their behavior on the page.&lt;br /&gt;
===Automated Event tags===&lt;br /&gt;
This plugin will add the following [[event]] tags to your visitor recordings:&lt;br /&gt;
*Searches using the &amp;quot;Search&amp;quot;  button.&lt;br /&gt;
*Additions of comments.&lt;br /&gt;
*Clicks on the RSS or Comments-RSS link.&lt;br /&gt;
This plugin has been tested on all versions of Wordpress up to 3.0.5. if you find it incompatible with your version of WordPress, please let us know about it in our [http://forum.clicktale.net/viewtopic.php?f=5&amp;amp;t=317 forum].&lt;br /&gt;
&lt;br /&gt;
===Installation Instructions===&lt;br /&gt;
#Download the plugin from Wordpress plugin directory (http://wordpress.org/extend/plugins/clicktale/).&lt;br /&gt;
#Upload to your /wp-contents/plugins/ directory.&lt;br /&gt;
#Go to the admin interface in your WordPress web site (~/wp-admin/) and choose the Plugins tab.&lt;br /&gt;
#Find the ClickTale Plugin there and activate it.&lt;br /&gt;
#A new sub-tab called &amp;quot;ClickTale Options&amp;quot; will appear, click on it.&lt;br /&gt;
#Paste your top and bottom tracking scripts in the appropriate places, then press &amp;quot;Update Options&amp;quot; button (the tracking scripts are available in your ClickTale account).&lt;br /&gt;
That's all! You have set up ClickTale on your WordPress blog.&lt;br /&gt;
&lt;br /&gt;
==Manual Installation==&lt;br /&gt;
Other methods of installation include the 2 following methods listed below. Please note they '''do not work''' for wordpress.com hosted blogs.&lt;br /&gt;
===Method 1===&lt;br /&gt;
If you have access to the administration panel of your wordpress blog:&lt;br /&gt;
*Go to &amp;quot;presentation&amp;quot; then &amp;quot;theme editor&amp;quot;.&lt;br /&gt;
*Select the header.php (Header) file.&lt;br /&gt;
*Add the first portion of code after &amp;lt;body&amp;gt;, update, then open footer.php (Footer) and copy second part before&amp;lt;/body&amp;gt; and update.&lt;br /&gt;
===Method 2===&lt;br /&gt;
*Go to the folder where your template is located (For example wp-content\themes\default\).&lt;br /&gt;
*Open header.php in a text editor.&lt;br /&gt;
*Locate the &amp;lt;body&amp;gt; tag and paste the two parts of the code generated by ClickTale right after it.&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Webtrends_Analytics_integration</id>
		<title>Webtrends Analytics integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Webtrends_Analytics_integration"/>
				<updated>2011-10-09T13:57:31Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Please Note: Webtrends integrations are exclusively available to ClickTale Enterprise customers. If you have are questions regarding access to this service, please contact sales at http://www.clicktale.com/contact/contact_us.'''&lt;br /&gt;
__TOC__&lt;br /&gt;
==Webtrends Analytics Integration==&lt;br /&gt;
The ClickTale and Webtrends Analytics integration enables Webtrends customers to gain more value from their existing business investments and attain a more accurate and visual representation of their online users. No need to start from scratch, simply enhance your already collected data with qualitative information of individual visitors and user groups.&lt;br /&gt;
&lt;br /&gt;
Drill down into individual visitor browsing sessions, understand visitors’ actual online behavior, as reflected in their mouse movements, scrolls, clicks and keystrokes, as well as aggregated reports of customer activity inside specific web pages. Pinpoint specific problematic pages, form fields, and usability obstacles. &lt;br /&gt;
===How the integration works===&lt;br /&gt;
The simple integration process involves two steps:&lt;br /&gt;
#Simply make a slight change in the Webtrends code on web pages you wish to record.&lt;br /&gt;
#Add a definition to Webtrends administrative console, allowing each ClickTale user ID to be recorded. You can then use Webtrends as usual and easily copy/paste the relevant ClickTale IDs to find specific recordings or to use in aggregate ClickTale reports. &lt;br /&gt;
===Key advantages===&lt;br /&gt;
*The integrated solution allows e-businesses to: &lt;br /&gt;
**Identify users in Webtrends Analytics and view their recording playback sessions with the ClickTale solution&lt;br /&gt;
**Personalize user data with visual representation of visitor behavior&lt;br /&gt;
*Leverage your existing investments. Learn more from your already created Webtrends databases, funnels, analytics reports. Once an inconceivable task for site owners with a heavy traffic load, now understand visitor usability at a more personal level. &lt;br /&gt;
*Identify users in Webtrends and view their session playback in ClickTale. Watch actual video recordings of anonymous visitors’ browsing sessions to understand how customers successfully convert and why lost visitors drop out. The behavioral search enables you to instantly search and watch only the RELEVANT videos you need. Fix and improve vital business processes in real-time!&lt;br /&gt;
*Enjoy ClickTale’s Drill-Down and Segmentation capability on your existing Webtrends reports. Be able to pick and choose some or all of the Visitor IDs you want/need to analyze with ClickTale.  Gain complete access to ClickTale’s customer experience analytics products and features, including the ClickTale Heatmap Suite, Form Analytics and Conversion Funnels. &lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Webtrends_Analytics_integration</id>
		<title>Webtrends Analytics integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Webtrends_Analytics_integration"/>
				<updated>2011-10-09T13:57:19Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
'''Please Note: Webtrends integrations are exclusively available to ClickTale Enterprise customers. If you have are questions regarding access to this service, please contact sales at http://www.clicktale.com/contact/contact_us.'''&lt;br /&gt;
__TOC__&lt;br /&gt;
==Webtrends Analytics Integration==&lt;br /&gt;
The ClickTale and Webtrends Analytics integration enables Webtrends customers to gain more value from their existing business investments and attain a more accurate and visual representation of their online users. No need to start from scratch, simply enhance your already collected data with qualitative information of individual visitors and user groups.&lt;br /&gt;
&lt;br /&gt;
Drill down into individual visitor browsing sessions, understand visitors’ actual online behavior, as reflected in their mouse movements, scrolls, clicks and keystrokes, as well as aggregated reports of customer activity inside specific web pages. Pinpoint specific problematic pages, form fields, and usability obstacles. &lt;br /&gt;
===How the integration works===&lt;br /&gt;
The simple integration process involves two steps:&lt;br /&gt;
#Simply make a slight change in the Webtrends code on web pages you wish to record.&lt;br /&gt;
#Add a definition to Webtrends administrative console, allowing each ClickTale user ID to be recorded. You can then use Webtrends as usual and easily copy/paste the relevant ClickTale IDs to find specific recordings or to use in aggregate ClickTale reports. &lt;br /&gt;
===Key advantages===&lt;br /&gt;
*The integrated solution allows e-businesses to: &lt;br /&gt;
**Identify users in Webtrends Analytics and view their recording playback sessions with the ClickTale solution&lt;br /&gt;
**Personalize user data with visual representation of visitor behavior&lt;br /&gt;
*Leverage your existing investments. Learn more from your already created Webtrends databases, funnels, analytics reports. Once an inconceivable task for site owners with a heavy traffic load, now understand visitor usability at a more personal level. &lt;br /&gt;
*Identify users in Webtrends and view their session playback in ClickTale. Watch actual video recordings of anonymous visitors’ browsing sessions to understand how customers successfully convert and why lost visitors drop out. The behavioral search enables you to instantly search and watch only the RELEVANT videos you need. Fix and improve vital business processes in real-time!&lt;br /&gt;
*Enjoy ClickTale’s Drill-Down and Segmentation capability on your existing Webtrends reports. Be able to pick and choose some or all of the Visitor IDs you want/need to analyze with ClickTale.  Gain complete access to ClickTale’s customer experience analytics products and features, including the ClickTale Heatmap Suite, Form Analytics and Conversion Funnels. &lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Volusion_integration</id>
		<title>Volusion integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Volusion_integration"/>
				<updated>2011-10-09T13:54:15Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
The Volusion integration is based on the [[Classic ASP integration code]] and allows you to record Volusion websites using the [[FetchFromWithCookies]] method.&lt;br /&gt;
&lt;br /&gt;
'''Please note:''' Volusion’s one-page checkout uses JavaScript panels which ClickTale does not support by default. Please visit [[Recording JavaScript]] to enable support for these panels.&lt;br /&gt;
&lt;br /&gt;
Replace the bottom part of your [[tracking code]] with the one of the following to allow ClickTale to better cache the pages of your website:&lt;br /&gt;
&lt;br /&gt;
==https compliant Volusion code==&lt;br /&gt;
&lt;br /&gt;
This code will record https/SSL paes as well as standard pages. This functionality is not available for all plans and will not work unless supported by your current plan.&lt;br /&gt;
The FetchFromWithCookies.js file has to be hosted locally in a https location, and its source in the script updated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
document.write(unescape(&amp;quot;%3Cscript%20src='&amp;quot;+&lt;br /&gt;
 (document.location.protocol=='https:'?&lt;br /&gt;
  'https://clicktale.pantherssl.com/':&lt;br /&gt;
  'http://s.clicktale.net/')+&lt;br /&gt;
 &amp;quot;WRb.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(/^ASPSESSIONID.*/);&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;CartID5&amp;quot;);&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;History50&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
ClickTaleFetchFrom = ClickTaleFetchFromWithCookies.constructFetchFromUrl();&lt;br /&gt;
var ClickTaleSSL=1;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PARAMETERS!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Standard Volusion code==&lt;br /&gt;
&lt;br /&gt;
This code cannot record https/SSL pages, so you will not be able to record the checkout page with this code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(document.location.protocol!='https:')&lt;br /&gt;
  document.write(unescape(&amp;quot;%3Cscript%20src='http://s.clicktale.net/WRb.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(/^ASPSESSIONID.*/);&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;CartID5&amp;quot;);&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;History50&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
ClickTaleFetchFrom = ClickTaleFetchFromWithCookies.constructFetchFromUrl();&lt;br /&gt;
&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PARAMETERS!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/TypePad_integration</id>
		<title>TypePad integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/TypePad_integration"/>
				<updated>2011-10-09T13:54:11Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
Integrating ClickTale with TypePad couldn't be easier:&lt;br /&gt;
==Automatic integration==&lt;br /&gt;
#Once you have generated your [[tracking code]] for your account, click on the TypePad widget you will see in the right hand panel of the code creation page.&lt;br /&gt;
==Manual integration==&lt;br /&gt;
#Create a new link TypeList and configure the Notes to display as Text.&lt;br /&gt;
#Add an item to the new TypeList and paste the [[tracking code]] into the notes. If your script is composed of two parts, add both; one after the other.&lt;br /&gt;
#Add the TypeList to your site at the very bottom of the right-hand sidebar.&lt;br /&gt;
That's it!&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/TinyMCE_integration</id>
		<title>TinyMCE integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/TinyMCE_integration"/>
				<updated>2011-10-09T13:54:05Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
TinyMCE sets a domain limitation of the document in the frame in a way that will prevent it from being accessed by ClickTale. The following code will work around that issue.&lt;br /&gt;
==Instructions==&lt;br /&gt;
Add this code before including the &amp;quot;tiny_mce/tiny_mce_src.js&amp;quot; file in your HTML.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
   if(!parent || !parent.WebPlayer) // if there is no WebPlayer or if the above frame is not accessible&lt;br /&gt;
      throw false;&lt;br /&gt;
   var tinyMCEPreInit = {base : ''+location.hostname};&lt;br /&gt;
} catch(e) {}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Shopify_integration</id>
		<title>Shopify integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Shopify_integration"/>
				<updated>2011-10-09T13:53:12Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
'''Jamie from [http://www.charlestoncreative.com/ Charleston Creative] created this method for getting ClickTale to work on shopify pages.'''&lt;br /&gt;
&lt;br /&gt;
You need to have your two part ClickTale [[tracking code]]. If you only want this for the index page then your code should look something like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{% if template == 'index' %}&lt;br /&gt;
&amp;lt;!-- ClickTale Top part --&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
SITE CONTENT&lt;br /&gt;
&lt;br /&gt;
{% if template == 'index' %}&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
{% endif %}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Read more on the original [http://forums.shopify.com/categories/2/posts/38778 forum post].&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Ruby_on_Rails_integration_module</id>
		<title>Ruby on Rails integration module</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Ruby_on_Rails_integration_module"/>
				<updated>2011-10-09T13:50:11Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
Michael Mazyar from [http://blog.astrails.com/ Astrails], an Israeli web consultancy that specializes in Rails web development, released this implementation of an [[integration module]] between ClickTale and Rails.&lt;br /&gt;
&lt;br /&gt;
The implementation allows complex pages of a Rails website to be recorded and cached correctly by the ClickTale service. Complex pages are ones that are dependant on session state or which process POST requests. Those methods often affect pages behind a login, shopping carts and checkout pages.&lt;br /&gt;
__TOC__&lt;br /&gt;
==Installation==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Download the plugin from [http://github.com/astrails/clicktale/tree/master github].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the plugin:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;./script/plugin install git://github.com/astrails/clicktale.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Replace project_id, ratio and param in the autogenerated config/clicktale.yml with values from your ClickTale tracking code.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add ClickTale partials into layout inside the ‘body’ tag:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;%= clicktale_top %&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;%= yield %&amp;gt;&lt;br /&gt;
        ...&lt;br /&gt;
        &amp;lt;%= clicktale_bottom %&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add a cron job (crontab -e) that will take care of the old cached files&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;*/30 * * * * find /path/to/your/application/public/clicktale/ -type f -mmin +30 -exec rm {} \;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
'''Note:''' The plugin works by leveraging rails caching mechanism, which is by default only enabled in production environment. To enable the plugin in the development environment do the following:&lt;br /&gt;
*set enabled=true in config/clicktale.yml (development section)&lt;br /&gt;
*set config.action_controller.perform_caching=true in config/environments/development.rb&lt;br /&gt;
==Options==&lt;br /&gt;
*Add ClickTale method on class level in your controller to change the ClickTale project for specific controller&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      class UsersController &amp;lt; ApplicationController&lt;br /&gt;
        clicktale :project_id =&amp;gt; ANOTHER_PROJECT_ID&lt;br /&gt;
        ...&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Call the same method to tag this controller’s actions in clicktale records&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      class UsersController &amp;lt; ApplicationController&lt;br /&gt;
        clicktale :project_id =&amp;gt; ANOTHER_PROJECT_ID, :tag =&amp;gt; :specific_tag&lt;br /&gt;
        ...&lt;br /&gt;
      end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*You can call the same method with same parameters on the action level to control project id and tag for this specific action&lt;br /&gt;
==Feedback==&lt;br /&gt;
Please submit issues to [http://github.com/astrails/clicktale/issues github].&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/ProStores_SSML_integration</id>
		<title>ProStores SSML integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/ProStores_SSML_integration"/>
				<updated>2011-10-09T13:50:03Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
SSML stands for Store Sense Markup Language and is the proprietary markup for the eBay ProStores e-commerce system. As ProStores runs on a divided header/footer template system, Headers and footers are loaded on each page with the content loaded between them, so you can run into security certificate warnings on the checkout pages if your links aren't relative or secure (https) on those pages.&lt;br /&gt;
&lt;br /&gt;
This fix, by a user in our forum called ''forsports'', uses SSML conditional statements to load the non-secure version on non-secure pages and the secure version on secure pages.&lt;br /&gt;
&lt;br /&gt;
===ClickTale Top Section===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Top part --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt; var WRInitTime=(new Date()).getTime();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Top part --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ClickTale Bottom Section===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;ss:if test=&amp;quot;$request.getScheme() == 'http'&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://s.clicktale.net/WRb.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!your parameters!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;ss:else/&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
document.write(unescape(&amp;quot;%3Cscript src='&amp;quot;+((document.location.protocol=='https:') ? 'https://clicktale.pantherssl.com/' : 'http://s.clicktale.net/')+&amp;quot;WRb.js' type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var ClickTaleSSL=1;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!your parameters!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;/ss:if&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/POST_pages</id>
		<title>POST pages</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/POST_pages"/>
				<updated>2011-10-09T13:49:49Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
A POST page is a page that processes the submit of a HTML form. Not all HTML forms submit to a POST page, some submit to a GET page (where field data is sent in the URL).&amp;lt;br&amp;gt;&lt;br /&gt;
'''If you can change your form to submit the data via GET then you can easily fix this issue without needing the fix below.'''&lt;br /&gt;
__TOC__&lt;br /&gt;
==How ClickTale handles POST pages==&lt;br /&gt;
By default ClickTale doesn't support caching HTML content of POST pages. This is by design to prevent &amp;quot;double submits&amp;quot; of your forms and to eliminate potential side-effects.&lt;br /&gt;
&lt;br /&gt;
Normally what would happen is that ClickTale will record all the client side activity correctly but the caching of the HTML content will fail. As a result you might see one of the following symptoms:&lt;br /&gt;
*An error dialog during playback, there will usually be a yellow exclamation icon near the row of the recording.&lt;br /&gt;
*A blank playback frame.&lt;br /&gt;
*Wrong content shown in playback frame.&lt;br /&gt;
This happens because when ClickTale attempts to cache the page it will do a regular GET request to your server, expecting to get an answer. You, however, will be expecting the parameters from the form and will be willing to take some action such as adding something to the database or sending an email.&lt;br /&gt;
==Possible solutions==&lt;br /&gt;
There are several possible solutions:&lt;br /&gt;
*The easiest solution is to process the POST and then redirect to a GET URL.&lt;br /&gt;
*Redirect the user to another page once POST processing ends. That page will be a GET page so no caching of POST pages will be required.&lt;br /&gt;
*Install one of our ClickTale [[:Category:Plugins and Integrations|Integration Modules]]. Currently there are ones for [[ASP.NET]], [[PHP]], [[J2EE Integration Module]] and [[Ruby On Rails]] (ROR).&lt;br /&gt;
*Change your FORM to use the GET method. This is only good if your form does no processing with side effects, such as creating records, accounts or sending emails. This is only good for forms with small amount of simple fields, as field values will be shown in the URL&lt;br /&gt;
*Change your POST processing page to redirect to a GET page once processing is done. This is instead of rendering the success/error information in the POST processing page. Great option for &amp;quot;thank you for...&amp;quot; pages, etc'.&lt;br /&gt;
*Create a static HTML page that contains the same content of the POST page and use the [[ClickTaleFetchFrom]] instruction to make ClickTale fetch the page from that location. Minor differences between the static HTML page and the actual content are ok.&lt;br /&gt;
*Use the [[ClickTaleUploadPage]] API method. This is good for short pages.&lt;br /&gt;
*Implement custom handling in your code to support your specific design (See below).&lt;br /&gt;
&lt;br /&gt;
==Implement custom handling in your code - an example==&lt;br /&gt;
We can modify our POST script to support caching as follows. This is the most efficient method but will also require the most effort to implement. We will continue this tutorial by explaining how to implement this option.&lt;br /&gt;
&lt;br /&gt;
On our public site (www.clicktale.com) we have a signup form. When people submit the form it is sent as a POST request to us. We have an ASP.NET page that processes this form. All examples will be in ASP.NET but you can easily adapt them to your own needs.&lt;br /&gt;
The back-end script is called signup.aspx and after finishing the processing it can return 5 different responses to the visitor.&lt;br /&gt;
We will:&lt;br /&gt;
#Extend the script to return any of the possible responses based on a GET parameter without doing any processing.&lt;br /&gt;
#Extend the script to instruct ClickTale which version of the page to request based on what was returned to the user.&lt;br /&gt;
&lt;br /&gt;
Prior to this, the script was checking if the request is a POST request and doing some processing. If the request was not a POST request it would redirect to the original form. We will add an additional case&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asp&amp;quot;&amp;gt;      else if(Request.QueryString[&amp;quot;p&amp;quot;]!=null) // if this is a caching request from ClickTale&lt;br /&gt;
      {&lt;br /&gt;
         ErrorPanel.Visible = false; // hide all forms&lt;br /&gt;
         switch(Request.QueryString[&amp;quot;p&amp;quot;])&lt;br /&gt;
         {&lt;br /&gt;
            case &amp;quot;s&amp;quot;:&lt;br /&gt;
               SuccessPanel.Visible = true;&lt;br /&gt;
               break;&lt;br /&gt;
            case &amp;quot;e&amp;quot;:&lt;br /&gt;
               ErrorPanel.Visible = true;&lt;br /&gt;
               break;&lt;br /&gt;
            case &amp;quot;o&amp;quot;:&lt;br /&gt;
               OpenPanel.Visible = true;&lt;br /&gt;
               break;&lt;br /&gt;
            case &amp;quot;i&amp;quot;:&lt;br /&gt;
               InvitedPanel.Visible = true;&lt;br /&gt;
               break;&lt;br /&gt;
            case &amp;quot;c&amp;quot;:&lt;br /&gt;
               ConvertedPanel.Visible = true;&lt;br /&gt;
               break;&lt;br /&gt;
         }&lt;br /&gt;
      }&amp;lt;/source&amp;gt;&lt;br /&gt;
so if the query string parameter &amp;quot;p&amp;quot; is present then we will do some rendering. &amp;quot;p&amp;quot; just tells us which of the five panels to show. You may use more than one parameter or use different parameter names if you would like. For each value of &amp;quot;p&amp;quot; we return a different response by making one panel visible.&lt;br /&gt;
&lt;br /&gt;
Now we need to tell ClickTale to request a URL of your script with the right parameter for each of those cases.&lt;br /&gt;
Normally our panels look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asp&amp;quot;&amp;gt;   &amp;lt;asp:Panel ID=&amp;quot;SuccessPanel&amp;quot; runat=&amp;quot;server&amp;quot; Visible=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h4&amp;gt;Thank you! Your data has been registered.&amp;lt;/h4&amp;gt;&lt;br /&gt;
      &amp;lt;br /&amp;gt;&lt;br /&gt;
      We will send an invitation to the email address your specified as soon as we can accommodate you.&amp;lt;br /&amp;gt;   &lt;br /&gt;
      Meanwhile, why not go to our &amp;lt;a href=&amp;quot;http://blog.clicktale.com/&amp;quot;&amp;gt;blog&amp;lt;/a&amp;gt; now and read more about what we do?&amp;lt;br /&amp;gt;&lt;br /&gt;
   &amp;lt;/asp:Panel&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
so we will modify then to include an assignment of a custom caching URL (a property from the API)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asp&amp;quot;&amp;gt;   &amp;lt;asp:Panel ID=&amp;quot;SuccessPanel&amp;quot; runat=&amp;quot;server&amp;quot; Visible=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h4&amp;gt;Thank you! Your data has been registered.&amp;lt;/h4&amp;gt;&lt;br /&gt;
      &amp;lt;br /&amp;gt;&lt;br /&gt;
      We will send an invitation to the email address your specified as soon as we can accommodate you.&amp;lt;br /&amp;gt;   &lt;br /&gt;
      Meanwhile, why not go to our &amp;lt;a href=&amp;quot;http://blog.clicktale.com/&amp;quot;&amp;gt;blog&amp;lt;/a&amp;gt; now and read more about what we do?&amp;lt;br /&amp;gt;&lt;br /&gt;
      &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
      ClickTaleFetchFrom=&amp;quot;&amp;lt;% =Request.Url.ToString() %&amp;gt;?p=s&amp;quot;;&lt;br /&gt;
      &amp;lt;/script&amp;gt;&lt;br /&gt;
   &amp;lt;/asp:Panel&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
We do this for each of the panels.&amp;lt;br&amp;gt;&lt;br /&gt;
'''Important: ClickTale external script file (WR[ver].js) should be included prior to the assignment and the call to ClickTale(...) function should be included after the assignment.'''&lt;br /&gt;
&lt;br /&gt;
After those two modifications, the visitor will get the response from the back-end script and instruct ClickTale to do the caching from the correct location. ClickTale will then request the page from the alternate location and your server will respond with the correct content. Now your playback will show the correct data.&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/PHP_integration_module</id>
		<title>PHP integration module</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/PHP_integration_module"/>
				<updated>2011-10-09T13:49:44Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
This [[Integration module]] is for [http://en.wikipedia.org/wiki/PHP PHP] sites using dynamic content which changes for each user independently. For example, shopping carts are often such pages.&lt;br /&gt;
It will allow you to store the exact version that the user saw and allow our fetching bot to collect that version so it will be available to you in the playback of visitors visits and other reports.&lt;br /&gt;
The PHP Integration Module is the next generation of the PHP Integration Code and adds further support to cases that were not previously covered, such as POST processing pages.&lt;br /&gt;
&lt;br /&gt;
The module is PHP5 code, provided with full sources, that allows better integration of a PHP site with ClickTale by enabling accurate caching of the HTML that is sent to the visitor in ClickTale recorded pageviews.&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
'''If you are unable to install a binary module on your site, or if you have an old version of PHP (prior to Version 5), please use the [[FetchFromWithCookies]] method instead.'''&lt;br /&gt;
&lt;br /&gt;
==Integration with third-party applications==&lt;br /&gt;
Please use the following integration methods if you are using one of these applications on your website.&lt;br /&gt;
*[[Drupal integration]]&lt;br /&gt;
*[[Joomla! module]]&lt;br /&gt;
*[[Magento integration module]]&lt;br /&gt;
*[[X-Cart integration]]&lt;br /&gt;
*[[Zend Framework integration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installation Guide==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The module itself can be found [http://www.clicktale.com/integration/ClickTalePHPIntegrationModule_latest.zip here].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Remove the existing ClickTale code and/or disable other integration methods (for example, PHP integration code - which supports session state only.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Extract the archive to a directory named &amp;quot;ClickTale&amp;quot; in your website. Do not to create a directory named &amp;quot;ClickTalePHPIntegrationModule_X.X&amp;quot; in it. Simply place the files in &amp;quot;.../ClickTale/&amp;quot;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the ClickTale tracking code you want to use in your pages (or locate your already generated code).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy and paste that code (from previous step) into the appropriate parts in ClickTale/ClickTaleScripts.xml file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;%FetchFromUrl%&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Just before the line&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([your ClickTale parameters])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''Please note: you do not need to change &amp;quot;%FetchFromUrl%&amp;quot; to a specific URL. It will be replaced automatically during the rendering process, with a value dependent on the page being recorded.'''&amp;lt;br&amp;gt;&lt;br /&gt;
Your xml file should now look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;scripts&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Top&amp;quot; DoNotReplaceCondition = &amp;quot;&amp;amp;lt;!-- ClickTale Top part --&amp;amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&lt;br /&gt;
&amp;lt;!-- ClickTale Top part --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var WRInitTime=(new Date()).getTime();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Top part --&amp;gt;]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Bottom&amp;quot; DoNotReplaceCondition=&amp;quot;&amp;amp;lt;!-- No ClickTale --&amp;amp;gt;&amp;quot; InsertBefore=&amp;quot;&amp;amp;lt;!-- ClickTale Bottom part Here --&amp;amp;gt;|&amp;amp;lt;/body&amp;amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(document.location.protocol!='https:')&lt;br /&gt;
  document.write(unescape(&amp;quot;%3Cscript src='http://s.clicktale.net/WRb.js' type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;%FetchFromUrl%&amp;quot;;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([Your ClickTale parameters]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/scripts&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''IMPORTANT NOTE! This is how the code looks like in a text editor. In a browser, &amp;quot;&amp;amp;amp;lt;&amp;quot; will be converted to &amp;quot;&amp;lt;&amp;quot; and &amp;quot;&amp;amp;amp;gt;&amp;quot; will become &amp;quot;&amp;gt;&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT NOTE! This code sample relates to http tracking code only! for tracking code which can record both http and https pages you should first make sure your plan offers the ability to record https pages (check if the option is available in the tracking code generation page), then generate SSL/https compliant code and use it in step 6 instead (you should still add the [[ClickTaleFetchFrom]] command, right before the line var ClickTaleSSL=1; or between 2 lines var ClickTaleSSL=1; and ClickTale([your ClickTale parameters]); ).'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Every page you wish to be recorded should contain the following PHP code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php&lt;br /&gt;
          require_once(&amp;quot;[physical_path_to_clicktale_dir_here]\ClickTale\ClickTaleTop.php&amp;quot;);&lt;br /&gt;
          ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
at the top ('''before any content is sent''', ie. before the Doctype and opening html tag, this is to ensure the entire page is captured including the &amp;lt;head&amp;gt; sections.) and&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php&lt;br /&gt;
          require_once(&amp;quot;[physical_path_to_clicktale_dir_here]\ClickTale\ClickTaleBottom.php&amp;quot;);&lt;br /&gt;
          ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
at the bottom ('''after all content has been sent''', including the closing html tag).&lt;br /&gt;
For example, with Joomla! you can try adding these lines to the top and bottom of the file index.php (in Joomla's root), this will add recording to all pages. The log error &amp;quot;The output buffer callback does not exist in the buffers stack&amp;quot; can be indicative of an issue with the code injection process/snippet position.&lt;br /&gt;
'''Do not forget to replace [physical_path_to_clicktale_dir_here] with the relevant folder.'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create two directories named &amp;quot;Cache&amp;quot; and &amp;quot;Logs&amp;quot; under the ClickTale directory. Make sure they have the proper writing permissions, for instance:&amp;lt;br/&amp;gt;&lt;br /&gt;
*If you are using Apache with mod_php then the Cache and Log directories must be writable by Apache.&amp;lt;br/&amp;gt;&lt;br /&gt;
*If the PHP is executed by some other means (CGI for instance), it's possible that it is executed as a different user than the webserver, so in that case it might be simpler to just make the permissions for those directories 777.&amp;lt;br/&amp;gt;&lt;br /&gt;
*For windows machines, the directories should be writable by the webserver.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionally: see [[Selective recordings#Selective recording via URL parameter|here]] to disable or enable yourself from being recorded. Apply this to everyone who is working with you on the site otherwise they will use recording quota, or enable this for testing to make sure all is working correctly.&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
After the files are copied you can navigate your browser to '''&amp;lt;nowiki&amp;gt;http://yoursite/ClickTale/Install/index.php&amp;lt;/nowiki&amp;gt;''' to view some helpful information regarding the caching and other configurations.&lt;br /&gt;
You can delete the Install folder once you don't need the troubleshooting/debugging assistance it provides. Deleting it prevents some of your configuration setting from being publicly available to others.&lt;br /&gt;
&lt;br /&gt;
==Configuring the caching provider==&lt;br /&gt;
The module caches the content of the pages so it can later provide the content to ClickTale servers for processing. This caching requires some persistent storage and so different caching providers are supported.&lt;br /&gt;
The default caching provider is the file system (&amp;quot;cache&amp;quot; folder), it is slower than other methods.&lt;br /&gt;
It is recommended to use the MySQLMemory provider. To do so you will need a valid connection to a MySQL database. &lt;br /&gt;
There is also the APC module which requires installation. More details about APC can be found [http://php.net/apc here].&lt;br /&gt;
&lt;br /&gt;
After installing APC or MySQL, you can enable its provider by editing config.php file, and changing:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$config['CacheProvider'] = &amp;quot;FileSystem&amp;quot;;&amp;lt;/source&amp;gt;&lt;br /&gt;
to&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$config['CacheProvider'] = &amp;quot;MySQLMemory&amp;quot;;&amp;lt;/source&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$config['CacheProvider'] = &amp;quot;APC&amp;quot;;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Note: The file-system provider will need write access rights to the &amp;quot;ClickTale/Cache&amp;quot; folder. On the other hand, APC and MySQLMemory will use memory for storage.'''&lt;br /&gt;
==Caching provider settings==&lt;br /&gt;
====FileSystem====&lt;br /&gt;
*$config['DeleteAfterPull']  = (true / false)&lt;br /&gt;
**If true, the cached page is deleted after clicktale fetches it from your site&lt;br /&gt;
*$config['CacheLocation'] = (path to directory)&lt;br /&gt;
**Where the cache files should be saved. This directory should be writable (you can use the Install/index.php to check write permissions)&lt;br /&gt;
*$config['MaxFolderSize'] = (integer)&lt;br /&gt;
**The size of the cache dir in MegaBytes. If the cache gets larger than that, stale caches are removed&lt;br /&gt;
&lt;br /&gt;
====MySQLMemory====&lt;br /&gt;
*$config['DeleteAfterPull']  = (true / false)&lt;br /&gt;
**See FileSystem&lt;br /&gt;
*$config['CacheLocation'] = (mysql url)&lt;br /&gt;
**url of the form &amp;lt;nowiki&amp;gt;http://&amp;lt;db username&amp;gt;:&amp;lt;db password&amp;gt;@&amp;lt;host of mysql&amp;gt;:&amp;lt;port of mysql&amp;gt;/&amp;lt;database to use&amp;gt;.&amp;lt;memory table name to use&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*$config['MaxCachedSeconds'] = (integer)&lt;br /&gt;
**Will only keep pages in cache for up to MaxCachedSeconds seconds. This will make sure that your cache storage will only take a small amount of memory.&lt;br /&gt;
====APC====&lt;br /&gt;
*$config['DeleteAfterPull']  = (true / false)&lt;br /&gt;
**See FileSystem&lt;br /&gt;
*$config['MaxCachedSeconds'] = (integer)&lt;br /&gt;
**See MySQLMemory&lt;br /&gt;
===Use With &amp;quot;Expires&amp;quot; Header And Enable Reuse Of Cached Pages===&lt;br /&gt;
Some websites use &amp;quot;cache-control&amp;quot; and &amp;quot;expires&amp;quot; headers to cache pages on the client. This improves performance but may be problematic when used with our module. Pages are removed from the module's cache right after they are being accessed (for security and performance reasons). So, if a visitor browses a page more than once without refreshing the content from the server (usually a result of using the back button), ClickTaleCache.php will be called several times with the same token. This will cause a cache miss for any request beyond the first one. &lt;br /&gt;
To overcome this problem, it is possible to use the DeleteAfterPull=&amp;quot;false&amp;quot; parameter in the configuration. This will disable the removal of cached pages when ClickTaleCache.php is called. Cached data will be removed after MaxCachedPages=&amp;quot;???&amp;quot; new pages are cached, so you might want to extend this parameter as well to allow sufficient traffic between the first pageview and the next (duplicate pageview).&lt;br /&gt;
Additionally, you can change your HTTP cache control to &amp;quot;no-cache&amp;quot; which will might be more correct for your application logic in the first place.&lt;br /&gt;
Currently, this feature is not available when caching to databases.&lt;br /&gt;
==Troubleshooting and debugging==&lt;br /&gt;
The module's log files are located in: &amp;quot;ClickTale/Logs/Log_{0}.txt&amp;quot;, where {0} is the log file's date. &amp;lt;br&amp;gt;&lt;br /&gt;
Setting: '''$config['AllowDebug'] = true;''' in config.php allows for more detailed log files. Please set this if requested by Support.&lt;br /&gt;
&lt;br /&gt;
==License==&lt;br /&gt;
The module is subject to a permissive license for ClickTale users. Please see license.txt in the archive for more information.&lt;br /&gt;
==Q&amp;amp;A==&lt;br /&gt;
:'''Q: Are cached pages protected from access by third parties?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: Yes, several layers of protection are in place. Only certain IPs are allowed to request the cached pages (IPs of ClickTale servers) and only processes which already have access to the page have the secret token required to request the cached content.&lt;br /&gt;
&lt;br /&gt;
:'''Q: Is it possible to inject the script in other places rather than after/before body tags?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: Yes. By default the top script is injected after &amp;lt;body&amp;gt; and the bottom before &amp;lt;/body&amp;gt;, but this can be changed by adding a InsertAfter attribute to the script[name=&amp;quot;Top&amp;quot;] element or adding a InsertBefore attribute to the script[name=&amp;quot;Bottom&amp;quot;] element, both are regular expressions.&lt;br /&gt;
&lt;br /&gt;
:'''Q: Some of my pages already have the ClickTale script, I do not want the script appear twice.'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: You should either remove the script from those pages and let the module handle the insertion or you should use DoNotReplaceCondition. See the code step 2 for an example. The default script in Step 2 is already configured to prevent double inclusion.&lt;br /&gt;
&lt;br /&gt;
:'''Q: After installing the module, I tried to watch a recording but I got the following notice instead: &amp;quot;Request from an unauthorized IP.&amp;quot; . What should I do?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: This could be a misconfiguration, a change in our IP addresses or a hacking attempt. Please contact us so we can investigate this further.&lt;br /&gt;
&lt;br /&gt;
:'''Q: I have installed the module but I don't see the tracking code in the source of the page. What is wrong?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: The module will only inject the code for visitors who are classified as &amp;quot;to-record&amp;quot; (have WRUID cookie with non-zero value) or for those who are not classified (no WRUID cookie). Visitors who are classified as &amp;quot;not-to-record&amp;quot; will get no code.&lt;br /&gt;
&lt;br /&gt;
:'''Q: I'm using a proxy server for my website - what steps should I take to record properly?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: Move the IP restriction rule to the proxy and set the IP in config.php (located in the php integration module directory) to the IP of the proxy.&lt;br /&gt;
&lt;br /&gt;
==Using a proxy server==&lt;br /&gt;
If you have a proxy, whenever our servers will try to get the cache they will appear to have the address of the proxy which is not allowed by default.&lt;br /&gt;
To fix this, you should set the IP address of the proxy to the $config['AllowedAddresses'] value in the module's config.php file and set a rule with your proxy saying that only our servers IP range can access the ClickTaleCache.php file.&lt;br /&gt;
Our servers IP range is: 75.125.82.64/26,50.97.162.64/26 (''stands for 75.125.82.64 - 75.125.82.127 and 50.97.162.64 - 50.97.162.127'').&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[[ASP.NET integration module]] - Good read as some configuration schema is shared.&lt;br /&gt;
[http://www.hostgatorcouponsreview.com HostGator Coupons]&lt;br /&gt;
[http://www.thegrizasonline.com/ Business Solutions &amp;amp; Tools]&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/PHP_integration_code</id>
		<title>PHP integration code</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/PHP_integration_code"/>
				<updated>2011-10-09T13:49:39Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;big&amp;gt;'''If possible, use the [[PHP integration module]] instead. It provides better integration with our service.&amp;lt;br&amp;gt;&lt;br /&gt;
The only reason to use this code is if you are unable to install a binary module on your site.'''&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is an up to date version of the integration code which is based on work done by Jake from [http://www.supportourribbons.com/ Support Our Ribbons].&lt;br /&gt;
==Instructions==&lt;br /&gt;
If your site uses cookie-based sessions, you may have noticed that ClickTale is unaware of any session-based stuff that's happening. So this is a little function for overriding the URL that ClickTale fetches from so it is sure to include the current session id. It's intended for people using PHP's built-in session functions (e.g. $_SESSION).&lt;br /&gt;
&lt;br /&gt;
You'll notice that we include the ClickTale source locally; if you like you can save the code in an external include file.&lt;br /&gt;
You will need to modify the parameters of the ClickTale() function to reflect the parameters of your account as well as update the path to the recording script. To fill-in the missing information compare the code below with the code that was generated for you by the &amp;quot;Script Generator&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?&lt;br /&gt;
function get_clicktale_footer() {&lt;br /&gt;
   $current_url = get_base_url();&lt;br /&gt;
   $sid = session_id() ;&lt;br /&gt;
   //if the session id is set, and not included in the current URL,&lt;br /&gt;
   //append it to the current URL&lt;br /&gt;
   if( !strstr( $current_url, session_name().'=$sid' ) &amp;amp;&amp;amp; !empty($sid) ) {&lt;br /&gt;
      $fetch_from = &amp;quot;ClickTaleFetchFrom='$current_url&amp;quot; ;&lt;br /&gt;
      if( strstr( $current_url, '?' ) )&lt;br /&gt;
         $fetch_from .= &amp;quot;&amp;amp;&amp;quot; ;&lt;br /&gt;
      else&lt;br /&gt;
         $fetch_from .= &amp;quot;?&amp;quot; ;&lt;br /&gt;
      $fetch_from .= session_name().&amp;quot;=$sid';&amp;quot; ;&lt;br /&gt;
   }&lt;br /&gt;
   else&lt;br /&gt;
      $fetch_from = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
   return &amp;quot;&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id='ClickTale' style='display: none;'&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script src='[!YOUR CLICKTALE PATH!]/WRb.js' type='text/javascript'&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
//This is where everything pays off.&lt;br /&gt;
//Update the URL clicktale fetches from:&lt;br /&gt;
if(typeof ClickTale=='function') {&lt;br /&gt;
   $fetch_from&lt;br /&gt;
   ClickTale([!YOUR CLICKTALE PARAMETERS!]);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&amp;quot; ;  // update your values here based on the script generated.&lt;br /&gt;
// Note the parameters to ClickTale call and the url. Keep other syntax and the line &amp;quot;$fetch_from&amp;quot; as-is.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function get_base_url() {&lt;br /&gt;
   if( $_SERVER['SERVER_PORT'] == &amp;quot;443&amp;quot; )&lt;br /&gt;
      $abs_path = &amp;quot;https://&amp;quot; ;&lt;br /&gt;
   else&lt;br /&gt;
      $abs_path = &amp;quot;http://&amp;quot; ;&lt;br /&gt;
&lt;br /&gt;
   $abs_path .= $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']; //$_SERVER[&amp;quot;REQUEST_URI&amp;quot;] ;&lt;br /&gt;
   if( !empty($_SERVER['QUERY_STRING']) )&lt;br /&gt;
      $abs_path .= '?' . $_SERVER['QUERY_STRING'];&lt;br /&gt;
&lt;br /&gt;
   return $abs_path ;&lt;br /&gt;
}   &lt;br /&gt;
&lt;br /&gt;
function get_clicktale_header() {&lt;br /&gt;
   return &amp;quot;&amp;lt;!-- ClickTale Top part --&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
var WRInitTime=(new Date()).getTime();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Top part --&amp;gt;&amp;quot; ;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//echo get_clicktale_header(); // call after &amp;lt;BODY&amp;gt;&lt;br /&gt;
//echo get_clicktale_footer(); // call before &amp;lt;/BODY&amp;gt;&lt;br /&gt;
?&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What is left now is to echo the result of the PHP functions get_clicktale_header() and get_clicktale_footer() near your body and /body tags to finish the integration.&lt;br /&gt;
&lt;br /&gt;
If you have generated a SSL code with the generator you will need to do some extra copy-pasting to make your include.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Offline_recordings</id>
		<title>Offline recordings</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Offline_recordings"/>
				<updated>2011-10-09T13:48:38Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
Offline pages are pages which are not accessible using an internet connection from outside of your organization. Pages which merely require [[HTTPS|user authentication]], i.e. a username and password, do not count as offline. Examples of offline pages are intranet pages or pages in a website's development environment.&lt;br /&gt;
&lt;br /&gt;
Normally ClickTale servers access the pages that are recorded in order to capture the content of the page, later to be used in reports and playback. When a page is inaccessible, the content can't be captured and playback will fail.&lt;br /&gt;
&lt;br /&gt;
'''Please note:''' Due to restrictions on domain usage, free subscribers cannot record from a ‘localhost’ domain name(or 127.0.0.1). You can setup a different name for your test host, other that ‘localhost’ via your HOSTS file(xyz  &amp;quot;local IP address&amp;quot;) or by using the machines IP address in the browser. &lt;br /&gt;
&lt;br /&gt;
These pages can be recorded using one of the following three methods:&lt;br /&gt;
&lt;br /&gt;
==Method 1==&lt;br /&gt;
You can allow our servers access to your site or to specific pages by whitelisting our servers' IP ranges, which are '''75.125.82.64/26 and 50.97.162.64/26''', and opening a network connection(normally port 80/443) for the ClickTale bot from these IP's to the sites ports on your server(eg. 8080). &lt;br /&gt;
&lt;br /&gt;
If you are using the [[PHP]] or [[ASP.NET]] integration modules then you only need to allow access to the URL of the integration module (ClickTaleCache.php and ClickTaleCache.ashx &amp;lt;nowiki&amp;gt;[virtual]&amp;lt;/nowiki&amp;gt; respectively) on your server to our IP range.&lt;br /&gt;
&lt;br /&gt;
Each client would also be required to be able to access the ClickTale servers(on standard ports). &lt;br /&gt;
&lt;br /&gt;
This may involve firewall and/or router/NAT configuration to ensure the passage of traffic/packets. &lt;br /&gt;
&lt;br /&gt;
This is especially relevant to corporate Intranet environments and non-public/local development setups.&lt;br /&gt;
&lt;br /&gt;
==Method 2==&lt;br /&gt;
You can use the [[ClickTaleUploadPage]] API command. Please note that this command is not suitable for production environment (online) and will hurt customer experience(slower page load times due to overhead). If you are using one of the integration modules use [[ClickTaleUploadPage]] in an offline environment and [[ClickTaleFetchFrom]] code line in an online environment.&lt;br /&gt;
If you are NOT using one of the integration modules use [[ClickTaleUploadPage]] in an offline environment and remove it in an online environment.&lt;br /&gt;
&lt;br /&gt;
To use [[ClickTaleUploadPage]] edit the ClickTale code at the bottom of the page to read:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
'''&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
if(typeof ClickTaleUploadPage=='function') {&lt;br /&gt;
   ClickTaleUploadPage('&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&amp;lt;html&amp;gt;','&amp;lt;/html&amp;gt;');}&amp;lt;/source&amp;gt;'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;if(typeof ClickTale=='function') ClickTale(xxxx,y,&amp;quot;www0z&amp;quot;);&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Method 3==&lt;br /&gt;
If (and only if) your development environment is identical to your live one, you may use the [[ClickTaleFetchFrom]] command to direct to it.&lt;br /&gt;
To do so, add the following line right before the call to the ClickTale() function:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=unescape(location.protocol+&amp;quot;%2f%2f&amp;quot;+&amp;quot;[LIVE_DOMAIN_NAME]&amp;quot;+location.pathname+location.search);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
And replace [LIVE_DOMAIN_NAME] with the actual domain name.&lt;br /&gt;
&lt;br /&gt;
'''Please note: this method will require you to check both of these domains in the &amp;quot;manage domains&amp;quot; section of your account.'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/MyBlogLog_integration</id>
		<title>MyBlogLog integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/MyBlogLog_integration"/>
				<updated>2011-10-09T13:48:25Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
[http://www.mybloglog.com/ MyBlogLog] allows people to identify themselves by their MyBlogLog icons and broadcast their presence on websites and blogs. Each MyBlogLog member has a public profile.&lt;br /&gt;
&lt;br /&gt;
This mashup will allow you to track MyBlogLog (MBL) members who visit your site and add a little MyBlogLog icon next to their name on ClickTale's 'visitors' page. You can then click the icon to go directly to their profile.&lt;br /&gt;
&lt;br /&gt;
The ClickTale/MyBlogLog mashup is a great way to get to know your visitors.&lt;br /&gt;
&lt;br /&gt;
'''Your site doesn't need to be registered with MBL to use it.'''&lt;br /&gt;
==Instructions==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;script src=&amp;quot;http://s.clicktale.net/ct_mbl.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
after the line that looks like&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;script src=&amp;quot;http://s.clicktale.net/WRa.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
in the existing ClickTale script on you pages.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;ctSaveMBLVisitor();&amp;lt;/source&amp;gt;&lt;br /&gt;
after the line that reads&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;ClickTale([your project ID],[your ratio]);&amp;lt;/source&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
===For example===&lt;br /&gt;
Before&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;!-- ClickTale --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTale&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://s.clicktale.net/WRa.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(typeof ClickTale=='function')&lt;br /&gt;
{&lt;br /&gt;
   ClickTale([your project ID],[your ratio]);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
After&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;!-- ClickTale --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTale&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://s.clicktale.net/WRa.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://s.clicktale.net/ct_mbl.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(typeof ClickTale=='function')&lt;br /&gt;
{&lt;br /&gt;
   ClickTale([your project ID],[your ratio]);&lt;br /&gt;
   ctSaveMBLVisitor();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If you already use the MBL widget to display recent readers, make sure to include the widget before including the bottom ClickTale script.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Magento_integration_module</id>
		<title>Magento integration module</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Magento_integration_module"/>
				<updated>2011-10-09T13:48:10Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
The Magento integration module will allow ClickTale to properly record your customers. The module caches complete versions of each and every pageview as it is delivered to the customer. No matter what version of your site visitors see, ClickTale Visitor Playbacks will show you the exact content as seen and interacted with by your visitors.&lt;br /&gt;
&lt;br /&gt;
The module is PHP5 code, provided with full sources, that allows better integration of a Magento eCommerce PHP site with ClickTale by enabling accurate caching of the HTML that is sent to the visitor in ClickTale recorded pageviews.  Be sure that your host supports both these, as well as the system requirements of Magento.&lt;br /&gt;
==License==&lt;br /&gt;
The module is subject to a permissive license for ClickTale users. Please see license.txt in the archive for more information.&lt;br /&gt;
==Installation Guide==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Download the module [http://www.clicktale.com/Integration/ClickTaleMagentoIntegrationModule_latest.zip here].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Unzip the package to your Magento installation directory (sub-directories named app and lib should already be present there). (Once unzipped you should have a directory named lib/ClickTale/... )&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure to create lib/ClickTale/Logs and lib/ClickTale/Cache directories (if they do not already exist) and make sure they have writing permission (CHMOD 777)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the ClickTale tracking code you want to use in your pages (or locate your already generated code).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy and paste that code (from previous step) into the appropriate parts in lib/ClickTale/ClickTaleScripts.xml file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Add&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;%FetchFromUrl%&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Just before the line&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([your ClickTale parameters])&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''Please note: you do not need to change &amp;quot;%FetchFromUrl%&amp;quot; to a specific URL. It will be replaced automatically during the rendering process, with a value dependent on the page being recorded.'''&amp;lt;br&amp;gt;&lt;br /&gt;
Your xml file should now look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;scripts&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Top&amp;quot; DoNotReplaceCondition = &amp;quot;&amp;amp;lt;!-- ClickTale Top part --&amp;amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&lt;br /&gt;
&amp;lt;!-- ClickTale Top part --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var WRInitTime=(new Date()).getTime();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Top part --&amp;gt;]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Bottom&amp;quot; DoNotReplaceCondition=&amp;quot;&amp;amp;lt;!-- No ClickTale --&amp;amp;gt;&amp;quot; InsertBefore=&amp;quot;&amp;amp;lt;!-- ClickTale Bottom part Here --&amp;amp;gt;|&amp;amp;lt;/body&amp;amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(document.location.protocol!='https:')&lt;br /&gt;
  document.write(unescape(&amp;quot;%3Cscript src='http://s.clicktale.net/WRb.js' type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;%FetchFromUrl%&amp;quot;;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([Your ClickTale parameters]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/scripts&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''IMPORTANT NOTE! This is how the code looks like in a text editor. In a browser, &amp;quot;&amp;amp;amp;lt;&amp;quot; will be converted to &amp;quot;&amp;lt;&amp;quot; and &amp;quot;&amp;amp;amp;gt;&amp;quot; will become &amp;quot;&amp;gt;&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT NOTE! This code sample relates to http tracking code only. For tracking code which can record both http and https pages you should first make sure your plan offers the ability to record https pages (check if the option is available in the tracking code generation page), then generate SSL/https compliant code and use it in step 5 instead, see below for an example'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;scripts&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Top&amp;quot; DoNotReplaceCondition = &amp;quot;&amp;amp;lt;!-- ClickTale Top part --&amp;amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&lt;br /&gt;
&amp;lt;!-- ClickTale Top part --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var WRInitTime=(new Date()).getTime();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Top part --&amp;gt;]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Bottom&amp;quot; DoNotReplaceCondition=&amp;quot;&amp;amp;lt;!-- No ClickTale --&amp;amp;gt;&amp;quot; InsertBefore=&amp;quot;&amp;amp;lt;!-- ClickTale Bottom part Here --&amp;amp;gt;|&amp;amp;lt;/body&amp;amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
document.write(unescape(&amp;quot;%3Cscript%20src='&amp;quot;+&lt;br /&gt;
 (document.location.protocol=='https:'?&lt;br /&gt;
  'https://clicktale.pantherssl.com/':&lt;br /&gt;
  'http://s.clicktale.net/')+&lt;br /&gt;
 &amp;quot;WRb.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;%FetchFromUrl%&amp;quot;;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([Your ClickTale parameters]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/scripts&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Make sure to &amp;quot;Save configuration&amp;quot; in the Magento admin panel to enable the ClickTale Integration Module. &amp;lt;br&amp;gt;&lt;br /&gt;
     Go to: System--&amp;gt; Configuration --&amp;gt; Advanced --&amp;gt; Advanced (button) --&amp;gt; click &amp;quot;Save config&amp;quot;&amp;lt;/li&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
Navigate to the page located at www.yourdomain.com/lib/ClickTale/Install/index.php, similar to the PHP Integration module, any items marked red should be corrected for trouble-free recording. Commonly the Cache and Logs folders should be manually given write permissions to the system using CHMOD.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;br /&gt;
&lt;br /&gt;
'''Please note:''' Magento’s one-page checkout uses JavaScript panels which ClickTale does not support by default. Please visit [[Recording JavaScript]] to enable support for these panels.&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Joomla!_integration_module</id>
		<title>Joomla! integration module</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Joomla!_integration_module"/>
				<updated>2011-10-09T13:48:01Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
This module allows easy addition of ClickTale code into a Joomla! powered website and works in a similar way to the other code/plugins.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Please note:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
If you wish to record pages which require visitors to be logged in to view, or pages which have dynamic, user-specific content, or POST pages which have content unavailable via GET, we recommend you incorporate the [[PHP integration module]] instead of using the Joomla! module.&lt;br /&gt;
==Installation Instructions for Joomla! 1.0==&lt;br /&gt;
#Download ClickTale module from [http://www.clicktale.com/Integration/Joomla/Module%20For%201.0/mod_clicktale.zip here]. Save it somewhere, but do not unzip.&lt;br /&gt;
#Log in as administrator.&lt;br /&gt;
#From the menu choose &amp;quot;Installers&amp;quot; and then choose &amp;quot;Modules&amp;quot;.&lt;br /&gt;
#Under &amp;quot;Upload Package File&amp;quot; click browse, and then find the zip directory you saved earlier.&lt;br /&gt;
#Click &amp;quot;Upload File &amp;amp; Install&amp;quot;&lt;br /&gt;
#After you  install the module, choose &amp;quot;Modules&amp;quot; -&amp;gt; &amp;quot;Site Modules&amp;quot; from the menu.&lt;br /&gt;
#Locate &amp;quot;ClickTale Module&amp;quot; in the list and click on it.&lt;br /&gt;
#In the &amp;quot;Details pane you should set: &amp;quot;Show title&amp;quot; as &amp;quot;No&amp;quot;, &amp;quot;Published&amp;quot; as &amp;quot;Yes&amp;quot; and &amp;quot;Position&amp;quot; as &amp;quot;debug&amp;quot;.&lt;br /&gt;
#In the &amp;quot;Parameters&amp;quot; pane, put your Top and Bottom scripts in the text-boxes.&lt;br /&gt;
#Click save (top right of the window).&lt;br /&gt;
==Installation Instructions for Joomla 1.5==&lt;br /&gt;
#Download ClickTale module from [http://www.clicktale.com/Integration/Joomla/Module%20For%201.5/mod_clicktale.zip here]. Save it somewhere, but do not unzip.&lt;br /&gt;
#Log in as administrator.&lt;br /&gt;
#From the menu choose &amp;quot;Extensions&amp;quot; and then choose &amp;quot;Install/Uninstall&amp;quot;.&lt;br /&gt;
#Under &amp;quot;Upload Package File&amp;quot; click browse, and then find the zip directory you saved earlier.&lt;br /&gt;
#Click &amp;quot;Upload File &amp;amp; Install&amp;quot;&lt;br /&gt;
#After you  install the module, go to &amp;quot;Extensions&amp;quot; -&amp;gt; &amp;quot;Module Manager&amp;quot;.&lt;br /&gt;
#Locate &amp;quot;ClickTale Module&amp;quot; in the list and click on it.&lt;br /&gt;
#In the &amp;quot;Details pane you should set: &amp;quot;Show title&amp;quot; as &amp;quot;No&amp;quot;, &amp;quot;Enabled&amp;quot; as &amp;quot;Yes&amp;quot; and &amp;quot;Position&amp;quot; as &amp;quot;debug&amp;quot;.&lt;br /&gt;
#In the &amp;quot;Parameters&amp;quot; pane, put your Top and Bottom scripts in the text-boxes.&lt;br /&gt;
#Click save (top right of the window).&lt;br /&gt;
===Notes===&lt;br /&gt;
*In step 8, if your template does not support the &amp;quot;debug&amp;quot; position, you can choose another one (eg. &amp;quot;footer&amp;quot;). The point is to place the module as low as possible on the webpage.&lt;br /&gt;
*Download links for Joomla 1.0 Module and Joomla 1.5 Module are different.&lt;br /&gt;
*Joomla 1.0 Module is not optimal since it places both &amp;quot;top&amp;quot; and &amp;quot;bottom&amp;quot; codes at the bottom of the page. We strongly recommend updating your Joomla to the newest version.&lt;br /&gt;
==Joomla! Extension==&lt;br /&gt;
Created by Josh Guedalia from [http://two-tribes.com Two Tribes]&lt;br /&gt;
#Download the extension by Josh Guedalia [http://www.clicktale.com/Integration/Joomla/ClickTale%20Joomla%20module%20by%20Josh%20Guedalia.zip here]&lt;br /&gt;
#Go to Extensions&amp;gt;Install/Uninstall browse to clicktale.zip and press 'Upload File &amp;amp; Install', should see 'Install Plugin Success'&lt;br /&gt;
#Go to Extensions&amp;gt;Plugin Manager select 'System - Clicktale' to edit plugin.&lt;br /&gt;
#Enable plugin (publish) and place tracking code received from clicktale.com in the two parameters - 'top' and 'bottom'&lt;br /&gt;
That's it, now every page on the site will have the tracking code added.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Template:SMB</id>
		<title>Template:SMB</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Template:SMB"/>
				<updated>2011-10-09T13:47:32Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid rgb(153, 153, 153); padding: 1em; width:88%;&amp;quot;&amp;gt;[[Image:Logo.png|30 px|ClickTale Wiki]]&amp;lt;br&amp;gt;'''The instructions on this page are intended for self service and online accounts.&amp;lt;br&amp;gt;Enterprise customers should contact their account managers for integration support.'''&amp;lt;/blockquote&amp;gt;&amp;lt;/center&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/JavaScript_integration</id>
		<title>JavaScript integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/JavaScript_integration"/>
				<updated>2011-10-09T13:47:17Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
Some websites use JavaScript dialogs/panels for various purposes, such as for implementing a &amp;quot;more info&amp;quot; panel or a registration form.&lt;br /&gt;
If you haven't yet implemented the instructions described here the panel will not open during playback when the trigger is clicked. In addition to that, you won't see Link Analytics data for elements of the panel if the panel is collapsed initially.&lt;br /&gt;
&lt;br /&gt;
'''Please note: Be careful to not mistake JavaScript popups with popups that open in a separate window. Popups that open in a separate window are separate pages and need to have the tracking code added to them.'''&lt;br /&gt;
==Enabling dynamic JavaScript activation during playback==&lt;br /&gt;
In order to trigger a JavaScript element which is normally triggered by visitor behavior(this includes CSS menus), you need to call the [[ClickTaleExec]] API function within the triggered JavaScript function. [[ClickTaleExec]] will register any action you pass to the function and will execute it during playback, thus enabling you or instance to expand/show the panel/dialog.&lt;br /&gt;
===Example 1: Hidden Div Element===&lt;br /&gt;
If you have an html page with a button that when clicked shows a DIV html element. This is basically a simple case of a tab control or a DHTML menu. If the button onclick event is:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;function ButtonClicked()&lt;br /&gt;
{&lt;br /&gt;
  pane.style.display=&amp;quot;block&amp;quot;;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To record this change alter the function to add a call to ClickTaleExec:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;function ButtonClicked()&lt;br /&gt;
{&lt;br /&gt;
  if(typeof ClickTaleExec=='function')&lt;br /&gt;
    ClickTaleExec(&amp;quot;ButtonClicked()&amp;quot;);&lt;br /&gt;
  pane.style.display=&amp;quot;block&amp;quot;;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
===Example 2: Dropdown Menu Panels===&lt;br /&gt;
This is an example of using the [[ClickTaleExec]] API command to record a dynamic JavaScript menu. Each section of the menu is represented on the page using a list item which calls a JavaScript function entitled toggleMenu(or similar, Inspect Element can be used to find the exact function) when the visitor's mouse hovers over it, this is often found in Magento:&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The menu items are constructed as follows:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;li class=&amp;quot;xyz&amp;quot; onmouseout=&amp;quot;toggleMenu(this,0)&amp;quot; onmouseover=&amp;quot;toggleMenu(this,1)&amp;quot;&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
And the function itself looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;function toggleMenu(el, over)&lt;br /&gt;
{&lt;br /&gt;
	if (over) {&lt;br /&gt;
		...&lt;br /&gt;
		...&lt;br /&gt;
	}&lt;br /&gt;
	else {&lt;br /&gt;
		...&lt;br /&gt;
		...&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
To record the function properly an id attribute should be added to each list item&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;li class=&amp;quot;xyz&amp;quot; onmouseout=&amp;quot;toggleMenu(this,0)&amp;quot; onmouseover=&amp;quot;toggleMenu(this,1)&amp;quot; id=&amp;quot;menuitem1&amp;quot;&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
and the function changed to:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;function toggleMenu(el, over)&lt;br /&gt;
{&lt;br /&gt;
	if (typeof ClickTaleExec == &amp;quot;function&amp;quot;) {&lt;br /&gt;
		var elId = el.id;&lt;br /&gt;
		if(elId) {&lt;br /&gt;
			ClickTaleExec(&amp;quot;toggleMenu(document.getElementById('&amp;quot; + elId + &amp;quot;'),&amp;quot;+over+&amp;quot;)&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	if (over) {&lt;br /&gt;
		...&lt;br /&gt;
		...&lt;br /&gt;
	}&lt;br /&gt;
	else {&lt;br /&gt;
		...&lt;br /&gt;
		...&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
Where &amp;quot;el&amp;quot; is the element, &amp;quot;elId&amp;quot; the ID added to the element, &amp;quot;over&amp;quot; is the toggle action. &lt;br /&gt;
Note: As ClickTaleExec is part of an if statement it will only affect the menus during playback.&lt;br /&gt;
&lt;br /&gt;
Note: Some Magento skins will include a 3rd parameter, in this case the following can be used: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;ClickTaleExec(&amp;quot;toggleMenu(document.getElementById('&amp;quot; + elId + &amp;quot;'),&amp;quot;+over+&amp;quot;,”+second+”)&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A quick summary of implementation:&lt;br /&gt;
# Right click the element on the page and select &amp;quot;Inspect Element&amp;quot; (in Firefox)&lt;br /&gt;
# Identify the function name and parameters that control the movement to be recorded&lt;br /&gt;
# Perform the above ClickTaleExec additions to the function&lt;br /&gt;
# Add an ID to each menu item if there isn't already one&lt;br /&gt;
&lt;br /&gt;
==Enabling dynamic JavaScript activation during aggregated reports==&lt;br /&gt;
This is essential in order to view Link Analytics info and/or Form Analytics info on the elements of the panel(s).&lt;br /&gt;
To implement, add the following code to your page after all panels have been loaded:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
function CTIsPlayback() {&lt;br /&gt;
   try { return parent &amp;amp;&amp;amp; parent.WebPlayer; }&lt;br /&gt;
   catch(e) { return false; }&lt;br /&gt;
}&lt;br /&gt;
if(CTIsPlayback() &amp;amp;&amp;amp; !parent.P2SIDs)&lt;br /&gt;
{&lt;br /&gt;
   // TODO: add code here to show/expand your panels&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
The code will only be executed when the page is shown as a backdrop of ClickTale's aggregated report.&lt;br /&gt;
&lt;br /&gt;
==A useful function to assist in implementing ClickTaleExec calls==&lt;br /&gt;
To use the [[ClickTaleExec]] API command to its full potential you will need to make sure your script can differentiate between three states:&lt;br /&gt;
*Regular viewing&lt;br /&gt;
*Playback&lt;br /&gt;
*Aggregated report&lt;br /&gt;
You can do so by including the following function:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;function ClickTaleIsIn (testFor) {&lt;br /&gt;
	var topLocation = top.location;&lt;br /&gt;
&lt;br /&gt;
	if(testFor == &amp;quot;recording&amp;quot; &amp;amp;&amp;amp; window.location == topLocation) {&lt;br /&gt;
		return true;&lt;br /&gt;
	} else if(testFor == &amp;quot;recording&amp;quot; || window.location == topLocation) {&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	switch(testFor.toLowerCase()) {&lt;br /&gt;
	case &amp;quot;report&amp;quot;:&lt;br /&gt;
		var fn = arguments.callee;&lt;br /&gt;
		return fn(&amp;quot;scroll-heatmap&amp;quot;) || fn(&amp;quot;click-heatmap&amp;quot;) || fn(&amp;quot;form-analytics&amp;quot;);&lt;br /&gt;
	case &amp;quot;scroll-heatmap&amp;quot;:&lt;br /&gt;
		var regex = new RegExp(&amp;quot;Heatmap.aspx\?&amp;quot;, &amp;quot;i&amp;quot;);&lt;br /&gt;
		return regex.test(topLocation);&lt;br /&gt;
	case &amp;quot;click-heatmap&amp;quot;:&lt;br /&gt;
		var regex = new RegExp(&amp;quot;ClickHeatMap.aspx\?&amp;quot;, &amp;quot;i&amp;quot;);&lt;br /&gt;
		return regex.test(topLocation);&lt;br /&gt;
	case &amp;quot;form-analytics&amp;quot;:&lt;br /&gt;
		var regex = new RegExp(&amp;quot;FormAnalytics.aspx\?&amp;quot;, &amp;quot;i&amp;quot;);&lt;br /&gt;
		return regex.test(topLocation);&lt;br /&gt;
	case &amp;quot;playback&amp;quot;:&lt;br /&gt;
		var regex = new RegExp(&amp;quot;Player.aspx\?&amp;quot;, &amp;quot;i&amp;quot;);&lt;br /&gt;
		return regex.test(topLocation);&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
The parameters it can be given are:&lt;br /&gt;
*&amp;quot;recording&amp;quot;&lt;br /&gt;
*&amp;quot;report&amp;quot; (all aggregated reports will return true)&lt;br /&gt;
*&amp;quot;playback&amp;quot; (true only in playback)&lt;br /&gt;
*&amp;quot;scroll-heatmap&amp;quot;&lt;br /&gt;
*&amp;quot;click-heatmap&amp;quot;&lt;br /&gt;
*&amp;quot;form-analytics&amp;quot;&lt;br /&gt;
So in case of a regular visitor, the function will return false for every parameter other than &amp;quot;recording&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This way, the [[ClickTaleExec]] command can be invoked only if it's in playback mode, and during aggregated reports, you can, for instance, choose to expand all JavaScript panels in a menu in order to better understand visitor interaction with them.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
This code section MUST stay outside of the tracking codes scripts and comments section (&amp;lt; !-- ClickTale end of Bottom part --&amp;gt;). &lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/J2EE_integration_module</id>
		<title>J2EE integration module</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/J2EE_integration_module"/>
				<updated>2011-10-09T13:47:13Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
==Introduction==&lt;br /&gt;
ClickTale is happy to announce the availability of the '''J2EE (Java Platform, Enterprise Edition)''' [[integration module]]. Based on the same architecture as [[ASP.NET integration module]] and [[PHP integration module]], the [http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition J2EE] module allows full integration of ClickTale with dynamic, session-based, behind-a-login and POST-processing pages.&lt;br /&gt;
&lt;br /&gt;
The module is composed of a filter, a servlet and a test page and is added to the website as any other library.&lt;br /&gt;
&lt;br /&gt;
==Technical notes==&lt;br /&gt;
If you are using struts version 2 and above, you may need to edit struts.xml and add a line to exclude our servlet from being processed by struts. See the line below:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;constant name=&amp;quot;struts.action.excludePattern&amp;quot; value=&amp;quot;/ClickTaleCache.*&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For older struts versions:&lt;br /&gt;
* Struts 1.3 - no changes to struts configuration are required.&lt;br /&gt;
* Customers with JDK 1.5 should use the J2EE integration module version compiled with jdk 1.4 found below – tested and works&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This [[Integration module]] is for [http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition J2EE] sites using dynamic content which changes for each user independently. For example, shopping carts are often such pages.&lt;br /&gt;
It will allow you to store the exact version that the user saw and allow our fetching bot to collect that version so it will be available to you in the playback of visitors visits and other reports.&lt;br /&gt;
The J2EE Integration Module adds further support to cases that were not previously covered, such as POST processing pages.&lt;br /&gt;
&lt;br /&gt;
The module allows better integration of a J2EE site with ClickTale by enabling accurate caching of the HTML that is sent to the visitor in ClickTale recorded pageviews.&lt;br /&gt;
&lt;br /&gt;
==Installation Guide==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Remove the existing ClickTale code and/or disable other integration methods (for example, J2EE integration code - which supports session state only).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Download the latest version of the ClickTale J2EE Integration module from [http://www.clicktale.com/Integration/ClickTaleJ2EEIntegrationModule_latest.zip here].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;'''PLEASE NOTE:''' In case you need a version compiled for older JVM (1.4 and 1.5), a version compiled with jdk 1.4 is available [http://www.clicktale.com/Integration/ClickTaleJ2EEJavaPlatform1.4IntegrationModule_latest.zip here].&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the ClickTale tracking code you want to use in your pages (or locate your already generated code).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Decompress the 2 archive files, and copy to the site location. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locate the WEB-INF/ClickTaleScripts.xml file that comes in the clicktale-sample.war file and open it in a text editor. &lt;br /&gt;
Paste your ClickTale Tracking Code from the previous step into the appropriate CDATA fields into the ClickTaleScripts.xml file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the bottom script before the call to ClickTale(###) function add the following line: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;http://%RootPath%/ClickTaleCache?h=%CacheToken%&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Your xml file should now look like this (for the regular, https/SSL compliant version of the tracking code): :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Put this in the root of the web site --&amp;gt;&lt;br /&gt;
&amp;lt;scripts&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Top&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&lt;br /&gt;
&amp;lt;!-- ClickTale Top part --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var WRInitTime=(new Date()).getTime();&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Top part --&amp;gt;&lt;br /&gt;
]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Bottom&amp;quot; DoNotReplaceCondition=&amp;quot;&amp;amp;lt;!-- No ClickTale --&amp;amp;gt;&amp;quot; InsertBefore=&amp;quot;&amp;amp;lt;!-- ClickTale Bottom part Here --&amp;amp;gt;|&amp;amp;lt;/body&amp;amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
document.write(unescape(&amp;quot;%3Cscript%20src='&amp;quot;+&lt;br /&gt;
 (document.location.protocol=='https:'?&lt;br /&gt;
  'https://clicktale.pantherssl.com/':&lt;br /&gt;
  'http://s.clicktale.net/')+&lt;br /&gt;
 &amp;quot;WRb6.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(typeof ClickTale=='function')&lt;br /&gt;
{&lt;br /&gt;
	var ClickTaleSSL=1;&lt;br /&gt;
	ClickTaleFetchFrom=&amp;quot;http://%RootPath%/ClickTaleCache?h=%CacheToken%&amp;quot;;&lt;br /&gt;
	ClickTale([Your ClickTale parameters]);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&lt;br /&gt;
]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/scripts&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''IMPORTANT NOTE! This is how the code looks like in a text editor. In a browser, &amp;quot;&amp;amp;amp;lt;&amp;quot; will be converted to &amp;quot;&amp;lt;&amp;quot; and &amp;quot;&amp;amp;amp;gt;&amp;quot; will become &amp;quot;&amp;gt;&amp;quot;'''&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locate and copy the various configuration files in the archive (WEB-INF and WEB-INF\classes) to your site. If you already using log4j or ehcache, please mind to integrate those instead of overwriting your files.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locate and copy the various WEB-INF\lib files in the archive to your site.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Modify your WEB-INF\web.xml file to include the filter and servlet declarations as in the web.xml file that is included in the archive.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Copy the 'clicktale' directory to your site. This folder contains test pages that you can use to verify the correct operation of the module. You may remove the folder from production system.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Optionally: see [[Selective recordings#Selective recording via URL parameter|here]] to disable or enable yourself from being recorded. Apply this to everyone who is working with you on the site otherwise they will use recording quota, or enable this for testing to make sure all is working correctly.&lt;br /&gt;
&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
====Enabling Logging====&lt;br /&gt;
After the files are copied you can navigate your browser to '''&amp;lt;nowiki&amp;gt;http://yoursite/clicktale/index.html&amp;lt;/nowiki&amp;gt;''' to view some helpful information regarding the caching and other configurations. Changing info to debug in the log4j.properties file will output debug info to the console, this can be sent direct to a log file by editing the text to read:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
log4j.rootLogger=debug, R&lt;br /&gt;
log4j.appender.stdout=org.apache.log4j.ConsoleAppender&lt;br /&gt;
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout&lt;br /&gt;
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n&lt;br /&gt;
log4j.appender.R = org.apache.log4j.DailyRollingFileAppender&lt;br /&gt;
log4j.appender.R.File = logs/clicktale.log&lt;br /&gt;
log4j.appender.R.Append = true&lt;br /&gt;
log4j.appender.R.DatePattern = '.'yyy-MM-dd&lt;br /&gt;
log4j.appender.R.layout = org.apache.log4j.PatternLayout&lt;br /&gt;
log4j.appender.R.layout.ConversionPattern =%d [%t] %-5p %c - %m%n&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depending how the root folder is defined for your server, you might need to set the path of the log file to ../logs/clicktale.log or use another (absolute) path to enable logging correctly.&lt;br /&gt;
&lt;br /&gt;
Please ensure that production servers are set back to &amp;quot;info&amp;quot; when live.&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;Invalid &amp;lt;url-pattern&amp;gt;&amp;quot; error message====&lt;br /&gt;
It is possible that you will receive this error message with older version of Java (1.4) or specific web servers (Tomcat 5.5, etc). The error will appear in the log files of your web server. Additionally, pages on the site related to the modified web.xml file will not load. To resolve the issue edit the web.xml file and modify the value of the &amp;lt;url-pattern&amp;gt; element for the ClickTale module such that it will be valid for your environment. We had good results replacing &amp;quot;*&amp;quot; with &amp;quot;/*&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Configuring the caching provider==&lt;br /&gt;
The module caches the content of the pages so it can later provide the content to ClickTale servers for processing. This caching requires some persistent storage and so different caching providers are supported.&lt;br /&gt;
The default caching provider is the HashMap based, internal storage provider. You could also configure it to use a local ehcache for storage.&lt;br /&gt;
&lt;br /&gt;
You can enable its provider by editing the ClickTale.properties file, commenting:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;#CacheProvider=com.clicktale.cache.impl.HashMapProviderImpl;&amp;lt;/source&amp;gt;&lt;br /&gt;
and uncommenting:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;CacheProvider=com.clicktale.cache.impl.EhCacheProviderImpl&lt;br /&gt;
EhCacheName=clickTaleCache&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Caching provider settings==&lt;br /&gt;
*DeleteAfterPull  = (true / false)&lt;br /&gt;
**If true, the cached page is deleted after clicktale fetches it from your site&lt;br /&gt;
*MaxCachedPages = (integer)&lt;br /&gt;
**The size of the cache dir in MegaBytes. If the number of cached pages cache gets larger than that, stale caches are removed&lt;br /&gt;
&lt;br /&gt;
===Use With &amp;quot;Expires&amp;quot; Header And Enable Reuse Of Cached Pages===&lt;br /&gt;
Some websites use &amp;quot;cache-control&amp;quot; and &amp;quot;expires&amp;quot; headers to cache pages on the client. This improves performance but may be problematic when used with our module. Pages are removed from the module's cache right after they are being accessed (for security and performance reasons). So, if a visitor browses a page more than once without refreshing the content from the server (this is usually a result of using the back button), the cache will be called several times with the same token. This will cause a cache miss for any request beyond the first one. &lt;br /&gt;
To overcome this problem, it is possible to use the DeleteAfterPull=&amp;quot;false&amp;quot; parameter in the configuration. This will disable the removal of cached pages when the ClickTale cache is called. Cached data will be removed after MaxCachedPages=&amp;quot;???&amp;quot; new pages are cached, so you might want to extend this parameter as well to allow sufficient traffic between the first pageview and the next (duplicate pageview).&lt;br /&gt;
&lt;br /&gt;
==Q&amp;amp;A==&lt;br /&gt;
:'''Q: Are cached pages protected from access by third parties?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: Yes, several layers of protection are in place. Only certain IPs are allowed to request the cached pages (IPs of ClickTale servers) and only processes which already have access to the page have the secret token required to request the cached content.&lt;br /&gt;
&lt;br /&gt;
:'''Q: Is it possible to inject the script in other places rather than after/before body tags?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: Yes. By default the top script is injected after &amp;lt;body&amp;gt; and the bottom before &amp;lt;/body&amp;gt;, but this can be changed by adding a InsertAfter attribute to the script[name=&amp;quot;Top&amp;quot;] element or adding a InsertBefore attribute to the script[name=&amp;quot;Bottom&amp;quot;] element, both are regular expressions.&lt;br /&gt;
&lt;br /&gt;
:'''Q: Some of my pages already have the ClickTale script, I do not want the script appear twice.'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: You should either remove the script from those pages and let the module handle the insertion or you should use DoNotReplaceCondition. See the code step 2 for an example. The default script in Step 2 is already configured to prevent double inclusion.&lt;br /&gt;
&lt;br /&gt;
:'''Q: After installing the module, I tried to watch a recording but I got the following notice instead: &amp;quot;Request from an unauthorized IP.&amp;quot; . What should I do?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: This could be a misconfiguration, a change in our IP addresses or a hacking attempt. Please contact us so we can investigate this further.&lt;br /&gt;
&lt;br /&gt;
:'''Q: I have installed the module but I don't see the tracking code in the source of the page. What is wrong?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: The module will only inject the code for visitors who are classified as &amp;quot;to-record&amp;quot; (have WRUID cookie with non-zero value) or for those who are not classified (no WRUID cookie). Visitors who are classified as &amp;quot;not-to-record&amp;quot; will get no code.&lt;br /&gt;
&lt;br /&gt;
:'''Q: I'm using a proxy server for my website - what steps should I take to record properly?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: Move the IP restriction rule to the proxy and set the IP in ClickTale.properties (located in the WEB-INF directory) to the IP of the proxy.&lt;br /&gt;
&lt;br /&gt;
:'''Q: Can I filter out specific pages from recording?'''&amp;lt;br&amp;gt;&lt;br /&gt;
:A: You may use the filter-mapping/url-pattern entry in the web.xml to set filters with some wildcard options.&lt;br /&gt;
&lt;br /&gt;
==Using a proxy server==&lt;br /&gt;
If you have a proxy, whenever our servers will try to get the cache they will appear to have the address of the proxy which is not allowed by default.&lt;br /&gt;
To fix this, you should set the IP address of the proxy to the AllowedAddresses value in the module's ClickTale.properties file and set a rule with your proxy to allow only our servers IP range access to the cache.&lt;br /&gt;
Or servers' IP ranges are: 75.125.82.64/26 50.97.162.64/26 (''stands for 75.125.82.64 - 75.125.82.127 and 50.97.162.64 - 50.97.162.127'').&lt;br /&gt;
&lt;br /&gt;
==Reference==&lt;br /&gt;
[[Integration module]] - Good read, for a general understanding of our integration modules.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/J2EE_integration_code</id>
		<title>J2EE integration code</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/J2EE_integration_code"/>
				<updated>2011-10-09T13:46:39Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;big&amp;gt;'''If possible, use the [[J2EE integration module]] instead. It provides better integration with our service.&amp;lt;br&amp;gt;&lt;br /&gt;
The only reason to use this code is if you are unable to install a binary module on your site.'''&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
The J2EE integration code below allows you to record dynamic pages and pages behind a login using the [[FetchFromWithCookies]] method.&lt;br /&gt;
&lt;br /&gt;
Replace the bottom part of your [[tracking code]] with the one of the following to allow ClickTale to better cache the pages of your session based website:&lt;br /&gt;
==Standard J2EE integration code==&lt;br /&gt;
This code cannot record https/SSL pages. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(document.location.protocol!='https:')&lt;br /&gt;
  document.write(unescape(&amp;quot;%3Cscript%20src='http://s.clicktale.net/WRb.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;JSESSIONID&amp;quot;);&lt;br /&gt;
// add a similar line for each additional cookie variable&lt;br /&gt;
&lt;br /&gt;
ClickTaleFetchFrom = ClickTaleFetchFromWithCookies.constructFetchFromUrl();&lt;br /&gt;
&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PARAMETERS!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==https compliant J2EE integration code==&lt;br /&gt;
&lt;br /&gt;
This code will record https/SSL paes as well as standard pages. This functionality is not available for all plans and will not work unless supported by your current plan.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
document.write(unescape(&amp;quot;%3Cscript%20src='&amp;quot;+&lt;br /&gt;
 (document.location.protocol=='https:'?&lt;br /&gt;
  'https://clicktale.pantherssl.com/':&lt;br /&gt;
  'http://s.clicktale.net/')+&lt;br /&gt;
 &amp;quot;WRb.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;JSESSIONID&amp;quot;);&lt;br /&gt;
// add a similar line for each additional cookie variable&lt;br /&gt;
&lt;br /&gt;
ClickTaleFetchFrom = ClickTaleFetchFromWithCookies.constructFetchFromUrl();&lt;br /&gt;
var ClickTaleSSL=1;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PARAMETERS!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Adding more cookies==&lt;br /&gt;
'''Please note:'''&lt;br /&gt;
After&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;JSESSIONID&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: more lines in the form of:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;[!COOKIENAME!]&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: may be needed, where [!COOKIENAME!] is the name of other session cookies required to properly identify your website visitors.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/HTTPS_pages</id>
		<title>HTTPS pages</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/HTTPS_pages"/>
				<updated>2011-10-09T13:46:19Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
== Who can record https pages ==&lt;br /&gt;
Accounts with the free plan cannot record SSL/https pages. All paid plans allow for SSL/https recording, as seen on the [http://www.clicktale.com/pricing.aspx ClickTale pricing page] under &amp;quot;Record HTTPS Pages&amp;quot;. If you have a paid plan and would like to find out if you can record these pages you can do so by trying to generate a SSL/https compliant tracking code (see below). If you do not have permission you will not be able to select the appropriate radio button at the bottom of the code generation page. &lt;br /&gt;
&lt;br /&gt;
'''Please note:'''&amp;lt;br&amp;gt;&lt;br /&gt;
If you are not subscribed to a plan which enables SSL/https recording, make sure you are using the latest code that ignores https pages.&lt;br /&gt;
The latest regular (non-SSL) tracking code is the one which has a line of code that begins with: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(document.location.protocol!='https:')...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Generating a SSL/https compliant tracking code ==&lt;br /&gt;
In the initial page during the generation of the tracking code for a new or existing project, make sure “Both HTTP and SSL/HTTPS pages” is selected at the bottom of the page.&lt;br /&gt;
&lt;br /&gt;
In order to generate a new tracking code for SSL/https pages : &lt;br /&gt;
#	Choose the project.&lt;br /&gt;
#	Press &amp;quot;get tracking code&amp;quot;.&lt;br /&gt;
#	In &amp;quot;Record Secure Page&amp;quot; area check &amp;quot;Both HTTP and SSL/HTTPS pages&amp;quot; radio button.&lt;br /&gt;
#	Insert the code into your https page.&lt;br /&gt;
&lt;br /&gt;
'''Please note:'''&lt;br /&gt;
*As mentioned in the code generation page, SSL/https compliant tracking code can record both http pages and https pages.&lt;br /&gt;
*If you have generated your tracking code without SSL in the past and now want to generate a SSL enabled code you need to use the code generation wizard again. Changing http:// to https:// will not make your simple code become SSL enabled.&lt;br /&gt;
[[Category: Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Google_Website_Optimizer_integration</id>
		<title>Google Website Optimizer integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Google_Website_Optimizer_integration"/>
				<updated>2011-10-09T13:46:10Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
'''ClickTale has two integration methods for Google Website Optimizer (GWO), please make sure you choose the correct integration method based on the type of test you are running.'''&lt;br /&gt;
__TOC__&lt;br /&gt;
==Google Website Optimizer for Split testing (A/B testing)==&lt;br /&gt;
Google Website Optimizer in Split test (A/B testing) mode, will redirect your entry page to a different page based on your configuration. While this is active you will not be able to play or do a report on your entry page in ClickTale.&lt;br /&gt;
&lt;br /&gt;
'''With the following fix, you will be able to see the correct variation for each visitor and also aggregate each variation separately in Heatmaps or Form Analytics reports.'''&lt;br /&gt;
===Instructions===&lt;br /&gt;
If your current Google Website Optimizer code (on the &amp;quot;original&amp;quot; page) looks like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
function utmx_section(){}function utmx(){}&lt;br /&gt;
(function(){var k='XXXXXXXXXX',d=document,l=d.location,c=d.cookie;function f(n){&lt;br /&gt;
if(c){var i=c.indexOf(n+'=');if(i&amp;gt;-1){var j=c.indexOf(';',i);return c.substring(i+n.&lt;br /&gt;
length+1,j&amp;lt;0?c.length:j)}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;&lt;br /&gt;
d.write('&amp;lt;sc'+'ript src=&amp;quot;'+&lt;br /&gt;
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'&lt;br /&gt;
+'/siteopt.js?v=1&amp;amp;utmxkey='+k+'&amp;amp;utmx='+(x?x:'')+'&amp;amp;utmxx='+(xx?xx:'')+'&amp;amp;utmxtime='&lt;br /&gt;
+new Date().valueOf()+(h?'&amp;amp;utmxhash='+escape(h.substr(1)):'')+&lt;br /&gt;
'&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/sc'+'ript&amp;gt;')})();&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;script&amp;gt;utmx(&amp;quot;url&amp;quot;,'A/B');&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Change it to&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
var CTIsPlayback=true;&lt;br /&gt;
try&lt;br /&gt;
{&lt;br /&gt;
   if(!parent || !parent.WebPlayer) // if there is no WebPlayer or if the above frame is not accessible&lt;br /&gt;
      throw false;&lt;br /&gt;
} catch(e) { CTIsPlayback=false; }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
function utmx_section(){}function utmx(){}&lt;br /&gt;
if(!CTIsPlayback)&lt;br /&gt;
{&lt;br /&gt;
(function(){var k='XXXXXXXXXX',d=document,l=d.location,c=d.cookie;function f(n){&lt;br /&gt;
if(c){var i=c.indexOf(n+'=');if(i&amp;gt;-1){var j=c.indexOf(';',i);return c.substring(i+n.&lt;br /&gt;
length+1,j&amp;lt;0?c.length:j)}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;&lt;br /&gt;
d.write('&amp;lt;sc'+'ript src=&amp;quot;'+&lt;br /&gt;
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'&lt;br /&gt;
+'/siteopt.js?v=1&amp;amp;utmxkey='+k+'&amp;amp;utmx='+(x?x:'')+'&amp;amp;utmxx='+(xx?xx:'')+'&amp;amp;utmxtime='&lt;br /&gt;
+new Date().valueOf()+(h?'&amp;amp;utmxhash='+escape(h.substr(1)):'')+&lt;br /&gt;
'&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/sc'+'ript&amp;gt;')})();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
if(!CTIsPlayback)&lt;br /&gt;
   utmx(&amp;quot;url&amp;quot;,'A/B');&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''Note: The ID in the code varies per test and needs to be changed to the ID you have been provided by from Google Website Optimizer.'''&amp;lt;br&amp;gt;&lt;br /&gt;
This will run Google Website Optimizer A/B testing in any normal use of the page and not run it when doing ClickTale playback.&lt;br /&gt;
==Google Website Optimizer for Multivariate testing==&lt;br /&gt;
When using GWO Multivariate testing and ClickTale without correct code customization, the playback of the recorded pages and aggregation reports will not be accurate and will probably not display the combination that the user saw.&lt;br /&gt;
&lt;br /&gt;
'''With the following integration, you will be able to see the correct variation for each visitor and also aggregate each variation separately in Heatmaps or Form Analytics reports.'''&lt;br /&gt;
===Introduction===&lt;br /&gt;
Let's assume we are integrating with a page that has 3 sections and 2 variations for each section.&lt;br /&gt;
====Finding your GWO experiment ID====&lt;br /&gt;
The experiment ID is the alphanumeric string immediately following experiment=. For example, in the URL:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;nowiki&amp;gt;https://www.google.com/analytics/siteopt/mv_prepare_install?experiment=AgAAAIuElaplZk1wAusMbP0ZUYo&amp;amp;account=00000001&amp;lt;/nowiki&amp;gt;'''&amp;lt;br&amp;gt;the experiment ID is AgAAAIuElaplZk1wAusMbP0ZUYo.&lt;br /&gt;
====Accessing specific combinations by using special URL params====&lt;br /&gt;
To view a specific combination you can append the following string to your test URL:&lt;br /&gt;
 #utmxid='''Experiment_ID''';utmxpreview='''Combination_number'''&lt;br /&gt;
&lt;br /&gt;
'''Combination_number''' should look similar to this in our case: 1-0-1 (2nd variation in first section, 1st variation in second section and 2nd variation in third section)&lt;br /&gt;
&lt;br /&gt;
''For more information please see http://www.google.com/support/websiteoptimizer/bin/answer.py?hl=en&amp;amp;answer=63841''&lt;br /&gt;
===Adding customized code to you page===&lt;br /&gt;
This is done to save the combination that the user sees on the page to be used later for playback.&lt;br /&gt;
&lt;br /&gt;
There are two different scripts depending on whether you have one multivariate test running on your site, or multiple tests running simultaneously.&lt;br /&gt;
====With one multivariate test on your site====&lt;br /&gt;
'''Note: This script can be part of the bottom script that is injected to the page in case you are using a ClickTale integration module.'''&lt;br /&gt;
&lt;br /&gt;
Add this JS code right after the ClickTale bottom part script: (replace the '''Experiment_ID''' with your experiment ID)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale-Recording integration start --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
	 if (typeof ClickTaleField == 'function' &amp;amp;&amp;amp; utmx(&amp;quot;combination_string&amp;quot;))  {&lt;br /&gt;
   		ClickTaleField('CT.InitialLocationParams', &amp;quot;#utmxid=Experiment_ID;utmxpreview=&amp;quot; + utmx(&amp;quot;combination_string&amp;quot;));&lt;br /&gt;
   		ClickTaleTag('GWO: ' + utmx(&amp;quot;combination_string&amp;quot;));&lt;br /&gt;
   	}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- End Clicktale-Recording Integration End --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''Note: It’s best to keep the experiment ID in a config file along with the unique identifier for the experiment that you can see in the control script (....var k=&amp;lt;nowiki&amp;gt;'&amp;lt;/nowiki&amp;gt;'''2376510756'''&amp;lt;nowiki&amp;gt;'&amp;lt;/nowiki&amp;gt;,d=....). This way you will not need to copy paste it from page to page and so it will be convenient to use the same code for more than one multivariate experiment running at the same time on different pages.'''&lt;br /&gt;
====With multiple multivariate tests on your site====&lt;br /&gt;
'''If you have more than one multivariate test on your site and you are using ClickTale integration module or if you don’t want to change the tracking code each time you create another test please use the method explained below:'''&lt;br /&gt;
&lt;br /&gt;
'''By using the code below you can define all the experiment IDs for all the MVT testing in your site. You will not need to change the code on the page if this is populated for example from your config file.'''&lt;br /&gt;
&lt;br /&gt;
Add this JS code at the top part of the page (best place is to put it next to the ClickTale top script): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale-MVT experiment ID declaration start --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var Id2ExperimentId={'k1':'ExperimentID1','k2':'ExperimentID2'};&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale-MVT experiment ID declaration end --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Add this JS code right after the ClickTale bottom part script:&lt;br /&gt;
&lt;br /&gt;
'''Note: This script can be part of the bottom script that is injected to the page in case you are using integration module.'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale-Recording integration start --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var detectk = &amp;quot;&amp;quot;;&lt;br /&gt;
    try {&lt;br /&gt;
   	 for (var i=0; i&amp;lt;document.getElementsByTagName(&amp;quot;script&amp;quot;).length; i++) {&lt;br /&gt;
   		 var scr = document.getElementsByTagName(&amp;quot;script&amp;quot;)[i];&lt;br /&gt;
   		 var content = scr.innerHTML;&lt;br /&gt;
   		 if (content.indexOf(&amp;quot;k='&amp;quot;) &amp;gt; -1)  {&lt;br /&gt;
   			 var match = /\(function\(\){var k='(\d+)',d=document,l=d\.location,c=d\.cookie;/.exec(content);   &lt;br /&gt;
   			 if(match &amp;amp;&amp;amp; match.length &amp;gt;= 2) {&lt;br /&gt;
   				 detectk = match[1];&lt;br /&gt;
   			 }&lt;br /&gt;
   		 }&lt;br /&gt;
   	 }&lt;br /&gt;
    }&lt;br /&gt;
    catch (e) { detectk = &amp;quot;&amp;quot;; }&lt;br /&gt;
    if (detectk != &amp;quot;&amp;quot;) {&lt;br /&gt;
   	 if (typeof ClickTaleField == 'function' &amp;amp;&amp;amp; utmx(&amp;quot;combination_string&amp;quot;))  {&lt;br /&gt;
   		 ClickTaleField('CT.InitialLocationParams', &amp;quot;#utmxid=&amp;quot; + Id2ExperimentId[detectk] + &amp;quot;;utmxpreview=&amp;quot;+utmx(&amp;quot;combination_string&amp;quot;));&lt;br /&gt;
   		 ClickTaleTag('GWO: ' + utmx(&amp;quot;combination_string&amp;quot;));&lt;br /&gt;
   	 }&lt;br /&gt;
    }&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- End Clicktale-Recording Integration End --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Google_SEO_integration</id>
		<title>Google SEO integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Google_SEO_integration"/>
				<updated>2011-10-09T13:46:02Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
Ever wonder which words lead visitors to your site? Using this method you can find out how many pageviews you got for each keyword, as well as how the visitors searching for those keywords behaved: &lt;br /&gt;
==Instructions==&lt;br /&gt;
Place the following code on your website, instead of the bottom part of your [[tracking code]]: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
function queryString(parameter, encoded) {&lt;br /&gt;
  var loc_search = location.search.substring(1, location.search.length);&lt;br /&gt;
  loc_search = loc_search.replace(/\+/g, ' ');&lt;br /&gt;
  var param_value = false;&lt;br /&gt;
  var params = loc_search.split(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
  if(!encoded) {&lt;br /&gt;
    parameter = encodeURIComponent(parameter);&lt;br /&gt;
  }&lt;br /&gt;
  for (i=0; i&amp;lt;params.length;i++) {&lt;br /&gt;
 param_name = params[i].substring(0,params[i].indexOf('='));&lt;br /&gt;
 if (param_name == parameter) {&lt;br /&gt;
 param_value = params[i].substring(params[i].indexOf('=')+1)&lt;br /&gt;
 }&lt;br /&gt;
  }&lt;br /&gt;
  if (param_value) {&lt;br /&gt;
 return param_value;&lt;br /&gt;
  			}&lt;br /&gt;
  			else {&lt;br /&gt;
return false; // case parameter wasn't found&lt;br /&gt;
 }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://s.clicktale.net/WRb.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if (document.referrer. match(“www.google.com”) != null) {&lt;br /&gt;
var search_string = queryString(&amp;quot;q&amp;quot;); &lt;br /&gt;
var search_words = search_string.split(&amp;quot;+&amp;quot;);&lt;br /&gt;
 for (i=0; i&amp;lt; search_words.length;i++) {&lt;br /&gt;
ClickTaleTag(&amp;quot;googlesearch:&amp;quot;+search_words[i]);  }&lt;br /&gt;
}&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PROJECT ID!],recordingratio,[!PARTITION!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
This tags the pageviews with a tag entitled “googlesearch:”+the term that was searched.&lt;br /&gt;
#Use the [[Search]] page [[Events]] filter to see which search words got the highest popularity rating (=pageviews). Select the Events with the search terms if you want to view the behavior of visitors who used these terms to reach your site.&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Google_Maps_integration</id>
		<title>Google Maps integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Google_Maps_integration"/>
				<updated>2011-10-09T13:45:54Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
If you are using Google Maps on your website you might receive the following message when loading movies or reports for your site:&lt;br /&gt;
&amp;quot;The Google Maps API key used on this website was registered for a different website.&amp;quot; This is due to ClickTale caching your pages from your domain and then showing them from our own domain(cross-domain), the API security prevents the key being used in an unassigned domain. The solution is to disable activating Google Maps while your site pages are shown and analysed in your ClickTale Account whilst leaving the functionality on the site unchanged.&lt;br /&gt;
==Instructions==&lt;br /&gt;
Open the page where your Google Maps code is located. Find a line that says:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
if (GBrowserIsCompatible())&amp;lt;/source&amp;gt;&lt;br /&gt;
and change it to:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;function CTIsPlayback() {&lt;br /&gt;
   try { return parent &amp;amp;&amp;amp; parent.WebPlayer; }&lt;br /&gt;
   catch(e) { return false; }&lt;br /&gt;
}&lt;br /&gt;
if (GBrowserIsCompatible() &amp;amp;&amp;amp; !CTIsPlayback()  )&amp;lt;/source&amp;gt;&lt;br /&gt;
If Google Maps initialization happens after the ClickTale [[tracking code]] has been loaded you can also implement the change as:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
if (GBrowserIsCompatible() &amp;amp;&amp;amp; !(typeof ClickTaleIsPlayback==&amp;quot;function&amp;quot; &amp;amp;&amp;amp; ClickTaleIsPlayback() )  )&amp;lt;/source&amp;gt;&lt;br /&gt;
Publish the modified file online. The change will not affect any existing recordings.&lt;br /&gt;
==Alternative solution==&lt;br /&gt;
In certain rare cases the above code may not work. If so, just use the [[ClickTaleExcludeBlock]] to ignore the Google Maps code by wrapping the script tag:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://maps.google.com/maps?file=api... &amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
like so:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;!-- ClickTaleExcludeBlock --&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://maps.google.com/maps?file=api... &amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- EndClickTaleExcludeBlock &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt; &amp;lt;/script&amp;gt; --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Google_AdWords_integration</id>
		<title>Google AdWords integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Google_AdWords_integration"/>
				<updated>2011-10-09T13:44:31Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
This method allows you to use your recording quota to record only visitors who have arrived via a Google AdWords campaign: &lt;br /&gt;
#Make sure the URL which these visitors arrive at has an extra identifying parameter, such as ref=adwords&lt;br /&gt;
#Place the following code on your website, instead of the bottom part of your [[tracking code]]: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://s.clicktale.net/WRb.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
var recordingratio = 0;&lt;br /&gt;
if (/[\/?&amp;amp;]ref=[^&amp;amp;]*adwords($|&amp;amp;|#)/i.test(window.location.href) || ClickTaleGetUID()!=null) {&lt;br /&gt;
recordingratio = 1;&lt;br /&gt;
}&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PROJECT ID!],recordingratio,[!PARTITION!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Template:SMB</id>
		<title>Template:SMB</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Template:SMB"/>
				<updated>2011-10-09T13:09:09Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid rgb(153, 153, 153); padding: 1em; width:88%;&amp;quot;&amp;gt;[[Image:Logo.png|30 px|ClickTale Wiki]]&amp;lt;br&amp;gt;'''The instructions on this page are intended for self service and online accounts.&amp;lt;br&amp;gt;Enterprise customers should contact their account managers for integration support.'''&amp;lt;/blockquote&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Google_AdSense_integration</id>
		<title>Google AdSense integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Google_AdSense_integration"/>
				<updated>2011-10-09T13:02:54Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
When using [[ClickTaleUploadPage]] API method and AdSense, your ad blocks will be shown twice during playback. This is because in &amp;quot;client-capture&amp;quot; mode, the ads are rendered twice, once during recording and once during playback.&lt;br /&gt;
&lt;br /&gt;
To correct this you can add some code to your pages that will remove the second instance of the ad.&lt;br /&gt;
==Instructions==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Create a js file (i.e. clicktale-adsense.js) and include the following code in it&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;function ClickTaleRemoveAdsenseFrame()&lt;br /&gt;
{&lt;br /&gt;
  if (typeof ClickTaleIsPlayback != 'function' || ClickTaleIsPlayback() )&lt;br /&gt;
  {&lt;br /&gt;
    var c=document.getElementsByName('google_ads_frame');&lt;br /&gt;
    if(c.length)&lt;br /&gt;
    {&lt;br /&gt;
      var e=c.item(c.length-1);&lt;br /&gt;
      e.parentNode.removeChild(e);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Include this js file by adding the following line in every html page where you have adsense ads&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;clicktale-adsense.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After each block of adsense add the following code&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;ClickTaleRemoveAdsenseFrame();&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
'''Note: a block of adsense ends with a'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
'''Advanced note: if you only have one block of adsense, you can execute the body of the function inline right after the ad block and not use an additional file.'''&lt;br /&gt;
&lt;br /&gt;
:'''Q: Why do my Google AdSense Frames say &amp;quot;ClickTale Adsense Frame&amp;quot; on the heat maps?''' &lt;br /&gt;
:A: This means we replace your Google AdSense banner with this frame at the time of playback so that it doesn't count as wasted impressions in your AdSense program.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Flash_integration</id>
		<title>Flash integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Flash_integration"/>
				<updated>2011-10-09T13:02:07Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
ClickTale is able to record mouse moves and clicks over flash elements, as well as create heatmaps of pages containing flash. We do not at the moment support dynamic Flash elements in visitor playback sessions, or completely Flash based sites, due to the various ways that different browsers handle Flash requests.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using ClickTale over Flash==&lt;br /&gt;
To configure ClickTale to see mouse movements and clicks over Flash elements while watching visitor recordings, specify a &amp;quot;wmode&amp;quot; parameter for your flash.&lt;br /&gt;
&lt;br /&gt;
To specify a &amp;quot;wmode&amp;quot; add:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;opaque&amp;quot;&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
or:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;param name=&amp;quot;wmode&amp;quot; value=&amp;quot;transparent&amp;quot;&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
to your Flashs object's parameter list.&amp;lt;br&amp;gt;&lt;br /&gt;
See [http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15523&amp;amp;sliceId=2 this Adobe KnowledgeBase item] for more information.&lt;br /&gt;
&lt;br /&gt;
If using Internet Explorer to playback the movies, set Playback Scale to 100%, otherwise your Flash might not be shown.&lt;br /&gt;
&lt;br /&gt;
You will not be able to see the Flash element change in sync with the actions that the visitor performed, nor see Link Analytics report metrics on Flash elements out of the box. One solution is to use tagging to monitor actions that happen in Flash. To do so implement calls from Flash to the [[ClickTaleTag]] function.&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Drupal_integration</id>
		<title>Drupal integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Drupal_integration"/>
				<updated>2011-10-09T10:43:48Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
There are three methods for recording visitors pages built on the open source Drupal CMS platform.&lt;br /&gt;
__TOC__&lt;br /&gt;
==Using the standard ClickTale tracking code==&lt;br /&gt;
If you wish to use the standard tracking code,  you can put it in the template or in a general block at the bottom of the page.&lt;br /&gt;
==Using the PHP integration module==&lt;br /&gt;
If you wish to record pages which require visitors to be logged in to view, or pages which have dynamic, user-specific content, or POST pages which have content unavailable via GET, we recommend you incorporate the [[PHP integration module]].&amp;lt;br/&amp;gt;  '''Please note:''' when installing the module, make sure you place the PHP code lines (from step 7 in the installation guide) in your index.php file and not in your .tpl files.&lt;br /&gt;
==Using the Drupal Integration (Legacy)==&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''This solution is a legacy solution and we strongly recommend using the [[PHP integration module]] instead.'''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
''This module was created by Nick Vandervreken, a programmer for the Belgian Drupal bureau [http://www.coworks.net/ Coworks].''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'' For more information, please see the [http://drupal.org/node/792306 module documentation]''&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Please note! To successfully use this module you might need to upgrade the PHP integration module files that come with the Drupal module with those of the latest PHP IM version. You can download the latest PHP IM files from [http://www.clicktale.com/integration/ClickTalePHPIntegrationModule_latest.zip here].''' &lt;br /&gt;
===Requirements===&lt;br /&gt;
*Drupal 6.x&lt;br /&gt;
*PHP Integration module (version 0.9 is included but needs to be updated)&lt;br /&gt;
*The ClickTale Drupal integration module (can be downloaded at http://drupal.org/files/issues/clicktale-1.01.zip)&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
The ClickTale module offers support for the ClickTale tracking engine (www.clicktale.net).&lt;br /&gt;
It allows the user to create different configurations and blacklist/whitelist pages, &lt;br /&gt;
ip-addresses and ranges. &lt;br /&gt;
Pages and IP-ranges can be specified using a regex to allow the user&lt;br /&gt;
to match a range of IP addresses or pages with the same parent with one rule.&lt;br /&gt;
&lt;br /&gt;
The ClickTale module requires the PHP Integration Module to be installed inside the clicktale&lt;br /&gt;
directory and a valid ClickTale account. Free ClickTale accounts can be used for testing purposes&lt;br /&gt;
but have limitations.&lt;br /&gt;
&lt;br /&gt;
When enabled, the module adds several pages to the administration menu. These are &lt;br /&gt;
grouped under '''/admin/settings/clicktale'''.&lt;br /&gt;
&lt;br /&gt;
The module will look for the PHP Integration Module in '''/sites/all/libraries''', and will place&lt;br /&gt;
a &amp;quot;clicktale&amp;quot; directory in the files directory. The Cache files created by the PHP Integration&lt;br /&gt;
Module will be placed in this directory and will be automatically deleted after pull.&lt;br /&gt;
In case of multisites the PHP Integration module can be placed in '''/sites/all/libraries''' OR&lt;br /&gt;
in your subsite libary folder at '''/sites/%subsite%/libraries'''. The Cache and Logs will be placed&lt;br /&gt;
in '''/sites/%subsite%/files/clicktale'''.&lt;br /&gt;
&lt;br /&gt;
Problems have been reported with PHP Integrations versions higher than 0.9.&lt;br /&gt;
If the Cache-folder remains empty while the ClickTale module is running you might be running&lt;br /&gt;
a version of PHP Integrations higher than 0.9.&lt;br /&gt;
A compressed version of the PHP Integrations module might be included in this package.&lt;br /&gt;
===Where to get the ClickTale ID and project number?===&lt;br /&gt;
The ClickTale ID and project number are given with your ClickTale code.&amp;lt;br&amp;gt;&lt;br /&gt;
If your code should be for example &amp;quot;ClickTale(1874, 1, 'www03');&amp;quot;, your ClickTale ID would be &amp;quot;1874&amp;quot; and project number 'www03'. The '1' stands for a '100%' of visitors to be tracked.&lt;br /&gt;
===I can't see any hits on my ClickTale account.===&lt;br /&gt;
PHP Integrations module caches the pages in a Cache folder, this should be created in your Drupal file directory. If it's not, please check your status screen or recent logs to look for a reason. If the Cache folder is empty, it is possible that you are using a version of PHP Integration Module higher than 0.9. If there are files inside the Cache folder they will be pulled by ClickTale servers and everything should work fine. This can take a while though.&lt;br /&gt;
===What is the use of the PHP Integration module?===&lt;br /&gt;
The PHP Integration module caches the page output and stores it on the harddisk in Cache files. These files are then pulled by the ClickTale servers so the pageviews will be visible in ClickTale. Without the PHP Integration module every page you check Heatmaps or Clickmaps for would look like the version of the page at that specific time, which means specific user content or content related to the users status would not be visible. With PHP Integrations you see the content as it was shown to the user.&lt;br /&gt;
===How do the configurations work?===&lt;br /&gt;
The ClickTale module has the ability to work with different configuration settings. Each configuration has its own set of rules to decide wether to count a pageview or not.&lt;br /&gt;
	&lt;br /&gt;
To configure a configuration set, navigate to /admin/settings/clicktale/configurations, check the configuration you want to edit and click 'Configure'.&lt;br /&gt;
	&lt;br /&gt;
It is possible to only track a number of user roles. If a user role is not checked, ClickTale will NOT count hits from any user in that role.&lt;br /&gt;
	&lt;br /&gt;
The filters for pages and IP addresses have a blacklist/whitelist mode and support simple RegEx codes.&lt;br /&gt;
	&lt;br /&gt;
*Count all pages except administration pages&lt;br /&gt;
:Page mode: blacklist&lt;br /&gt;
:admin/*&lt;br /&gt;
		&lt;br /&gt;
*Only count hits from non-logged in users and in /page/to/discard and its subpages&lt;br /&gt;
:Page mode: whitelist&lt;br /&gt;
:page/to/discard*&lt;br /&gt;
:Only tick off 'anonymous user'&lt;br /&gt;
		&lt;br /&gt;
*Count all hits except those from a local network&lt;br /&gt;
:IP mode: blacklist&lt;br /&gt;
:192.168.*.*&lt;br /&gt;
		&lt;br /&gt;
*Count all hits except those from certain IP addresses on the local network&lt;br /&gt;
:IP mode: blacklist&lt;br /&gt;
:192.168.0.(100|101|105)&lt;br /&gt;
===How can I see if ClickTale is counting?===&lt;br /&gt;
By enabling the processing log you can check wether or not the ClickTale module is counting the pageviews.&lt;br /&gt;
This log will also show you if one of the rules you set up in the configuration matched the current pageview.&lt;br /&gt;
Use this to set up the configuration, but do not leave it on afterwards!&lt;br /&gt;
&lt;br /&gt;
If ClickTale is counting in the processing log but the hits are not showing up in the ClickTale website, &lt;br /&gt;
the problem will most likely be either the file permissions or account settings.&lt;br /&gt;
&lt;br /&gt;
To check if the file permissions are OK, check the Cache directory to see if cache files are being rendered.&lt;br /&gt;
You'll find this directory in /sites/default/files/clicktale/Cache or /sites/%subsite%/files/clicktale/Cache.&lt;br /&gt;
&lt;br /&gt;
If cache files are generated but the hits are not showing up in your ClickTale account, the problem most likely lies with your account settings. Check wether the ClickTale ID is correct, your ClickTale ratio is 1 and your&lt;br /&gt;
ClickTale project number is the one specified for that account.&lt;br /&gt;
&lt;br /&gt;
==TroubleShooting==&lt;br /&gt;
===CSS not showing in recordings===&lt;br /&gt;
Websites built in Drupal, often have their CSS files cached with varying alphanumeric strings as file names, causing the old links with these tokens to be broken.&lt;br /&gt;
The simplest way to solve this issue in future recordings is to save versions of the any style sheets you use in fixed URLs (separate from the Drupal cache), then reference these URLs in playback instead of the CSS path visitors see (which is subject to change), using the [[ClickTaleExcludeBlock]] method (blocking the current CSS link from being recorded, and using the alternate content option in order to reference the fixed path). &lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/ColdFusion_integration_code</id>
		<title>ColdFusion integration code</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/ColdFusion_integration_code"/>
				<updated>2011-10-09T10:43:26Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
The ColdFusion integration code allows you to record dynamic pages and pages behind a login using the [[FetchFromWithCookies]] method.&lt;br /&gt;
&lt;br /&gt;
This code will enable to get the data stored in session cookies, which helps identify your visitors (and changes the content of parts of your site accordingly). Instead of the bottom part of the [[tracking code]], please place the following code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(document.location.protocol!='https:')&lt;br /&gt;
  document.write(unescape(&amp;quot;%3Cscript%20src='http://s.clicktale.net/WRb.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;CFID&amp;quot;);&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;CFTOKEN&amp;quot;);&lt;br /&gt;
// add similar line for each additional cookie variable&lt;br /&gt;
&lt;br /&gt;
ClickTaleFetchFrom = ClickTaleFetchFromWithCookies.constructFetchFromUrl();&lt;br /&gt;
&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PARAMETERS!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Please note:'''&lt;br /&gt;
*This code is not https/SSL compliant. To enable the recording of https pages (available to premium subscribers) you need to generate an https/SSL tracking code for your project and augment that code's bottom part similarly to the code appearing here.&lt;br /&gt;
*After&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;CFTOKEN&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
:more lines in the form of:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;[!COOKIENAME!]&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
:are probably needed, where [!COOKIENAME!] is the name of other session cookies required to properly identify your website visitors.&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/ClickTaleFetchFromWithCookies</id>
		<title>ClickTaleFetchFromWithCookies</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/ClickTaleFetchFromWithCookies"/>
				<updated>2011-10-09T10:43:06Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
__TOC__&lt;br /&gt;
ClickTaleFetchFromWithCookies is an extension to the regular ClickTale tracking code that allows correct caching of pages that depend on cookie values. The cookies could contain session identifiers (session cookies) or simple values. The values collected during recording time will be passed to your server during the caching (AKA fetching) stage. Your server would then recognize a visitor's session on your website and render the page content accordingly (e.g. display a shopping cart's contents). This script is used in several integrations, including those for [[Classic_ASP|Classic ASP]] and [[JSP]]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''If you are hosting an older version of the recorder file (before WRc3.js) and for some reason unable to update it please use [[Old FetchFromWithCookies]].'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using ClickTaleFetchFromWithCookies==&lt;br /&gt;
&amp;lt;ol&amp;gt;&amp;lt;li&amp;gt;&lt;br /&gt;
For each cookie you would like to simulate, add the following line:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;[!COOKIENAME!]&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Where [!COOKIENAME!] is replaced with the name of the cookie.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Please note:''' The parameter setFromCookie can be either a String or a RegExp (Regular Expression), in order to accommodate cookies with a varying name. For example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(/^ASPSESSIONID.*/);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Can be used for recording cookies which are named &amp;quot;ASPSESSIONID&amp;quot; + an alphanumeric code, unique for each visitor.  &lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Finally, after the last cookie name (and before the line that starts with &amp;quot;if(typeof ClickTale=='function')&amp;quot;), add the code line:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom = ClickTaleFetchFromWithCookies.constructFetchFromUrl();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
See here for [[Code_Examples]]&lt;br /&gt;
&lt;br /&gt;
==Specifying a URL==&lt;br /&gt;
Much like the [[ClickTaleFetchFrom]] variable, the ClickTaleFetchFromWithCookies also enables you to define where to fetch the page html from (a different source than the page the code is located on). This is done by entering the URL as a parameter in the constructFetchFromUrl function: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom = ClickTaleFetchFromWithCookies.constructFetchFromUrl([URL FOR HTML SOURCE]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This can come in handy for instance when employing the ClickTaleFetchFrom solution for POST pages (noted [[POST_pages#Possible_solutions|here]]).&lt;br /&gt;
&lt;br /&gt;
==Using in conjunction with an integration module==&lt;br /&gt;
Since integration modules have an xml file which is used as a centralized source for the tracking code, the ClickTaleFetchFromWithCookies  should be implemented there. The addition of ClickTaleFetchFromWithCookies is done similarly to the way it's added to regular tracking code, with one exception. Since the code in the xml already includes a ClickTaleFetchFrom line, the URL in it should be used in the constructFetchFromUrl command instead. For example, The code in the ClickTaleScripts.xml file for the [[ASP.NET]] integration module contains the line:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;http://%RootPath%/ClickTaleCache.ashx?t=%CacheToken%&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
When adding the ClickTaleFetchFromWithCookies code the list of cookies added using setFromCookie is placed normally, while the ClickTaleFetchFrom line is changed to:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=ClickTaleFetchFromWithCookies.constructFetchFromUrl(&amp;quot;http://%RootPath%/ClickTaleCache.ashx?t=%CacheToken%&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Classic_ASP_integration_code</id>
		<title>Classic ASP integration code</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Classic_ASP_integration_code"/>
				<updated>2011-10-09T10:42:44Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
The Classic ASP integration code allows you to record dynamic pages and pages behind a login using the [[FetchFromWithCookies]] method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Integration with third-party applications===&lt;br /&gt;
Please use the [[Volusion integration]] method if you are using Volusion on your website.&lt;br /&gt;
&lt;br /&gt;
==Classic ASP integration code==&lt;br /&gt;
Replace the bottom part of your [[tracking code]] with the one of the following to allow ClickTale to better cache the pages of your session based website:&lt;br /&gt;
&lt;br /&gt;
===Standard Classic ASP code===&lt;br /&gt;
&lt;br /&gt;
This code cannot record https/SSL pages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
if(document.location.protocol!='https:')&lt;br /&gt;
  document.write(unescape(&amp;quot;%3Cscript%20src='http://s.clicktale.net/WRb.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(/^ASPSESSIONID.*/);&lt;br /&gt;
// add a similar line for each additional cookie variable&lt;br /&gt;
&lt;br /&gt;
ClickTaleFetchFrom = ClickTaleFetchFromWithCookies.constructFetchFromUrl();&lt;br /&gt;
&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PARAMETERS!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===https compliant Classic ASP code===&lt;br /&gt;
&lt;br /&gt;
This code will record https/SSL pages as well as standard pages. This functionality is not available for all plans and will not work unless supported by your current plan.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
document.write(unescape(&amp;quot;%3Cscript%20src='&amp;quot;+&lt;br /&gt;
 (document.location.protocol=='https:'?&lt;br /&gt;
  'https://clicktale.pantherssl.com/':&lt;br /&gt;
  'http://s.clicktale.net/')+&lt;br /&gt;
 &amp;quot;WRb.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(/^ASPSESSIONID.*/);&lt;br /&gt;
// add a similar line for each additional cookie variable&lt;br /&gt;
&lt;br /&gt;
ClickTaleFetchFrom = ClickTaleFetchFromWithCookies.constructFetchFromUrl();&lt;br /&gt;
var ClickTaleSSL=1;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PARAMETERS!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding more cookies===&lt;br /&gt;
'''Please note:'''&lt;br /&gt;
After&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(/^ASPSESSIONID.*/);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: more lines in the form of:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;[!COOKIENAME!]&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: may be needed, where [!COOKIENAME!] is the name of other session cookies required to properly identify your website visitors.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Blogger_integration</id>
		<title>Blogger integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Blogger_integration"/>
				<updated>2011-10-09T10:42:32Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
Integrating ClickTale into your Blogger blog couldn't be easier.&lt;br /&gt;
==Automatic integration==&lt;br /&gt;
#Once you have generated your [[tracking code]] for your account, click on the Blogger widget you will see in the right hand panel of the code creation page.&lt;br /&gt;
==Manual integration==&lt;br /&gt;
#Login to your Blogger account and choose a blog from the list of your blogs.&lt;br /&gt;
#Click the &amp;quot;Layout&amp;quot; tab, then the &amp;quot;edit HTML&amp;quot; menu item. (If you are using a older version of Blogger and don't see this tab click the &amp;quot;Template&amp;quot; tab instead.)&lt;br /&gt;
#Locate the &amp;lt;body&amp;gt; tag and paste the two parts of the [[tracking code]] generated by ClickTale right after it.&lt;br /&gt;
That's it!&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/BigCommerce_integration</id>
		<title>BigCommerce integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/BigCommerce_integration"/>
				<updated>2011-10-09T10:42:19Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
Websites which use the shopping cart software BigCommerce can integrate ClickTale by following these steps:&lt;br /&gt;
&lt;br /&gt;
#Sign into your BigCommerce account and click on &amp;quot;Settings&amp;quot; &lt;br /&gt;
#In the list that opens, choose &amp;quot;Affiliate Settings&amp;quot;&lt;br /&gt;
#Add the Bottom Part of your ClickTale tracking code (using [[ClickTaleFetchFromWithCookies]] - see example below) to the &amp;quot;Conversion Tracking Code&amp;quot; box and click &amp;quot;Save&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Sample code:===&lt;br /&gt;
'''Please Note:'''&lt;br /&gt;
* The code below is an HTTPS compliant code (only available for paid plans, Free accounts must edit the code). &lt;br /&gt;
* You will not be able to include the Top Part of the tracking code. The Top Part is not necessary for recording as it's merely a time stamp(with the exception of the PHP Integration Module).&lt;br /&gt;
* You may need to change the cookies below for your specific site. See the [[ClickTaleFetchFromWithCookies]] page for more details.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
document.write(unescape(&amp;quot;%3Cscript%20src='&amp;quot;+&lt;br /&gt;
 (document.location.protocol=='https:'?&lt;br /&gt;
  'https://clicktale.pantherssl.com/':&lt;br /&gt;
  'http://s.clicktale.net/')+&lt;br /&gt;
 &amp;quot;WRb.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;STORE_VISITOR&amp;quot;);&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;STORESUITE_CP_TOKEN&amp;quot;);&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;SHOP_SESSION_TOKEN&amp;quot;);&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;SHOP_ORDER_TOKEN&amp;quot;);&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;RememberToken&amp;quot;);&lt;br /&gt;
ClickTaleFetchFrom = ClickTaleFetchFromWithCookies.constructFetchFromUrl();&lt;br /&gt;
 &lt;br /&gt;
var ClickTaleSSL=1;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale(your project details);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Apache_integration</id>
		<title>Apache integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Apache_integration"/>
				<updated>2011-10-09T10:42:06Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
The following code is only necessary if our bots are unable to capture pages.&lt;br /&gt;
==Instructions==&lt;br /&gt;
The principle is very simple. You just need to add ClickTale IP address range to the allow list in the .htaccess file which restricts the access.&lt;br /&gt;
Add a directive (a line of text) with the following content&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Allow from 75.125.82.64/26&lt;br /&gt;
Allow from 50.97.162.64/26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
As a result, your .htaccess file might look similar to this:&lt;br /&gt;
&amp;lt;pre&amp;gt;AuthType Basic&lt;br /&gt;
Order allow,deny&lt;br /&gt;
Satisfy any&lt;br /&gt;
Allow from 75.125.82.64/26&lt;br /&gt;
Allow from 50.97.162.64/26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This should enable our servers located at 75.125.82.64/26 and 50.97.162.64/26 to access your restricted directories.&lt;br /&gt;
&lt;br /&gt;
'''Note: your site might be using .htaccess files without you being necessarily aware of it. There are several authorization packages built on top of .htaccess infrastructure that you might be using.'''&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/ASP.NET_integration_module</id>
		<title>ASP.NET integration module</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/ASP.NET_integration_module"/>
				<updated>2011-10-09T10:41:28Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
ClickTale users can download and begin using this [[Integration module]] on [http://en.wikipedia.org/wiki/ASP.NET ASP.NET] 1.1 - 4.0 websites and applications to simplify ClickTale procedures. The integration module allows for the automatic injection of ClickTale Script on to all outgoing pages and the automatic caching of page content. You'll be able to use ClickTale for recording pages that were previously problematic, including password protected pages, pages that depend on session objects, pages with random elements and POST processing pages. Its features include:&lt;br /&gt;
*Automatic injection of ClickTale script to all outgoing pages.&lt;br /&gt;
*Automatic caching of page content.&lt;br /&gt;
The benefits of using this module are:&lt;br /&gt;
*Having a single location for your ClickTale script makes it easier for you to take advantage of the benefits that ClickTale provides.&lt;br /&gt;
*ClickTale will be able to record all sorts of problematic pages such as: password protected pages, pages that depend on session objects, pages with random elements and POST processing pages.&lt;br /&gt;
With this release we are targeting web developers and development departments of online companies. Use of this module requires some technical knowledge.&lt;br /&gt;
This module isn't appropriate to you if you have a [[PHP integration module|PHP]] or a [[Classic ASP integration code|classic ASP site]] or if you would like to inject the script into static HTML files. &lt;br /&gt;
==Installation Guide==&lt;br /&gt;
ClickTale ASP.NET Integration Module v1.6&amp;lt;br&amp;gt;&lt;br /&gt;
The module should work on .NET 1.1 - 4.0 sites. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;'''If you are unable to install a binary module on your site, use the [[ASP.NET integration code]] instead.'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Step 1 - Getting the archive===&lt;br /&gt;
Download and unzip the module [http://www.clicktale.com/Integration/ClickTaleASPNETIntegrationModule_latest.zip here].&amp;lt;br&amp;gt;&lt;br /&gt;
Create a &amp;quot;bin&amp;quot; folder if not already present in your website and put ClickTaleIntegrationModule.dll inside of it. A .NET 1.1 version of the module can be found in the FX1_1 directory. &lt;br /&gt;
===Step 2 - Preparing the tracking code for injection===&lt;br /&gt;
2.1 Remove the existing ClickTale code and/or disable other integration methods&amp;lt;br/&amp;gt;&lt;br /&gt;
2.2 Locate the ClickTaleScripts.xml file that comes in the ZIP file and open it in a text editor. Paste your ClickTale scripts (which were generated for you by the tracking code generator) into the appropriate CDATA fields in the XML file. &amp;lt;br/&amp;gt;&lt;br /&gt;
2.3 In the bottom script before the call to ClickTale(###) function add the following line:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;http://%RootPath%/ClickTaleCache.ashx?t=%CacheToken%&amp;quot;;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Please note: you do not need to change &amp;quot;%RootPath%/&amp;quot; to a specific Path. It will be replaced automatically during the rendering process, with a value dependent on the page being recorded.'''&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2.4 Check your ClickTaleScripts.xml file - it should now look like this (for the regular, http only, version of the tracking code):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;scripts&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Top&amp;quot; DoNotReplaceCondition = &amp;quot;(&amp;amp;lt;!-- ClickTale Top part --&amp;amp;gt;)&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
				 var WRInitTime=(new Date()).getTime();&lt;br /&gt;
				 &amp;lt;/script&amp;gt;]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Bottom&amp;quot; DoNotReplaceCondition = &amp;quot;(&amp;amp;lt;!-- ClickTale Bottom part --&amp;amp;gt;)&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
				 &amp;lt;div id=&amp;quot;ClickTale&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
				 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
				 if(document.location.protocol!='https:')&lt;br /&gt;
				   document.write(unescape(&amp;quot;%3Cscript src='http://s.clicktale.net/WRb6.js' type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
				 &amp;lt;/script&amp;gt;&lt;br /&gt;
				 &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
				 ClickTaleFetchFrom=&amp;quot;http://%RootPath%/ClickTaleCache.ashx?t=%CacheToken%&amp;quot;;&lt;br /&gt;
				 if(typeof ClickTale=='function') ClickTale([!Your Parameters!]);&lt;br /&gt;
				 &amp;lt;/script&amp;gt;&lt;br /&gt;
				 &amp;lt;!-- ClickTale end of Bottom part --&amp;gt;]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/scripts&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Save ClickTaleScripts.xml in the root of your web site. You may put it in another place, but then you will have to modify the path of the ScriptsFile parameter on the web.config file.&amp;lt;br&amp;gt;&lt;br /&gt;
'''IMPORTANT NOTE! This code sample relates to http tracking code only! For tracking code which can record both http and https pages you should first make sure your plan offers the ability to record https pages (check if the option is available in the tracking code generation page), then generate SSL/https compliant code and use it in step 2 instead , see below for an example of how the ClickTaleScripts.xml file would look like for the SSL/https compliant code.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;scripts&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Top&amp;quot; DoNotReplaceCondition = &amp;quot;(&amp;amp;lt;!-- ClickTale Top part --&amp;amp;gt;)&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
				 var WRInitTime=(new Date()).getTime();&lt;br /&gt;
				 &amp;lt;/script&amp;gt;]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Bottom&amp;quot; DoNotReplaceCondition = &amp;quot;(&amp;amp;lt;!-- ClickTale Bottom part --&amp;amp;gt;)&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;![CDATA[&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTaleDiv&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
document.write(unescape(&amp;quot;%3Cscript%20src='&amp;quot;+&lt;br /&gt;
 (document.location.protocol=='https:'?&lt;br /&gt;
  'https://clicktale.pantherssl.com/':&lt;br /&gt;
  'http://s.clicktale.net/')+&lt;br /&gt;
 &amp;quot;WRb6.js'%20type='text/javascript'%3E%3C/script%3E&amp;quot;));&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;http://%RootPath%/ClickTaleCache.ashx?t=%CacheToken%&amp;quot;;&lt;br /&gt;
var ClickTaleSSL=1;&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PARAMETERS!]);&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale end of Bottom part --&amp;gt;]]&amp;gt;&lt;br /&gt;
  &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/scripts&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Step 3 - Configuring the module===&lt;br /&gt;
Open your website's &amp;quot;web.config&amp;quot; file. Copy the following code right after the &amp;lt;configuration&amp;gt; tag.&amp;lt;br&amp;gt;&lt;br /&gt;
Notice that the ClickTale script will be added to all pages that are being served by this specific config file unless a &amp;quot;do not insert&amp;quot; condition is met. See the Q&amp;amp;A section if you need to exclude certain .aspx files from processing.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configSections&amp;gt;&lt;br /&gt;
	&amp;lt;section name=&amp;quot;ClickTale.IntegrationModuleSettings&amp;quot; type=&amp;quot;System.Configuration.SingleTagSectionHandler&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/configSections&amp;gt;&lt;br /&gt;
&amp;lt;ClickTale.IntegrationModuleSettings&lt;br /&gt;
	ScriptsFile=&amp;quot;~\ClickTaleScripts.xml&amp;quot;&lt;br /&gt;
	DoNotProcessCookieName=&amp;quot;WRUID&amp;quot;&lt;br /&gt;
	DoNotProcessCookieValue =&amp;quot;0&amp;quot;&lt;br /&gt;
	MaxCachedPages=&amp;quot;100&amp;quot;&lt;br /&gt;
	AllowedAddresses =&amp;quot;75.125.82.64/26 50.97.162.64/26&amp;quot;/&amp;gt; &amp;lt;!-- note, this stands for 75.125.82.64 - 75.125.82.127 and 50.97.162.64 - 50.97.162.127 --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The MaxCachedPages parameter depends on your server hardware capabilities and the amount of maximal memory you want to allocate for caching. Change it according to your needs. Considering that an average page size of about 40KB, 100 cached pages can mean 4Mb of your servers' memory. &lt;br /&gt;
===Step 4 - Enabling the module===&lt;br /&gt;
Look for &amp;lt;system.web&amp;gt; element in the config file and insert the following code between the tags:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;httpModules&amp;gt;&lt;br /&gt;
	&amp;lt;add name=&amp;quot;ClickTaleIntegrationModule&amp;quot; type=&amp;quot;ClickTale.IntegrationModule.ClickTaleIntegrationModule, ClickTaleIntegrationModule&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/httpModules&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Note: if you already have a &amp;lt;nowiki&amp;gt;&amp;lt;httpModules&amp;gt;&amp;lt;/nowiki&amp;gt; section then just copy&amp;amp;paste the &amp;lt;nowiki&amp;gt;&amp;lt;add ...&amp;gt;&amp;lt;/nowiki&amp;gt; tag into it.&amp;lt;br&amp;gt;&lt;br /&gt;
This activates the module. If you ever want to disable to module it is enough to comment out this section.&lt;br /&gt;
'''Please Note:''' If you already have tracking code which you entered manually in your pages, you should remove it as it inhibits the module from injecting the tracking code found within the xml file on these pages.&lt;br /&gt;
&lt;br /&gt;
===Step 5 - Testing===&lt;br /&gt;
For optimization purposes, the module will only inject the code for visitors who are classified as &amp;quot;to-record&amp;quot; (have WRUID cookie with non-zero value) or for those who are not classified (no WRUID cookie). Visitors who are classified as &amp;quot;not-to-record&amp;quot; will get no tracking code added to their HTML. As a result you might not see the tracking code in the source of the page. This doesn't mean that the module doesn't work. Your classification depends on your ClickTale recording ratio and luck.&amp;lt;br&amp;gt;&lt;br /&gt;
You can use a cookie editor to set the WRUID cookie to some value such as &amp;quot;1&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
Alternatively, you can clear cookies, then force yourself to be recorded by following the instructions [[Selective recordings#Selective recording via URL parameter|here]] note: the advanced selective recording script can be used in the ClickTaleScripts.xml to conditionally record visitors.&lt;br /&gt;
Once you are classified as &amp;quot;to-record&amp;quot; you should see the tracking code in the source code of each page on your site and recording should take place. If you still don't see the code, please proceed to the next section.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting and debugging==&lt;br /&gt;
The module has several debugging facilities. There is a debug page, a log and some configuration flags that control debug levels.&amp;lt;br&amp;gt;&lt;br /&gt;
The relevant configuration parameters (for step 3) are:&lt;br /&gt;
*AllowDebug - enables access to the debug page which is located at ~/ClickTaleDebug.ashx. Set to &amp;quot;true&amp;quot; to enable this functionality.&lt;br /&gt;
*LogFileNameMask - holds the path to the location where the log files are created. Normally in the form LogFileNameMask=&amp;quot;~\ClickTaleLog{0}.txt&amp;quot; (where {0} is the current date). The log file has to be enabled for writing by IIS/ASP.&lt;br /&gt;
*DebugCode - enables some extra logging of each read and write events in the module. Used to debug difficult cases. The log must also be enabled for this to work correctly. Set to &amp;quot;true&amp;quot; to enable this functionality.&lt;br /&gt;
If you don't see the tracking code in your pages, please enable the debug page and try to access it. If you are getting broken recordings, please see the next section for possible causes.&lt;br /&gt;
===Load Balancing Scenario===&lt;br /&gt;
The module uses local storage for storing the temporary cache of pageviews content. That content is later requested by ClickTale servers via HTTP(S).&lt;br /&gt;
When using more than one server and using a load balancer to distribute the requests across the servers there is a chance that a visitor will be forwarded to a different server than the one to which the ClickTale crawler will be forwarded to. As a result the crawler will hit a server that doesn't contain the requested information and the recording (not the response to the visitor) will fail with a 404 error.&lt;br /&gt;
A proper load balancing configuration should implement one of the following&lt;br /&gt;
* A way to force the request form ClickTale to reach a specific server in the farm&lt;br /&gt;
* A cache store that is centralized&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Forcing a specific server====&lt;br /&gt;
=====Using direct host for fetching=====&lt;br /&gt;
If you have a dedicated host for each server in the farm, and you can access resources of the web site by going to a direct url, then you can set ClickTale to fetch from a specific server. To do that you would customize the [[ClickTaleFetchFrom]] url of each server to specify a direct url to that server.&lt;br /&gt;
For example if having a site '''&amp;lt;nowiki&amp;gt;http://www.site.com/&amp;lt;/nowiki&amp;gt;''' and servers '''&amp;lt;nowiki&amp;gt;http://s1.site.com/&amp;lt;/nowiki&amp;gt;''', '''&amp;lt;nowiki&amp;gt;http://s2.site.com/&amp;lt;/nowiki&amp;gt;''' then you would change the bottom tracking code on each server to have [[ClickTaleFetchFrom]] url refer to the specific server directlylike this:&lt;br /&gt;
For the first server:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;http://s1.site.com/ClickTaleCache.ashx?t=%CacheToken%&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
For the second server:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;http://s2.site.com/ClickTaleCache.ashx?t=%CacheToken%&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
and so on.&lt;br /&gt;
&lt;br /&gt;
=====Using cookies for accessing a specific server=====&lt;br /&gt;
Some load balancers use a HTTP cookie to assign a specific visitor to a specific server permanently. This is often called &amp;quot;Sticky sessions&amp;quot;.&lt;br /&gt;
If you know that such cookie exists in your case, you should be able to cause the crawler to reach the original server if you record the cookie value.&lt;br /&gt;
This is done using the [[FetchFromWithCookies]] API.&lt;br /&gt;
To do so, change the ClickTaleFetchFrom line to:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFromWithCookies.setFromCookie(&amp;quot;[!COOKIENAME!]&amp;quot;);&lt;br /&gt;
ClickTaleFetchFrom=ClickTaleFetchFromWithCookies.constructFetchFromUrl(&amp;quot;http://%RootPath%/ClickTaleCache.ashx?t=%CacheToken%&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Where [!COOKIENAME!] is the name of the cookie that maintains the visitor's affinity to a specific server.&lt;br /&gt;
&lt;br /&gt;
====Centralized cache store - Caching Content To a Database====&lt;br /&gt;
By default, the cached pages are stored in the application's cache object in server's memory. However, in some cases local cache may not be suitable (e.g. load balancing scenario). For such cases the module has a feature that enables storing cached pages in a database. Please follow these steps if you need to turn this feature on:&lt;br /&gt;
#Run a script named &amp;quot;ASP.NET Integration Module SQL Script.sql&amp;quot;. This will create the database, table and stored procedures needed. This script can be found in the downloaded zip.&lt;br /&gt;
#Add a new connection string that will connect to the new &amp;quot;ClickTale&amp;quot; database, name it &amp;quot;ClickTale&amp;quot;.&lt;br /&gt;
#Add ConnectionStringName=&amp;quot;ClickTale&amp;quot; and MaxCachedSeconds=&amp;quot;240&amp;quot; attributes to the ClickTale.IntegrationModuleSettings element in the web.config file. You may also remove MaxCachedPages, because the database mode uses MaxCachedSeconds for cleaning instead.&lt;br /&gt;
MaxCachedSeconds represents the number of seconds a cached page will be stored in the database. Entries older than MaxCachedSeconds will be deleted when new entries are inserted. An example of a connection string and a configuration element:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;connectionStrings&amp;gt;&lt;br /&gt;
	&amp;lt;add name=&amp;quot;ClickTale&amp;quot; connectionString=&amp;quot;Data Source = .\SQLEXPRESS; Initial Catalog = ClickTale; User Id = User; Password = Pass; MultipleActiveResultSets = True&amp;quot; providerName=&amp;quot;System.Data.SqlClient&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/connectionStrings&amp;gt;&lt;br /&gt;
&amp;lt;ClickTale.IntegrationModuleSettings&lt;br /&gt;
	ScriptsFile=&amp;quot;~\ClickTaleScripts.xml&amp;quot;&lt;br /&gt;
	MaxCachedSeconds=&amp;quot;60&amp;quot;&lt;br /&gt;
	LogFileNameMask=&amp;quot;~\ClickTaleIntegrationModule_{0}_log.txt&amp;quot;&lt;br /&gt;
	AllowedAddresses=&amp;quot;75.125.82.64/26 50.97.162.64/26&amp;quot;&lt;br /&gt;
	ConnectionStringName=&amp;quot;ClickTale&amp;quot;&lt;br /&gt;
	DoNotProcessCookieName=&amp;quot;WRUID&amp;quot;&lt;br /&gt;
	DoNotProcessCookieValue=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use With &amp;quot;Expires&amp;quot; Header And Enable Reuse Of Cached Pages (if you are getting 404 errors for some of the pages of some of the visitors)===&lt;br /&gt;
Some websites use &amp;quot;cache-control&amp;quot; and &amp;quot;expires&amp;quot; headers to cache pages on the client. This improves performance but may be problematic when used with our module. &lt;br /&gt;
&lt;br /&gt;
Pages are removed from the module's cache right after they are being accessed (for security and performance reasons). So, if a visitor browses a page more than once without refreshing the content from the server (usually a result of using the back button), ClickTaleCache.ashx will be called several times with the same token. This will cause a cache miss for any request beyond the first one.&lt;br /&gt;
 &lt;br /&gt;
To overcome this problem, it is possible to use the DeleteAfterPull=&amp;quot;false&amp;quot; parameter in the configuration. This will disable the removal of cached pages when ClickTaleCache.ashx is called. Cached data will be removed after MaxCachedPages=&amp;quot;???&amp;quot; new pages are cached, so you might want to extend this parameter as well to allow sufficient traffic between the first pageview and the next (duplicate pageview).&lt;br /&gt;
&lt;br /&gt;
Additionally, you can change your HTTP cache control to &amp;quot;no-cache&amp;quot; which might be more correct for your application logic in the first place.&lt;br /&gt;
&lt;br /&gt;
Please note that &amp;quot;DeleteAfterPull&amp;quot; is not available when caching content to database storage. To achieve the same effect with a &amp;quot;database cache&amp;quot;, please edit the &amp;quot;CachePullCachedPage&amp;quot; SP of the ClickTale cache database and change it to only perform: &amp;quot;SELECT Page FROM CachedPages WHERE Token = @Token&amp;quot; . Use &amp;quot;MaxCachedSeconds&amp;quot; parameter instead of &amp;quot;MaxCachedPages&amp;quot; to control the period of time for which to keep the content in cache.&lt;br /&gt;
&lt;br /&gt;
===IIS 7 Compatibility===&lt;br /&gt;
Sometimes there is another step that IIS7 users should perform. If ClickTale Integration Module does not work, please add the following line to your &amp;quot;web.config&amp;quot; file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;add name=&amp;quot;ClickTaleIntegrationModule&amp;quot; type=&amp;quot;ClickTale.IntegrationModule.ClickTaleIntegrationModule&amp;quot; preCondition=&amp;quot;managedHandler&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This line should go inside&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;system.webServer&amp;gt;&lt;br /&gt;
	&amp;lt;validation validateIntegratedModeConfiguration=&amp;quot;false&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;modules&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Goes Here --&amp;gt;&lt;br /&gt;
	&amp;lt;/modules&amp;gt;&lt;br /&gt;
&amp;lt;/system.webServer&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using with a (reverse) proxy server===&lt;br /&gt;
If you are using a (reverse) proxy server, that server could change the request in such a way that they seem to appear to originate from the proxy and not from ClickTale servers. This will prevent the module from authenticating the request based on IP address.&lt;br /&gt;
There are two ways to work around this.&lt;br /&gt;
* Change the allowed addresses (“AllowedAddresses”) value in the configuration section of ASP.NET module in your web.config file and set it to the IP of the proxy. Then you need to configure your proxy to block access to ClickTaleCache.ashx file and only grant access from IPs &amp;quot;75.125.82.64/26 50.97.162.64/26&amp;quot; (note, this stands for 75.125.82.64 - 75.125.82.127 and 50.97.162.64 - 50.97.162.127 using CIDR notation).&lt;br /&gt;
* or&lt;br /&gt;
* If your proxy includes the original IP address in the HTTP headers, then you can add a module setting in your web.config file to instruct the module to use that header. If your proxy uses a header field called &amp;quot;X-Forwarded-For&amp;quot; (this is common), then add IPAddressHeaderFieldName=&amp;quot;X-Forwarded-For&amp;quot; to your web.config file to utilize this field.&lt;br /&gt;
&lt;br /&gt;
===Conflicts with other modules===&lt;br /&gt;
In some cases, conflicts can occur with other modules that you may have on your site. This is usually an issue to consider if you are using compression modules rather than IIS built in compression.&lt;br /&gt;
The conflicts can often be solved by making sure that the ClickTale module is installed on top of the filter chain, such that it can handle the content first. To achieve that try:&lt;br /&gt;
a) to add the ClickTale Integration Module httpmodule entry as last in the list of modules.&lt;br /&gt;
b) if 'a' doesn't resolve the issue, try FilterInstallEvent=&amp;quot;PostReleaseRequestState&amp;quot; as one of the configuration attributes of the module.&lt;br /&gt;
&lt;br /&gt;
In some cases a CMS will prevent access to our &amp;quot;virtual urls&amp;quot; ClickTaleDebug.ashx or ClickTaleCache.ashx. For example, it might redirect them to a custom not-found page. If you suspect that this is the case, please contact support and request help with setting up &amp;quot;stand alone ASP.NET IM handlers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you try browsing to ClickTaleCache.ashx and get a CMS-generated error page, try creating a ClickTaleCache.ashx file (in the root) via Visual Studio and then paste in to the ProcessRequest method the following code:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
ClickTale.IntegrationModule.ClickTaleIntegrationModule ct = new ClickTale.IntegrationModule.ClickTaleIntegrationModule();&lt;br /&gt;
ct.HandleClickTaleCacheRequest(context.ApplicationInstance);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This should manually run the handler without relying on the httpModule which may not be working because of the CMS. This works for Sitecore CMS.&lt;br /&gt;
&lt;br /&gt;
===Multiple domains (inc. TLD)===&lt;br /&gt;
When migrating from Staging into Production the RootPath can bind to the first request loaded into the app cache (i.e. the first host requested) eg. there can be over a dozen TLDs (hosts) utilising the same app pool in larger sites:&lt;br /&gt;
&lt;br /&gt;
In such cases the line:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;http://%RootPath%/ClickTaleCache.ashx?t=%CacheToken%&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
can be edited to read:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom=&amp;quot;http://&amp;quot;+ document.domain +&amp;quot;/ClickTaleCache.ashx?t=%CacheToken%&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
This should prevent the ClickTale bot querying the same domain for all cached items&lt;br /&gt;
&lt;br /&gt;
==Q&amp;amp;A==&lt;br /&gt;
&lt;br /&gt;
===I have already defined caching correctly on my server. I don't want to change the caching of my pages. Why do you add caching?===&lt;br /&gt;
The module caches the content of the pages for its own use. This cache has no effect on the delivery of the pages to the visitors, not does it change your existing server side or client side cache scheme. This is a separate cache designed to hold the content temporary in memory until our servers request it from the module.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Parser Error Message: Exception creating section handler&amp;quot; configuration error is displayed when trying to view pages on the website.===&lt;br /&gt;
Open your web.config file and change this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configSections&amp;gt;&lt;br /&gt;
	&amp;lt;section name=&amp;quot;ClickTale.IntegrationModuleSettings&amp;quot; type=&amp;quot;System.Configuration.SingleTagSectionHandler&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/configSections&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:to this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;configSections&amp;gt;&lt;br /&gt;
	&amp;lt;section name=&amp;quot;ClickTale.IntegrationModuleSettings&amp;quot; type=&amp;quot;System.Configuration.SingleTagSectionHandler, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/configSections&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Are cached pages protected from access by third parties?===&lt;br /&gt;
Yes, several layers of protection are in place. Only certain IPs are allowed to request the cached pages (IPs of ClickTale servers) and only processes which already have access to the page have the secret token required to request the cached content.&lt;br /&gt;
&lt;br /&gt;
===Is it possible to inject the script in other places rather than after/before body tags?===&lt;br /&gt;
Yes. By default the top script is injected after &amp;lt;body&amp;gt; and the bottom before &amp;lt;/body&amp;gt;, but this can be changed by adding a InsertAfter attribute to the script[name=&amp;quot;Top&amp;quot;] element or adding a InsertBefore attribute to the script[name=&amp;quot;Bottom&amp;quot;] element, both are regular expressions.&lt;br /&gt;
&lt;br /&gt;
===There is a specific page that I don't want recorded, but the module adds ClickTale script to every page.===&lt;br /&gt;
&lt;br /&gt;
The ASP.NET Integration module is a site wide module that will process all pageviews on your site and try to inject the configured ClickTale code into them.&lt;br /&gt;
You will have to use one of the following solutions to ignore one or more pages (Please note that the first metho is dependent on the content of the page while the second method is dependent on the url of the page):&lt;br /&gt;
&lt;br /&gt;
*You can configure the module to ignore some pages by using the DoNotReplaceCondition attribute on a script element in ClickTaleScripts.xml file. This property is a regular expression, when there is a match for this expression with page content on the page near the InsertBefore/InsertAfter condition, the script will not be added. Make sure that all pages you want to exclude match this condition. For example you can add a note in a HTML comment before the &amp;lt;/body&amp;gt; tag that will function as a &amp;quot;do not replace&amp;quot; condition. &lt;br /&gt;
&lt;br /&gt;
:What you will do is:&lt;br /&gt;
:1. Modify your ClickTaleScripts.xml file to have the &amp;quot;DoNotReplaceCondition&amp;quot; property like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;script name=&amp;quot;Bottom&amp;quot; DoNotReplaceCondition=&amp;quot;&amp;amp;lt;!-- No ClickTale --&amp;amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;![CDATA[&amp;lt;/source&amp;gt;&lt;br /&gt;
:2. Modify the pages you want to exclude to have the condition right before the &amp;lt;/body&amp;gt; tag like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;      &amp;lt;!-- No ClickTale --&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:When the module will detect this text it will not inject the ClickTale code.&lt;br /&gt;
&lt;br /&gt;
:You can also use this mechanism for other strings and conditions you might find in your code. For example, if you only want to include the Clicktale code in pages containing a word or string you can use the code below. For instance it is possible to only record users that are logged in by using a word like: &amp;quot;logout&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DoNotReplaceCondition=&amp;quot;^(?![\s\S]*word)&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*The latest versions of the module allow you to define WhitelistURLRegex and BlacklistURLRegex regular expression values in the configuration section. The regular expressions will be matched against the full url of the page. If a white-list is present, then the tracking code will be injected only into urls that match the white-list expression. If a black-list is present, then the tracking code will be injected only into urls that don't match the black-list expression.&amp;lt;br&amp;gt;&lt;br /&gt;
Let's say you want to whitelist two pages: page1.aspx and page2.aspx&lt;br /&gt;
So you would need to put into the the module's configuration section in the web.config the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
WhitelistURLRegex=&amp;quot;(page1\.aspx|page2\.aspx)&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
To disable code injection for an admin part of the site/CMS the following example can be used.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
BlacklistURLRegex=&amp;quot;(admin)&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Another option, which is less recommended for ASP.NET, is to use the [[PHP control script]]. The [[PHP control script]] allows you to set a list of pages to record or ignore and will require you to customize your ClickTale tracking code a little.&lt;br /&gt;
&lt;br /&gt;
===Some of my pages already have the ClickTale script; I do not want the script to appear twice.===&lt;br /&gt;
You should either remove the script from those pages and let the module handle the insertion or you should use DoNotReplaceCondition. See the code step 2 for an example. The default script in Step 2 is already configured to prevent double inclusion.&lt;br /&gt;
&lt;br /&gt;
===After installing the module, I tried to watch a recording but I got the following notice instead: &amp;quot;Request from an unauthorized IP.&amp;quot; What should I do?===&lt;br /&gt;
This could be due to a misconfiguration, a proxy, a change in our IP addresses or a hacking attempt. Please check your settings, specifically &amp;quot;AllowedAddresses&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===I have installed the module but I don't see the tracking code in the source of the page. What is wrong?===&lt;br /&gt;
The module will only inject the code for visitors who are classified as &amp;quot;to-record&amp;quot; (have WRUID cookie with non-zero value) or for those who are not classified (no WRUID cookie). Visitors who are classified as &amp;quot;not-to-record&amp;quot; will get no code.&lt;br /&gt;
&lt;br /&gt;
===How can I disable the caching and leave only the script injection?===&lt;br /&gt;
Do note that disabling caching defeats the main purpose of the module and correct page content might not be recorded. The best practice for this case is to put the static tracking code in the website's template. If you still want to use the module for tracking code injection but not for content caching you can add DisableCache=&amp;quot;True&amp;quot; to the ClickTale.IntegrationModuleSettings element in the web.config file. When setting DisableCache to True, you need to remove the ClickTaleFetchFrom line from the ClickTaleScripts.xml file or else nothing will be cached.&lt;br /&gt;
&lt;br /&gt;
===I'm receiving &amp;quot;The resource cannot be found. Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed...&amp;quot; on my site root page once the module is installed. Full URLs that include the file name produce correct behavior.===&lt;br /&gt;
Please make sure that you are not using IIS6 with “Wildcard App Mappings” option enable in the IIS config of your site. Such a configuration is not supported by this module.&lt;br /&gt;
&lt;br /&gt;
===I'm receiving &amp;quot;&amp;lt;i&amp;gt;Post cache substitution is not compatible with modules in the IIS integrated pipeline that modify the response buffers.  Either a native module in the pipeline has modified an HTTP_DATA_CHUNK structure associated with a managed post cache substitution callback, or a managed filter has modified the response.&amp;lt;/i&amp;gt;&amp;quot; on my site root page once the module is installed. ===&lt;br /&gt;
This happens because you are using post-cache substitution along with ClickTale integration module which is a response filter and they are not compatible. &lt;br /&gt;
&amp;lt;br&amp;gt;For more information please read http://support.microsoft.com/kb/2014472.&lt;br /&gt;
&amp;lt;br&amp;gt;ClickTale Integration module and post-cache substitution cannot work together.&lt;br /&gt;
&lt;br /&gt;
===How is RootPath determined and how do I change it?===&lt;br /&gt;
The host (which is used for RootPath) is registered once when the module is first loaded. It changes when you restart the web server or when  you make a change in the ClickTaleScripts.xml file. To change it back to the value you wanted please restart your web server, then access your site from a URL using the host you wish to serve as root path.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/ASP.NET_integration_code</id>
		<title>ASP.NET integration code</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/ASP.NET_integration_code"/>
				<updated>2011-10-09T10:39:33Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SMB}}&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;big&amp;gt;'''If possible, use the [[ASP.NET integration module]] instead. It provides better integration with our service.&amp;lt;br&amp;gt;&lt;br /&gt;
The only reason to use this code is if you are unable to install a binary module on your site.'''&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If your ASP.NET web site uses sessions (storing data in the Session[] object) or .NET's built-in Forms Authentication then ClickTale may not be able to record your pages correctly by default.&lt;br /&gt;
This code will provide you with an ASP.NET &amp;quot;Web User Control&amp;quot; that will not only allow you to add ClickTale easily to your pages, but will also allow ClickTale to do correct caching of &amp;quot;session&amp;quot; dependant and &amp;quot;Forms Authentication&amp;quot; protected pages.&lt;br /&gt;
This sample was developed and tested for ASP.NET 2.0 . It won't work with ASP.NET 1.x because the cookieless=&amp;quot;AutoDetect&amp;quot; attribute is not supported prior to ASP.NET 2.0.&lt;br /&gt;
==Instructions==&lt;br /&gt;
===Step 1===&lt;br /&gt;
Modify your web.config file to allow cookieless session and authentication modes.&lt;br /&gt;
Find your system.web/authentication/forms tag and add an attribute that looks like this: cookieless=&amp;quot;AutoDetect&amp;quot; .&lt;br /&gt;
Find your system.web/sessionState tag and add cookieless=&amp;quot;AutoDetect&amp;quot; attribute too.&lt;br /&gt;
If you don't have one of those tags then you might be not using session or Forms Authentication or you may be using the default values. Add the tags when needed.&lt;br /&gt;
Here is an example of an XML snippet:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;   &amp;lt;system.web&amp;gt;&lt;br /&gt;
      &amp;lt;authentication mode=&amp;quot;Forms&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;forms loginUrl=&amp;quot;Login.aspx&amp;quot; protection=&amp;quot;All&amp;quot; timeout=&amp;quot;30&amp;quot;&lt;br /&gt;
             cookieless=&amp;quot;AutoDetect&amp;quot;             &lt;br /&gt;
             defaultUrl=&amp;quot;~/admin/UserPage.aspx&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;credentials passwordFormat=&amp;quot;Clear&amp;quot;&amp;gt;&lt;br /&gt;
               &amp;lt;user name=&amp;quot;Arik&amp;quot; password=&amp;quot;Password&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;/credentials&amp;gt;&lt;br /&gt;
         &amp;lt;/forms&amp;gt;&lt;br /&gt;
      &amp;lt;/authentication&amp;gt;&lt;br /&gt;
      &amp;lt;compilation debug=&amp;quot;true&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;sessionState&lt;br /&gt;
     mode=&amp;quot;InProc&amp;quot;&lt;br /&gt;
     cookieless=&amp;quot;AutoDetect&amp;quot;&lt;br /&gt;
     regenerateExpiredSessionId=&amp;quot;true&amp;quot;&lt;br /&gt;
     timeout=&amp;quot;30&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Step 2===&lt;br /&gt;
Save the following block to the root of your website as ClickTale.ascx file&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Control Language=&amp;quot;C#&amp;quot; ClassName=&amp;quot;ClickTale&amp;quot; %&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
   // Copyright 2007 ClickTale Ltd.&lt;br /&gt;
   private string FullUrl;&lt;br /&gt;
   &lt;br /&gt;
   protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;
   {&lt;br /&gt;
      string FullPath = Page.Request.Url.GetLeftPart(UriPartial.Path);&lt;br /&gt;
      int ScriptNamePos = FullPath.LastIndexOf(&amp;quot;/&amp;quot;);&lt;br /&gt;
      string VirtualPath = FullPath.Substring(0, ScriptNamePos + 1);&lt;br /&gt;
      string ScriptName = FullPath.Substring(ScriptNamePos + 1) + Page.Request.Url.Query;&lt;br /&gt;
&lt;br /&gt;
      StringBuilder s = new StringBuilder(VirtualPath);&lt;br /&gt;
      s.Append(&amp;quot;(X(1)&amp;quot;);&lt;br /&gt;
      if (Page.Session.SessionID != null)&lt;br /&gt;
         s.AppendFormat(&amp;quot;S({0})&amp;quot;, Page.Session.SessionID);&lt;br /&gt;
      if (Page.Request.Cookies[FormsAuthentication.FormsCookieName] != null&lt;br /&gt;
         &amp;amp;&amp;amp; Page.Request.Cookies[FormsAuthentication.FormsCookieName].Value != null&lt;br /&gt;
         &amp;amp;&amp;amp; Page.Request.Cookies[FormsAuthentication.FormsCookieName].Value != &amp;quot;&amp;quot;)&lt;br /&gt;
         s.AppendFormat(&amp;quot;F({0})&amp;quot;, Page.Request.Cookies[FormsAuthentication.FormsCookieName].Value);&lt;br /&gt;
      s.Append(&amp;quot;)/&amp;quot;);&lt;br /&gt;
      s.Append(ScriptName);&lt;br /&gt;
&lt;br /&gt;
      FullUrl = s.ToString();&lt;br /&gt;
   }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part --&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;ClickTale&amp;quot; style=&amp;quot;display: none;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://s.clicktale.net/WRa.js&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom='&amp;lt;%= FullUrl%&amp;gt;';&lt;br /&gt;
if(typeof ClickTale=='function') ClickTale([!YOUR PROJECT ID!],[!YOUR RATIO!]); // set your values here&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!-- ClickTale Bottom part end --&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will need to insert your IDs and parameters in the bottom of the file. You should compare the code in the sample to the code you regularly use. Your code may be newer or better so you might want to edit the file to match. &lt;br /&gt;
Make sure you keep this line:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asp&amp;quot;&amp;gt;&lt;br /&gt;
ClickTaleFetchFrom='&amp;lt;%= FullUrl%&amp;gt;';&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
It is the one that does the magic.&lt;br /&gt;
&lt;br /&gt;
===Step 3===&lt;br /&gt;
Add the &amp;quot;ClickTale Web User Control&amp;quot; to your pages. You can do that individually for each file or you can add the control to your master template (recommended).&lt;br /&gt;
To do that, add the line&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asp&amp;quot;&amp;gt;&amp;lt;%@ Register Src=&amp;quot;~/ClickTale.ascx&amp;quot; TagName=&amp;quot;ClickTale&amp;quot; TagPrefix=&amp;quot;CT&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
at the top of your ASP file and&lt;br /&gt;
&amp;lt;source lang=&amp;quot;asp&amp;quot;&amp;gt;&amp;lt;CT:ClickTale ID=&amp;quot;ClickTale&amp;quot; runat=&amp;quot;server&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
right before your &amp;lt;/body&amp;gt; tag.&lt;br /&gt;
&lt;br /&gt;
==Summary==&lt;br /&gt;
This add-on will allow ClickTale to impersonate the original visitor when caching the content. Implementing this process might have side effects on your site if you perform actions on GET requests. For example, if you keep a counter in your Session object which you raise for every page visit then you will now be getting an additional visit for every page that ClickTale is going to record. Generally you shouldn't have any such cases, but if you do you should check if ClickTale is making the request or a real person and handle properly. You can check that by looking for &amp;quot;ClickTale&amp;quot; in the UserAgent of the request.&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins_and_Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Template:SMB</id>
		<title>Template:SMB</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Template:SMB"/>
				<updated>2011-10-09T10:37:58Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: Created page with '&amp;lt;center&amp;gt;&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid rgb(153, 153, 153); padding: 1em; width:88%;&amp;quot;&amp;gt;ClickTale Wiki&amp;lt;br&amp;gt;'''The instructions on th…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;center&amp;gt;&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid rgb(153, 153, 153); padding: 1em; width:88%;&amp;quot;&amp;gt;[[Image:Logo.png|30 px|ClickTale Wiki]]&amp;lt;br&amp;gt;'''The instructions on this page are intended for self service and online accounts.&amp;lt;br&amp;gt;Enterprise customers should contact their accout managers for integration support.'''&amp;lt;/blockquote&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Ajax_integration</id>
		<title>Ajax integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Ajax_integration"/>
				<updated>2011-08-25T11:58:46Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ClickTale offers a comprehensive Ajax integration that fully supports session playback, visitor search and aggregated reports (Form Analytics, Heatmaps, etc). This integration allows ClickTale to run seamlessly on webpages built with Ajax, including dynamic pages and online forms.&lt;br /&gt;
&lt;br /&gt;
'''Availability and functionality may vary based on your subscription level.'''&lt;br /&gt;
&lt;br /&gt;
In order to use the ClickTale Ajax integration, you first need to contact a ClickTale Integration Specialist via our [http://www.clicktale.com/contact/contact_us?ct=(ajaxcustomer) contact us].&lt;br /&gt;
&lt;br /&gt;
[[Category:Plugins and Integrations]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Ajax</id>
		<title>Ajax</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Ajax"/>
				<updated>2011-08-25T11:58:26Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: Redirected page to Ajax integration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Ajax integration]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Ajax_integrations</id>
		<title>Ajax integrations</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Ajax_integrations"/>
				<updated>2011-08-25T11:57:43Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: moved Ajax integrations to Ajax integration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Ajax integration]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Ajax_integration</id>
		<title>Ajax integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Ajax_integration"/>
				<updated>2011-08-25T11:57:43Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: moved Ajax integrations to Ajax integration&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ClickTale offers a comprehensive Ajax integration that fully supports session playback, visitor search and aggregated reports (Form Analytics, Heatmaps, etc). This integration allows ClickTale to run seamlessly on webpages built with Ajax, including dynamic pages and online forms.&lt;br /&gt;
&lt;br /&gt;
'''Availability and functionality may vary based on your subscription level.'''&lt;br /&gt;
&lt;br /&gt;
In order to use the ClickTale Ajax integration, you first need to contact a ClickTale Integration Specialist via our [http://www.clicktale.com/contact/contact_us?ct=(ajaxcustomer) contact us].&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Ajax_integration</id>
		<title>Ajax integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Ajax_integration"/>
				<updated>2011-08-25T11:57:32Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ClickTale offers a comprehensive Ajax integration that fully supports session playback, visitor search and aggregated reports (Form Analytics, Heatmaps, etc). This integration allows ClickTale to run seamlessly on webpages built with Ajax, including dynamic pages and online forms.&lt;br /&gt;
&lt;br /&gt;
'''Availability and functionality may vary based on your subscription level.'''&lt;br /&gt;
&lt;br /&gt;
In order to use the ClickTale Ajax integration, you first need to contact a ClickTale Integration Specialist via our [http://www.clicktale.com/contact/contact_us?ct=(ajaxcustomer) contact us].&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Privacy_policy</id>
		<title>Privacy policy</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Privacy_policy"/>
				<updated>2011-07-11T09:42:26Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ClickTale’s service is a web analytics service that monitors visitor interactions on a website. The ClickTale service, is added to a specific website by the website’s owner, it then records visitor interactions on the website enabling the website’s owner to receive various reports, including videos of users interactions and statistics based on such videos (the &amp;quot;Service&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
This Privacy Policy outlines the information collected by the Service and how that information is used. In this Privacy Policy references to &amp;quot;we&amp;quot;, &amp;quot;us&amp;quot; and &amp;quot;our&amp;quot; are to ClickTale Ltd.&lt;br /&gt;
__TOC__&lt;br /&gt;
==Collection of Information==&lt;br /&gt;
===What information we collect===&lt;br /&gt;
The information collected by our Service may include:&lt;br /&gt;
#Generic Characteristics of your computer such as: browser type, system language, OS version, time zone and screen resolution metrics.&lt;br /&gt;
#The web pages that you visit in a specific website and the URLs of the web pages that referred you to that website.&lt;br /&gt;
#Any mouse movements, mouse clicks and keystrokes on the visited website.&lt;br /&gt;
#Any information you enter and submit to a specific website. As a result, if you choose to supply personal information (such as, but not limited to, name, address or contact information) on a website, such information will be collected by the Service.&lt;br /&gt;
#Session information stored in cookies that are used to ensure accurate data is extracted from our systems.&amp;lt;br&amp;gt;&lt;br /&gt;
These cookies do not include any personal data.&lt;br /&gt;
===What information we do NOT collect===&lt;br /&gt;
#We do NOT collect any information about websites which do not use the Service.&lt;br /&gt;
#We do NOT collect any information about other programs that you are running on your computer.&lt;br /&gt;
#We do NOT assign a global unique identifier to you.&lt;br /&gt;
#We do NOT collect any passwords that you enter in a website.&lt;br /&gt;
#We do NOT collect key strokes that happen in fields that the website’s owner has marked as &amp;quot;sensitive&amp;quot;.&lt;br /&gt;
===What we do with your information===&lt;br /&gt;
Any information we collect will be used in accordance with applicable laws for the following purposes:&lt;br /&gt;
#To provide website owners with raw or aggregate reports regarding visitor interactions on their website, that may include for example: aggregate reports of clicking or mouse movement activity, aggregate reports of scrolling activity and recreation of visitor browsing sessions.&lt;br /&gt;
#ClickTale may use the information to perform anonymous aggregated web surfing analysis and statistical reports.&lt;br /&gt;
#For auditing, research and analysis to operate and improve ClickTale technologies and services.&lt;br /&gt;
#We may share information with third parties in limited circumstances, including, without limitation, when complying with legal requirements, preventing fraud or imminent harm, and ensuring the security of our network and services. We may further share certain pieces of aggregated, non-personal information, such as average page load time, or the number of pages processed by our system per day. Such information does not identify you individually.&lt;br /&gt;
#When you send email or other communication to ClickTale, we may retain those communications in order to process your inquiries, respond to your requests and improve our services.&lt;br /&gt;
#When we use third parties to assist us in processing your personal information, we require that they comply with our Privacy Policy and any other appropriate confidentiality and security measures.&lt;br /&gt;
Except as described herein, we do NOT:&lt;br /&gt;
#Disclose your information.&lt;br /&gt;
#Share your information with third parties. &lt;br /&gt;
==Information security==&lt;br /&gt;
ClickTale maintains a strict &amp;quot;no-spam&amp;quot; policy. Your e-mail address will not be sold, rented or otherwise delivered to any third party unless it is so required with respect to the Service as described below.&lt;br /&gt;
We take appropriate security measures to protect against unauthorized access to or unauthorized alteration, disclosure or destruction of data. These include internal reviews of our data collection, storage and processing practices and security measures, as well as physical security measures to guard against unauthorized access to systems where we store personal data.&lt;br /&gt;
We restrict access to personal information to a limited number of ClickTale employees, contractors and agents who need to know that information in order to operate, develop or improve our services. These individuals are bound by confidentiality obligations and may be subject to discipline, including termination and criminal prosecution, if they fail to meet these obligations.&lt;br /&gt;
If you wish, you can select to be excluded from monitoring by our service by following this link: http://www.clicktale.net/disable.html.&lt;br /&gt;
When we receive formal written complaints posted using our contact form, it is ClickTale's policy to contact the complaining user regarding his or her concerns. We will cooperate with the appropriate regulatory authorities, including local data protection authorities, to resolve any complaints regarding the transfer of personal data that cannot be resolved between ClickTale and an individual. &lt;br /&gt;
==Policy Modifications==&lt;br /&gt;
We may change this Privacy Policy from time to time. If and/or when ClickTale makes changes to this Privacy Policy, the updated version will be posted on this page. We encourage you to visit this page periodically. &lt;br /&gt;
==Contacting us about Privacy==&lt;br /&gt;
If you have any questions about our privacy statement, the information we have collected from you online, the practices of this website, or your dealings with this website, please contact us by using our contact form.&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	<entry>
		<id>http://wiki.clicktale.com/Article/Fetchfromwithcookies</id>
		<title>Fetchfromwithcookies</title>
		<link rel="alternate" type="text/html" href="http://wiki.clicktale.com/Article/Fetchfromwithcookies"/>
				<updated>2011-07-02T21:52:04Z</updated>
		
		<summary type="html">&lt;p&gt;Shmuls: Redirected page to ClickTaleFetchFromWithCookies&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ClickTaleFetchFromWithCookies]]&lt;/div&gt;</summary>
		<author><name>Shmuls</name></author>	</entry>

	</feed>
