Статьи и новости

GTM скрипт как подмена номеров телефона и адресов электронных почт на многостраничном сайте

Инструкция для меня. Просто, чтобы не забыть. Картинок нет sorry:(

Появилась потребность отслеживать все-все лиды, которые появляются у организации. Организация ведёт активную маркетинговую деятельность и каналов обращения больше пяти. У компании сайт на CMS WordPress и CRM система Битрикс24. Битрикс24 сырой продукт для маркетинга. На данный момент он не определяет органический трафик, а также не в состоянии подменять один номер телефона на другой. Но зато Битрикс24 может считать лиды и определять их источник по контактам обращения. Помощь с определением органики и подменой номера телефона и электронной почты доверим Google Tag Manager. Скрипт существовал сам по себе и до меня

Пошаговая инструкция по настройке Google Tag Manager или маркетинговые костыли к Битрикс24:

  • Этап 1

Будем исходить из того, что контейнеры создавать для GTM мы умеем как общие знания по теме. Заходим https://tagmanager.google.com/#/home и выбираем или создаём свой контейнер.

  • Этап 2

Создаём переменную sbjs.get.current.src тип Основной файл cookie

  • Этап 3

Создаём переменную global Var sbjs.get.current.src тип Переменная JavaScript. Где имя глобальной переменной sbjs.get.current.src

  • Этап 4

Создаём переменную SBJS Var table-email тип Таблица поиска. Где входная переменная global Var sbjs.get.current.src. А входные данные: yandex, gogle (не безграмотный, это костыль), sendpulse, coldcall, fax, google (органика с Гугл), yandex.ru (органика с Яндекс). А результат записываем например как <a href=»mailto:info2@opk.spb.ru»>info2@opk.spb.ru</a> и проч.

  • Этап 5

Создаём переменную SBJS Var table-tel тип Таблица поиска. Где входная переменная global Var sbjs.get.current.src. А входные данные: yandex, gogle (не безграмотный, это костыль), sendpulse, coldcall, fax. google (органика с Гугл), yandex.ru (органика с Яндекс). А результат записываем например как <a href=»tel:+78124673691″>+7 (812) 467-36-91</a></span> и проч.

  • Этап 6

Создаём Триггер call где тип Просмотр страницы – модель DOM готова. Условия активации: некоторые события, гдеSBJS Var table-tel не равноundefined.

  • Этап 7

Создаём Триггер email где тип Просмотр страницы – модель DOM готова. Условия активации: некоторые события, гдеSBJS Var table-email не равноundefined.

  • Этап 8

Создаём Тег sbjs, где тип Пользовательский HTML, а тригер All Pages. Код Html поля:

<script>
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r;"undefined"!=typeof window?r=window:"undefined"!=typeof global?r=global:"undefined"!=typeof self&&(r=self),r.sbjs=e()}}(function(){return function e(r,t,s){function n(a,i){if(!t[a]){if(!r[a]){var c="function"==typeof require&&require;if(!i&&c)return c(a,!0);if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var p=t[a]={exports:{}};r[a][0].call(p.exports,function(e){var t=r[a][1][e];return n(t?t:e)},p,p.exports,e,r,t,s)}return t[a].exports}for(var o="function"==typeof require&&require,a=0;a<s.length;a++)n(s[a]);return n}({1:[function(e,r,t){"use strict";var s=e("./init"),n={init:function(e){this.get=s(e),e&&e.callback&&"function"==typeof e.callback&&e.callback(this.get)}};r.exports=n},{"./init":6}],2:[function(e,r,t){"use strict";var s=e("./terms"),n=e("./helpers/utils"),o={containers:{current:"sbjs_current",current_extra:"sbjs_current_add",first:"sbjs_first",first_extra:"sbjs_first_add",session:"sbjs_session",udata:"sbjs_udata",promocode:"sbjs_promo"},service:{migrations:"sbjs_migrations"},delimiter:"|||",aliases:{main:{type:"typ",source:"src",medium:"mdm",campaign:"cmp",content:"cnt",term:"trm"},extra:{fire_date:"fd",entrance_point:"ep",referer:"rf"},session:{pages_seen:"pgs",current_page:"cpg"},udata:{visits:"vst",ip:"uip",agent:"uag"},promo:"code"},pack:{main:function(e){return o.aliases.main.type+"="+e.type+o.delimiter+o.aliases.main.source+"="+e.source+o.delimiter+o.aliases.main.medium+"="+e.medium+o.delimiter+o.aliases.main.campaign+"="+e.campaign+o.delimiter+o.aliases.main.content+"="+e.content+o.delimiter+o.aliases.main.term+"="+e.term},extra:function(e){return o.aliases.extra.fire_date+"="+n.setDate(new Date,e)+o.delimiter+o.aliases.extra.entrance_point+"="+document.location.href+o.delimiter+o.aliases.extra.referer+"="+(document.referrer||s.none)},user:function(e,r){return o.aliases.udata.visits+"="+e+o.delimiter+o.aliases.udata.ip+"="+r+o.delimiter+o.aliases.udata.agent+"="+navigator.userAgent},session:function(e){return o.aliases.session.pages_seen+"="+e+o.delimiter+o.aliases.session.current_page+"="+document.location.href},promo:function(e){return o.aliases.promo+"="+n.setLeadingZeroToInt(n.randomInt(e.min,e.max),e.max.toString().length)}}};r.exports=o},{"./helpers/utils":5,"./terms":9}],3:[function(e,r,t){"use strict";var s=e("../data").delimiter;r.exports={encodeData:function(e){return encodeURIComponent(e).replace(/\!/g,"%21").replace(/\~/g,"%7E").replace(/\*/g,"%2A").replace(/\'/g,"%27").replace(/\(/g,"%28").replace(/\)/g,"%29")},decodeData:function(e){try{return decodeURIComponent(e).replace(/\%21/g,"!").replace(/\%7E/g,"~").replace(/\%2A/g,"*").replace(/\%27/g,"'").replace(/\%28/g,"(").replace(/\%29/g,")")}catch(r){try{return unescape(e)}catch(t){return""}}},set:function(e,r,t,s,n){var o,a;if(t){var i=new Date;i.setTime(i.getTime()+60*t*1e3),o="; expires="+i.toGMTString()}else o="";a=s&&!n?";domain=."+s:"",document.cookie=this.encodeData(e)+"="+this.encodeData(r)+o+a+"; path=/"},get:function(e){for(var r=this.encodeData(e)+"=",t=document.cookie.split(";"),s=0;s<t.length;s++){for(var n=t[s];" "===n.charAt(0);)n=n.substring(1,n.length);if(0===n.indexOf(r))return this.decodeData(n.substring(r.length,n.length))}return null},destroy:function(e,r,t){this.set(e,"",-1,r,t)},parse:function(e){var r=[],t={};if("string"==typeof e)r.push(e);else for(var n in e)e.hasOwnProperty(n)&&r.push(e[n]);for(var o=0;o<r.length;o++){var a;t[this.unsbjs(r[o])]={},a=this.get(r[o])?this.get(r[o]).split(s):[];for(var i=0;i<a.length;i++){var c=a[i].split("="),u=c.splice(0,1);u.push(c.join("=")),t[this.unsbjs(r[o])][u[0]]=this.decodeData(u[1])}}return t},unsbjs:function(e){return e.replace("sbjs_","")}}},{"../data":2}],4:[function(e,r,t){"use strict";r.exports={parse:function(e){for(var r=this.parseOptions,t=r.parser[r.strictMode?"strict":"loose"].exec(e),s={},n=14;n--;)s[r.key[n]]=t[n]||"";return s[r.q.name]={},s[r.key[12]].replace(r.q.parser,function(e,t,n){t&&(s[r.q.name][t]=n)}),s},parseOptions:{strictMode:!1,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}},getParam:function(e){for(var r={},t=e?e:window.location.search.substring(1),s=t.split("&"),n=0;n<s.length;n++){var o=s[n].split("=");if("undefined"==typeof r[o[0]])r[o[0]]=o[1];else if("string"==typeof r[o[0]]){var a=[r[o[0]],o[1]];r[o[0]]=a}else r[o[0]].push(o[1])}return r},getHost:function(e){return this.parse(e).host.replace("www.","")}}},{}],5:[function(e,r,t){"use strict";r.exports={escapeRegexp:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},setDate:function(e,r){var t=e.getTimezoneOffset()/60,s=e.getHours(),n=r||0===r?r:-t;e.setHours(s+t+n);var o=e.getFullYear(),a=this.setLeadingZeroToInt(e.getMonth()+1,2),i=this.setLeadingZeroToInt(e.getDate(),2),c=this.setLeadingZeroToInt(e.getHours(),2),u=this.setLeadingZeroToInt(e.getMinutes(),2),p=this.setLeadingZeroToInt(e.getSeconds(),2);return o+"-"+a+"-"+i+" "+c+":"+u+":"+p},setLeadingZeroToInt:function(e,r){for(var t=e+"";t.length<r;)t="0"+t;return t},randomInt:function(e,r){return Math.floor(Math.random()*(r-e+1))+e}}},{}],6:[function(e,r,t){"use strict";var s=e("./data"),n=e("./terms"),o=e("./helpers/cookies"),a=e("./helpers/uri"),i=e("./helpers/utils"),c=e("./params"),u=e("./migrations");r.exports=function(e){function r(){var e;if("undefined"!=typeof y.utm_source||"undefined"!=typeof y.utm_medium||"undefined"!=typeof y.utm_campaign||"undefined"!=typeof y.utm_content||"undefined"!=typeof y.utm_term||"undefined"!=typeof y.gclid||"undefined"!=typeof y.yclid||"undefined"!=typeof y[h.campaign_param]||"undefined"!=typeof y[h.term_param]||"undefined"!=typeof y[h.content_param])g(),e=t(n.traffic.utm);else if(f(n.traffic.organic))g(),e=t(n.traffic.organic);else if(!o.get(s.containers.session)&&f(n.traffic.referral))g(),e=t(n.traffic.referral);else{if(o.get(s.containers.first)||o.get(s.containers.current))return o.get(s.containers.current);g(),e=t(n.traffic.typein)}return e}function t(e){switch(e){case n.traffic.utm:v=n.traffic.utm,x="undefined"!=typeof y.utm_source?y.utm_source:"undefined"!=typeof y.gclid?"google":"undefined"!=typeof y.yclid?"yandex":n.none,D="undefined"!=typeof y.utm_medium?y.utm_medium:"undefined"!=typeof y.gclid?"cpc":"undefined"!=typeof y.yclid?"cpc":n.none,k="undefined"!=typeof y.utm_campaign?y.utm_campaign:"undefined"!=typeof y[h.campaign_param]?y[h.campaign_param]:"undefined"!=typeof y.gclid?"google_cpc":"undefined"!=typeof y.yclid?"yandex_cpc":n.none,w="undefined"!=typeof y.utm_content?y.utm_content:"undefined"!=typeof y[h.content_param]?y[h.content_param]:n.none,C="undefined"!=typeof y.utm_term?y.utm_term:"undefined"!=typeof y[h.term_param]?y[h.term_param]:p()||n.none;break;case n.traffic.organic:v=n.traffic.organic,x=x||a.getHost(document.referrer),D=n.referer.organic,k=n.none,w=n.none,C=n.none;break;case n.traffic.referral:v=n.traffic.referral,x=x||a.getHost(document.referrer),D=D||n.referer.referral,k=n.none,w=a.parse(document.referrer).path,C=n.none;break;case n.traffic.typein:v=n.traffic.typein,x=h.typein_attributes.source,D=h.typein_attributes.medium,k=n.none,w=n.none,C=n.none;break;default:v=n.oops,x=n.oops,D=n.oops,k=n.oops,w=n.oops,C=n.oops}var r={type:v,source:x,medium:D,campaign:k,content:w,term:C};return s.pack.main(r)}function p(){var e=document.referrer;if(y.utm_term)return y.utm_term;if(!(e&&a.parse(e).host&&a.parse(e).host.match(/^(?:.*\.)?yandex\..{2,9}$/i)))return!1;try{return a.getParam(a.parse(document.referrer).query).text}catch(r){return!1}}function f(e){var r=document.referrer;switch(e){case n.traffic.organic:return!!r&&m(r)&&d(r);case n.traffic.referral:return!!r&&m(r)&&l(r);default:return!1}}function m(e){if(h.domain){if(_)return a.getHost(e)!==a.getHost(j);var r=new RegExp("^(?:.*\\.)?"+i.escapeRegexp(j)+"$","i");return!a.getHost(e).match(r)}return a.getHost(e)!==a.getHost(document.location.href)}function d(e){var r="yandex",t="text",s="google",n=new RegExp("^(?:.*\\.)?"+i.escapeRegexp(r)+"\\..{2,9}$"),o=new RegExp(".*"+i.escapeRegexp(t)+"=.*"),c=new RegExp("^(?:www\\.)?"+i.escapeRegexp(s)+"\\..{2,9}$");if(a.parse(e).query&&a.parse(e).host.match(n)&&a.parse(e).query.match(o))return x=r,!0;if(a.parse(e).host.match(c))return x=s,!0;if(!a.parse(e).query)return!1;for(var u=0;u<h.organics.length;u++){if(a.parse(e).host.match(new RegExp("^(?:.*\\.)?"+i.escapeRegexp(h.organics[u].host)+"$","i"))&&a.parse(e).query.match(new RegExp(".*"+i.escapeRegexp(h.organics[u].param)+"=.*","i")))return x=h.organics[u].display||h.organics[u].host,!0;if(u+1===h.organics.length)return!1}}function l(e){if(!(h.referrals.length>0))return x=a.getHost(e),!0;for(var r=0;r<h.referrals.length;r++){if(a.parse(e).host.match(new RegExp("^(?:.*\\.)?"+i.escapeRegexp(h.referrals[r].host)+"$","i")))return x=h.referrals[r].display||h.referrals[r].host,D=h.referrals[r].medium||n.referer.referral,!0;if(r+1===h.referrals.length)return x=a.getHost(e),!0}}function g(){o.set(s.containers.current_extra,s.pack.extra(h.timezone_offset),b,j,_),o.get(s.containers.first_extra)||o.set(s.containers.first_extra,s.pack.extra(h.timezone_offset),b,j,_)}var h=c.fetch(e),y=a.getParam(),j=h.domain.host,_=h.domain.isolate,b=h.lifetime;u.go(b,j,_);var v,x,D,k,w,C;return function(){o.set(s.containers.current,r(),b,j,_),o.get(s.containers.first)||o.set(s.containers.first,o.get(s.containers.current),b,j,_);var e,t;o.get(s.containers.udata)?(e=parseInt(o.parse(s.containers.udata)[o.unsbjs(s.containers.udata)][s.aliases.udata.visits])||1,e=o.get(s.containers.session)?e:e+1,t=s.pack.user(e,h.user_ip)):(e=1,t=s.pack.user(e,h.user_ip)),o.set(s.containers.udata,t,b,j,_);var n;o.get(s.containers.session)?(n=parseInt(o.parse(s.containers.session)[o.unsbjs(s.containers.session)][s.aliases.session.pages_seen])||1,n+=1):n=1,o.set(s.containers.session,s.pack.session(n),h.session_length,j,_),h.promocode&&!o.get(s.containers.promocode)&&o.set(s.containers.promocode,s.pack.promo(h.promocode),b,j,_)}(),o.parse(s.containers)}},{"./data":2,"./helpers/cookies":3,"./helpers/uri":4,"./helpers/utils":5,"./migrations":7,"./params":8,"./terms":9}],7:[function(e,r,t){"use strict";var s=e("./data"),n=e("./helpers/cookies");r.exports={go:function(e,r,t){var o,a=this.migrations,i={l:e,d:r,i:t};if(n.get(s.containers.first)||n.get(s.service.migrations)){if(!n.get(s.service.migrations))for(o=0;o<a.length;o++)a[o].go(a[o].id,i)}else{var c=[];for(o=0;o<a.length;o++)c.push(a[o].id);var u="";for(o=0;o<c.length;o++)u+=c[o]+"=1",o<c.length-1&&(u+=s.delimiter);n.set(s.service.migrations,u,i.l,i.d,i.i)}},migrations:[{id:"1418474375998",version:"1.0.0-beta",go:function(e,r){var t=e+"=1",o=e+"=0",a=function(e,r,t){return r||t?e:s.delimiter};try{var i=[];for(var c in s.containers)s.containers.hasOwnProperty(c)&&i.push(s.containers[c]);for(var u=0;u<i.length;u++)if(n.get(i[u])){var p=n.get(i[u]).replace(/(\|)?\|(\|)?/g,a);n.destroy(i[u],r.d,r.i),n.destroy(i[u],r.d,!r.i),n.set(i[u],p,r.l,r.d,r.i)}n.get(s.containers.session)&&n.set(s.containers.session,s.pack.session(0),r.l,r.d,r.i),n.set(s.service.migrations,t,r.l,r.d,r.i)}catch(f){n.set(s.service.migrations,o,r.l,r.d,r.i)}}}]}},{"./data":2,"./helpers/cookies":3}],8:[function(e,r,t){"use strict";var s=e("./terms"),n=e("./helpers/uri");r.exports={fetch:function(e){var r=e||{},t={};if(t.lifetime=this.validate.checkFloat(r.lifetime)||6,t.lifetime=parseInt(30*t.lifetime*24*60),t.session_length=this.validate.checkInt(r.session_length)||30,t.timezone_offset=this.validate.checkInt(r.timezone_offset),t.campaign_param=r.campaign_param||!1,t.term_param=r.term_param||!1,t.content_param=r.content_param||!1,t.user_ip=r.user_ip||s.none,r.promocode?(t.promocode={},t.promocode.min=parseInt(r.promocode.min)||1e5,t.promocode.max=parseInt(r.promocode.max)||999999):t.promocode=!1,r.typein_attributes&&r.typein_attributes.source&&r.typein_attributes.medium?(t.typein_attributes={},t.typein_attributes.source=r.typein_attributes.source,t.typein_attributes.medium=r.typein_attributes.medium):t.typein_attributes={source:"(direct)",medium:"(none)"},r.domain&&this.validate.isString(r.domain)?t.domain={host:r.domain,isolate:!1}:r.domain&&r.domain.host?t.domain=r.domain:t.domain={host:n.getHost(document.location.hostname),isolate:!1},t.referrals=[],r.referrals&&r.referrals.length>0)for(var o=0;o<r.referrals.length;o++)r.referrals[o].host&&t.referrals.push(r.referrals[o]);if(t.organics=[],r.organics&&r.organics.length>0)for(var a=0;a<r.organics.length;a++)r.organics[a].host&&r.organics[a].param&&t.organics.push(r.organics[a]);return t.organics.push({host:"bing.com",param:"q",display:"bing"}),t.organics.push({host:"yahoo.com",param:"p",display:"yahoo"}),t.organics.push({host:"about.com",param:"q",display:"about"}),t.organics.push({host:"aol.com",param:"q",display:"aol"}),t.organics.push({host:"ask.com",param:"q",display:"ask"}),t.organics.push({host:"globososo.com",param:"q",display:"globo"}),t.organics.push({host:"go.mail.ru",param:"q",display:"go.mail.ru"}),t.organics.push({host:"rambler.ru",param:"query",display:"rambler"}),t.organics.push({host:"tut.by",param:"query",display:"tut.by"}),t.referrals.push({host:"t.co",display:"twitter.com"}),t.referrals.push({host:"plus.url.google.com",display:"plus.google.com"}),t},validate:{checkFloat:function(e){return!(!e||!this.isNumeric(parseFloat(e)))&&parseFloat(e)},checkInt:function(e){return!(!e||!this.isNumeric(parseInt(e)))&&parseInt(e)},isNumeric:function(e){return!isNaN(e)},isString:function(e){return"[object String]"===Object.prototype.toString.call(e)}}}},{"./helpers/uri":4,"./terms":9}],9:[function(e,r,t){"use strict";r.exports={traffic:{utm:"utm",organic:"organic",referral:"referral",typein:"typein"},referer:{referral:"referral",organic:"organic",social:"social"},none:"(none)",oops:"(Houston, we have a problem)"}},{}]},{},[1])(1)});
</script>
  
 <script>
   sbjs.init();
</script>
  • Этап 9

Создаём Тег 1Sbjs Емэилтрекинг, где тип Пользовательский HTML, а Триггер email. Код Html поля:

<script type="text/javascript">
document.getElementById("emailtracking").innerHTML="{{SBJS Var table-email}}";
</script>
  • Этап 10

Создаём Тег 1Sbjs Коллтрекинг, где тип Пользовательский HTML, а Триггер calll. Код Html поля:

<script type="text/javascript">
document.getElementById("calltracking").innerHTML="{{SBJS Var table-tel}}";
</script>
  • Этап 11

Да и самое главное. На сайте необходимо к номеру телефона прикрепить ID calltracking, а к почте ID emailtracking. Пользуемся коллтрекингом и емейлтрекингом на коленке