Подсчет количества отправленных форм

На странице сайта расположена анкета, которую заполняют посетители сайта. Данные анкеты отправляются владельцу сайта нажатием на кнопку Отправить форму. Необходимо с помощью системы AdRiver подсчитать, сколько раз была нажата кнопка и какое количество анкет было отправлено.

  1. Пример. Код для анкеты имеет вид:

    <form id="form" action='#'>
    <input name=aa type=hidden value=462>
    <input name=lop type=hidden value=563>
    <input name=cat type=hidden value=2>
    <input type='hidden' name='post' value='1'>
    <table width=90% cellspacing=5>
    <tr><td width=25%><p>Имя:</td><td><input name='name' type='text' size=50 maxlength=255 value=''></td></tr>
    <tr><td><p>Никнейм:</td><td><input name='nickname' type='text' size=50 maxlength=255 value=''></td></tr>
    <tr><td><p>E-mail:</td><td><input name='email' type='text' size=50 maxlength=255 value=''></td></tr>
    <tr><td><p>ICQ:</td><td><input name='icq' type='text' size=50 maxlength=255 value=''></td></tr>
    
    <tr><td colspan=2 align=center><input value='Отправить заявку' type='submit' id="button"></div></form></td></tr>
    </table>
    
  2. Создайте зону сайта submit (ваша зона сайта может называться по-другому).
  3. Сгенерируйте для этой сайтзоны код counter.

    Пример кода counter (вам понадобится только часть ссылки, выделенная красным):

    <!-- AdRiver code START Type: counter Site: primer SZ: submit PZ: 0 BN: 0-->
    <script language="javascript" type="text/javascript"><!--
    var RndNum4NoCash = Math.round(Math.random() * 1000000000);
    var ar_Tail='unknown'; if (document.referrer) ar_Tail = escape(document.referrer);
    document.write(
    '<img src="http://ad.adriver.ru/cgi-bin/rle.cgi?'
    + 'sid=92926&sz=submit&bt=21&pz=0&rnd=' + RndNum4NoCash + '&tail256=' + ar_Tail + '" border=0 width=1 height=1>')
    //--></script>
    <noscript>
    <img src="http://ad.adriver.ru/cgi-bin/rle.cgi?sid=92926&sz=submit&bt=21&pz=0&rnd=1490049405" border=0 width=1 height=1>
    </noscript>
    <!-- AdRiver code END -->
    
  4. На страницу сайта, на которой размещена анкета, вставьте следующую функцию:
    <script language=javascript>
    (function(b_id, f_id, src){
    	var s = false;
    
    	function sendForm(){
    		if (s) return;
    		var f = document.getElementById(f_id);
    		if (f) {
    			var pixel = new Image();
    			pixel.onerror = pixel.onload = function(){
    				if (s) return;
    				s = true;
    				f.submit();
    			}
    			pixel.src = src;
    			setTimeout(function(){
    				if (s) return;
    				s = true;
    				f.submit();
    			}, 3000);
    		}
    	}
    	function checkErrors(){ // Функция проверки ошибок
    		return true;
    	}
    	var b = document.getElementById(b_id);
    	if (b) {
    		var old_click = b.onclick;
    		b.onclick = function(){
    			s = false;
    			if(checkErrors())sendForm();
    			if (old_click) old_click();
    			return false;
    		}
    	}
    })('id1','id2','pixel');
    </script>

    Обратите внимание на сторку, выделенную красным. В строке используются следующие переменные:

    • id1 — id кнопки отправки формы;
    • id2 — id самой формы;
    • pixel — код counter (часть ссылки п.3, выделенная красным).

    Примечание: Для подсчёта количества отправленных форм вы можете использовать код счётчик сторонней системы управления рекламой.

  5. Для анкеты (п.1) и кода counter (п.3) функция (п.4) будет выглядеть следующим образом:

    Примечание: Данный код необходимо разместить на странице после формы, но не раньше неё.

    <script language=javascript>
    (function(b_id, f_id, src){
    	var s = false;
    
    	function sendForm(){
    		if (s) return;
    		var f = document.getElementById(f_id);
    		if (f) {
    			var pixel = new Image();
    			pixel.onerror = pixel.onload = function(){
    				if (s) return;
    				s = true;
    				f.submit();
    			}
    			pixel.src = src;
    			setTimeout(function(){
    				if (s) return;
    				s = true;
    				f.submit();
    			}, 3000);
    		}
    	}
    	function checkErrors(){ // Функция проверки ошибок
    		return true;
    	}
    	var b = document.getElementById(b_id);
    	if (b) {
    		var old_click = b.onclick;
    		b.onclick = function(){
    			s = false;
    			if(checkErrors())sendForm();
    			if (old_click) old_click();
    			return false;
    		}
    	}
    })('button','form','http://ad.adriver.ru/cgi-bin/rle.cgi?sid=92926&sz=submit&bt=21&pz=0');
    </script>
  6. Данные по количеству отправленных форм вы можете посмотреть в статистике показов по зоне сайта submit.