Установка счетчика и настройка перехвата кликов.

Установка счетчика системы на страницах сайта необходима для сбора статистики о трафике на сайте. Код счетчика устанавливается в тело html-документа, т.е. между тегами <boby> (<boby>код счетчика</boby>). Рекомендуется устанавливать счетчик как можно ближе к началу страницы.
! После установки счетчика системы, на страницах со счетчиком должен быть виден рисунок счетчика.

Клики.
Анализ кликов позволяет получить наиболее полную информацию о трафике на вашем сайте.
Для сбора данных о кликах необходимо чтобы система DF Cheat Analyzer (СА) перехватывала все клики сделанные на вашем сайте.
Для этого необходимо заменить все ссылки на вашем сайте на ссылки, ведущие на счетчик системы СА с передачей в параметрах адреса старой ссылки. После клика по ссылке система СА записывает данные о клике и переадресовывает серфера на адрес указанный в параметрах ссылки.
Для каждого захода серфера на странице должны создаваться свои ссылки с параметрами получаемыми от счетчика системы СА.
Подмена старых ссылок может осуществляться двумя способами: на сервере и в браузере пользователя.
1. Подмена ссылок на сервере осуществляется с помощью языков программирования выполняемых на сервере (PHP/Perl/C++) путем генерации страницы со ссылками, ведущими на систему СА. Это наиболее надежный способ позволяющий отслеживать все клики сделанные на вашем сайте. Применение этого способа может быть затруднено в случае использования на ваших сайтах сторонних скриптов для ротации содержания страниц (ротаторов).
2. Подмена ссылок в браузере пользователя осуществляется с помощью скрипта на JavaScript приведенного ниже. Этот способ прост в реализации, но зависит от работы скриптов в браузере серфера - в браузере с отключенными скриптами он работать не будет, также он может не работать в старых браузерах.

! После подмены ссылок ссылки на странице должны ссылаться на скрипт cacount.cgi (<a href="/cgi-bin/cacount.cgi?cafn=click&y=16820416&z=WLnzfBiRMHPGEa&l=http://mysite.com/">My Site</a>)

Страницы сайта на PHP.
Получение кода счетчика ($COUNTER) и параметров для подмены старых ссылок из системы СА.

<?php
$CA_URL="/cgi-bin/cacount.cgi";    // меняем на свой адрес   
$CA_PATH="./cgi-bin/cacount.cgi"; // меняем на свой путь к cacount.cgi  

if( isset($HTTP_SERVER_VARS) ) {  $SERVER_VARS=$HTTP_SERVER_VARS; }  
if( isset($_SERVER) ) {  $SERVER_VARS=$_SERVER; }  
foreach ($SERVER_VARS as $k => $v) {  
  if( strstr($k,"HTTP_") || strstr($k,"REMOTE_") || strstr($k,"QUERY_") ||   
      strstr($k,"REQUEST_") || strstr($k,"SERVER_") || strstr($k,"GEOIP_") ) {     
    putenv("$k=$v");
  }
}
$COUNTER=`$CA_PATH load`;
// $COUNTER=`$CA_PATH load GROUP`;

$CA_PREURL="";  // код ссылки вставляемый перед старой ссылкой
if( $COUNTER && preg_match("/cafn=rcntr&y=(\w+)&z=(\w+)&/", $COUNTER, $mathces)) {
 $CA_PREURL=$CA_URL."?cafn=click&y=$mathces[1]&z=$mathces[2]&l=";
} else {
 echo "Error exec ($CA_PATH)!";
}
echo $COUNTER; // вывод кода счетчика, можно располагать в любом месте страницы между тегами body
?>

Подмена старых ссылок.
1. Подмена старых ссылок на сервере.
Для подмены старых ссылок необходимо перед старым адресом ссылки вставить вывод содержимого переменой $CA_PREURL.

Пример ссылок:

<a href="<?php echo $CA_PREURL; ?>http://domain1.com/">Link 1</a>
<a href="<?php echo $CA_PREURL; ?>http://domain2.com/">Link 2</a>


2.Подмена старых ссылок в браузере серфера.

<script language="JavaScript">
var nl=0, ldct=0;
var CA_PREURL="<?php echo $CA_PREURL; ?>";
function ldlk() {
  var els = document.getElementsByTagName('a');
  if(els.length!=nl) {
    nl=els.length;
    for ( i=0; i < nl; i++ ) {
      if(els[i].href.indexOf("cacount.cgi")<0)
        els[i].href=CA_PREURL+els[i].href;
    }
  } else {
    ldct++;
  }
  if(ldct<10)
    setTimeout(ldlk, 1000);
}
ldlk();
</script>

Страницы сайта на Perl.
Получение кода счетчика ($COUNTER) и параметров для подмены старых ссылок из системы СА.

#!/usr/bin/perl
print "Content-type: text/html\n\n"  # вывод заголовка

$CA_URL="/cgi-bin/cacount.cgi";      # меняем на свой адрес
$CA_PATH="./cgi-bin/cacount.cgi";    # меняем на свой путь к cacount.cgi

$CA_PREURL="";
$CACOUNT=`$CA_PATH load`;
# $CACOUNT=`$CA_PATH load GROUP`;
if( $CACOUNT ) {
 if( $CACOUNT =~ /cafn=rcntr&y=(\w+)&z=(\w+)&/ ) {
   $CA_PREURL=$CA_URL."?cafn=click&y=$1&z=$2&l=";	 
 }
} else {
 $CACOUNT="Error exec cacount.cgi!";
} 
print $CACOUNT;   # вывод кода счетчика, можно располагать в любом месте страницы между тегами body

Подмена старых ссылок.
1. Подмена старых ссылок на сервере.
Для подмены старых ссылок необходимо перед старым адресом ссылки вставить вывод содержимого переменой $CA_PREURL.

Пример страницы с измененными ссылками:

print <<EOF;
<html>
<head>
<title>MyPage</title>
</head>
<body>
<p><a href="$CA_PREURL$\http://domain1.com/">Site 1</a></p>
<p><a href="$CA_PREURL$\http://domain2.com/">Site 2</a></p>
<p><a href="$CA_PREURL$\http://domain3.com/">Site 3</a></p>
</body>
</html>
EOF

2.Подмена старых ссылок в браузере серфера.
Вывод из Perl кода на JavaScript для подмены старых ссылок в браузере серфера.

print <<EOF;
<script language="JavaScript">
var nl=0, ldct=0;
var CA_PREURL="$CA_PREURL";
function ldlk() {
  var els = document.getElementsByTagName('a');
  if(els.length!=nl) {
    nl=els.length;
    for ( i=0; i < nl; i++ ) {
      if(els[i].href.indexOf("cacount.cgi")<0)
        els[i].href=CA_PREURL+els[i].href;
    }
  } else {
    ldct++;
  }
  if(ldct<10)
    setTimeout(ldlk, 1000);
}
ldlk();
</script>
EOF