Подсчет количества отправленных форм для постклик/поствью аналитики сайта рекламодателя

На странице сайта расположена анкета, которую заполняют посетители сайта. Данные анкеты отправляются владельцу сайта нажатием на кнопку Отправить форму. Необходимо с помощью системы 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. Сгенерируйте для этой сайтзоны код JS-counter.

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

    <!-- AdRiver code START Type: JS-counter Site: primer SZ: submit PZ: 0 BN: 0-->
    <script language="javascript" type="text/javascript"><!--
    !function(e,t){function r(e,t,r){t=t||"&",r=r||"=";var o=[];for(var n in e)e.hasOwnProperty(n)&&o.push(n+r+encodeURIComponent(e[n]));return o.join(t)}function o(e){var t={};if(e){var r=e.split("&");for(var o in r)if(r.hasOwnProperty(o)){var n=r[o].split("=");void 0!==n[0]&&void 0!==n[1]&&(t[n[0]]=decodeURIComponent(n[1]))}}return t}function n(e){return(/^\/\//.test(e)?"https:":"")+e}function i(e,t){var r=e.cookie.match("(^|;) ?"+t+"=([^;]*)(;|$)");return r?decodeURIComponent(r[2]):null}var d,a=document;"undefined"==typeof AdriverCounter&&(AdriverCounter=((d=function(e,t,r){var o=document.domain;if(!(this instanceof AdriverCounter))return d.items[e];d.urlParams=d.getUrlParameters(window.location.search.substring(1)),void 0!==d.urlParams.adrclid&&(t.fsid=d.urlParams.adrclid),null!==d.getCookie(document,"adrcid")&&(t.cid=d.getCookie(document,"adrcid")),r&&r.id&&null!==d.getCookie(document,r.id)&&(t.suid=o+"_"+encodeURIComponent(d.getCookie(document,r.id))),r&&r.gid1?t.gid1=r.gid1:null!==d.getCookie(document,"_ga")&&(t.gid1=encodeURIComponent(d.getCookie(document,"_ga"))),r&&r.yid1?t.yid1=r.yid1:null!==d.getCookie(document,"_ym_uid")&&(t.yid1=encodeURIComponent(d.getCookie(document,"_ym_uid"))),t.loc=encodeURIComponent(window.location.href),e=d.items.length||1,d.items[e]=this,t.ph=e,t.custom&&(t.custom=d.toQueryString(t.custom,";")),d.request(d.toQueryString(t))}).httplize=n,d.loadScript=function(e){try{var t=a.getElementsByTagName("head")[0],r=a.createElement("script");r.setAttribute("type","text/javascript"),r.setAttribute("referrerpolicy","no-referrer-when-downgrade"),r.setAttribute("charset","windows-1251"),r.setAttribute("src",e.split("![rnd]").join(Math.round(1e6*Math.random()))),r.onreadystatechange=function(){/loaded|complete/.test(this.readyState)&&(r.onload=null,t.removeChild(r))},r.onload=function(){t.removeChild(r)},t.insertBefore(r,t.firstChild)}catch(e){}},d.toQueryString=r,d.request=function(e){var t=d.toQueryString(d.defaults);d.loadScript(d.redirectHost+"/cgi-bin/erle.cgi?"+e+"&rnd=![rnd]"+(t?"&"+t:""))},d.getUrlParameters=o,d.getCookie=i,d.items=[],d.defaults={tail256:document.referrer||"unknown"},d.redirectHost="https://ad.adriver.ru",d.urlParams={},d)),new AdriverCounter(0,e,t)}
    ({sid:12345,bt:62,sz:"submit"},{id:"",gid1:"",yid1:""});
    //--></script>
    <!-- AdRiver code END -->
    
  4. На страницу сайта, на которой размещена анкета, вставьте следующую функцию:
    <script language=javascript>
    (function(b_id, f_id, p, c){
            
                function sendForm(){
                    var f = document.getElementById(f_id);
                    if (f) {
                        function counter (e,t) {function r(e,t,r){t=t||"&",r=r||"=";var o=[];for(var n in e)e.hasOwnProperty(n)&&o.push(n+r+encodeURIComponent(e[n]));return o.join(t)}function o(e){var t={};if(e){var r=e.split("&");for(var o in r)if(r.hasOwnProperty(o)){var n=r[o].split("=");void 0!==n[0]&&void 0!==n[1]&&(t[n[0]]=decodeURIComponent(n[1]))}}return t}function n(e){return(/^\/\//.test(e)?"https:":"")+e}function i(e,t){var r=e.cookie.match("(^|;) ?"+t+"=([^;]*)(;|$)");return r?decodeURIComponent(r[2]):null}var d,a=document;"undefined"==typeof AdriverCounter&&(AdriverCounter=((d=function(e,t,r){var o=document.domain;if(!(this instanceof AdriverCounter))return d.items[e];d.urlParams=d.getUrlParameters(window.location.search.substring(1)),void 0!==d.urlParams.adrclid&&(t.fsid=d.urlParams.adrclid),null!==d.getCookie(document,"adrcid")&&(t.cid=d.getCookie(document,"adrcid")),r&&r.id&&null!==d.getCookie(document,r.id)&&(t.suid=o+"_"+encodeURIComponent(d.getCookie(document,r.id))),r&&r.gid1?t.gid1=r.gid1:null!==d.getCookie(document,"_ga")&&(t.gid1=encodeURIComponent(d.getCookie(document,"_ga"))),r&&r.yid1?t.yid1=r.yid1:null!==d.getCookie(document,"_ym_uid")&&(t.yid1=encodeURIComponent(d.getCookie(document,"_ym_uid"))),t.loc=encodeURIComponent(window.location.href),e=d.items.length||1,d.items[e]=this,t.ph=e,t.custom&&(t.custom=d.toQueryString(t.custom,";")),d.request(d.toQueryString(t))}).httplize=n,d.loadScript=function(e){try{var t=a.getElementsByTagName("head")[0],r=a.createElement("script");r.setAttribute("type","text/javascript"),r.setAttribute("referrerpolicy","no-referrer-when-downgrade"),r.setAttribute("charset","windows-1251"),r.setAttribute("src",e.split("![rnd]").join(Math.round(1e6*Math.random()))),r.onreadystatechange=function(){/loaded|complete/.test(this.readyState)&&(r.onload=null,t.removeChild(r))},r.onload=function(){t.removeChild(r)},t.insertBefore(r,t.firstChild)}catch(e){}},d.toQueryString=r,d.request=function(e){var t=d.toQueryString(d.defaults);d.loadScript(d.redirectHost+"/cgi-bin/erle.cgi?"+e+"&rnd=![rnd]"+(t?"&"+t:""))},d.getUrlParameters=o,d.getCookie=i,d.items=[],d.defaults={tail256:document.referrer||"unknown"},d.redirectHost="https://ad.adriver.ru",d.urlParams={},d)),new AdriverCounter(0,e,t)}
                        counter (p,c);
                        setTimeout(function(){
                            f.submit();
                        }, 1000);
                    }
                }
                function checkErrors(){ // Функция проверки ошибок
                    return true;
                }
                var b = document.getElementById(b_id);
                if (b) {
                    var old_click = b.onclick;
                    b.onclick = function(){
                        if(checkErrors())sendForm();
                        if (old_click) old_click();
                        return false;
                    }
                }
            })('id1','id2',{parameters},{parameters});
    </script>

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

    • id1 — id кнопки отправки формы;
    • id2 — id самой формы;
    • {parameters},{parameters} — параметры из п.3, выделенные красным.

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

  5. Пример готового кода из предыдущих пунктов:

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

    <script language=javascript>
    (function(b_id, f_id, p, c){
            
                function sendForm(){
                    var f = document.getElementById(f_id);
                    if (f) {
                        function counter (e,t) {function r(e,t,r){t=t||"&",r=r||"=";var o=[];for(var n in e)e.hasOwnProperty(n)&&o.push(n+r+encodeURIComponent(e[n]));return o.join(t)}function o(e){var t={};if(e){var r=e.split("&");for(var o in r)if(r.hasOwnProperty(o)){var n=r[o].split("=");void 0!==n[0]&&void 0!==n[1]&&(t[n[0]]=decodeURIComponent(n[1]))}}return t}function n(e){return(/^\/\//.test(e)?"https:":"")+e}function i(e,t){var r=e.cookie.match("(^|;) ?"+t+"=([^;]*)(;|$)");return r?decodeURIComponent(r[2]):null}var d,a=document;"undefined"==typeof AdriverCounter&&(AdriverCounter=((d=function(e,t,r){var o=document.domain;if(!(this instanceof AdriverCounter))return d.items[e];d.urlParams=d.getUrlParameters(window.location.search.substring(1)),void 0!==d.urlParams.adrclid&&(t.fsid=d.urlParams.adrclid),null!==d.getCookie(document,"adrcid")&&(t.cid=d.getCookie(document,"adrcid")),r&&r.id&&null!==d.getCookie(document,r.id)&&(t.suid=o+"_"+encodeURIComponent(d.getCookie(document,r.id))),r&&r.gid1?t.gid1=r.gid1:null!==d.getCookie(document,"_ga")&&(t.gid1=encodeURIComponent(d.getCookie(document,"_ga"))),r&&r.yid1?t.yid1=r.yid1:null!==d.getCookie(document,"_ym_uid")&&(t.yid1=encodeURIComponent(d.getCookie(document,"_ym_uid"))),t.loc=encodeURIComponent(window.location.href),e=d.items.length||1,d.items[e]=this,t.ph=e,t.custom&&(t.custom=d.toQueryString(t.custom,";")),d.request(d.toQueryString(t))}).httplize=n,d.loadScript=function(e){try{var t=a.getElementsByTagName("head")[0],r=a.createElement("script");r.setAttribute("type","text/javascript"),r.setAttribute("referrerpolicy","no-referrer-when-downgrade"),r.setAttribute("charset","windows-1251"),r.setAttribute("src",e.split("![rnd]").join(Math.round(1e6*Math.random()))),r.onreadystatechange=function(){/loaded|complete/.test(this.readyState)&&(r.onload=null,t.removeChild(r))},r.onload=function(){t.removeChild(r)},t.insertBefore(r,t.firstChild)}catch(e){}},d.toQueryString=r,d.request=function(e){var t=d.toQueryString(d.defaults);d.loadScript(d.redirectHost+"/cgi-bin/erle.cgi?"+e+"&rnd=![rnd]"+(t?"&"+t:""))},d.getUrlParameters=o,d.getCookie=i,d.items=[],d.defaults={tail256:document.referrer||"unknown"},d.redirectHost="https://ad.adriver.ru",d.urlParams={},d)),new AdriverCounter(0,e,t)}
                        counter (p,c);
                        setTimeout(function(){
                            f.submit();
                        }, 1000);
                    }
                }
                function checkErrors(){ // Функция проверки ошибок
                    return true;
                }
                var b = document.getElementById(b_id);
                if (b) {
                    var old_click = b.onclick;
                    b.onclick = function(){
                        if(checkErrors())sendForm();
                        if (old_click) old_click();
                        return false;
                    }
                }
            })('button','form',{sid:12345,bt:62,sz:"submit"},{id:"",gid1:"",yid1:""});
    </script>
  6. Данные по количеству отправленных форм вы можете посмотреть в статистике показов по зоне сайта submit.
  7. Параметры для обеспечения синхронизации идентификаторов AdRiver и веб-аналитической системы сайта рекламодателя для последующей постклик и поствью аналитики рекламных кампаний:
    • id — название собственного ID пользователя (например, из CRM или 1st party cookie);
    • gid1 — ID пользователя Google Analytics (GA);
    • yid1 — ID пользователя Яндекс.Метрика (ЯМ).

    Значения параметров можно самостоятельно подставить средствами сайта или GTM.

    Если они не будут заполнены, код JS-counter автоматически будет определять ID пользователя GA и ID пользователя ЯМ на странице и передавать их в запросе.