Генеральный директор Rambler Media Марк Опзумер о продаже "Бегуна" Google

21 августа 2008

Продав за $140 млн американскому поисковику Google систему контекстной рекламы "Бегун" (см. "Ъ" от 19 июля), Rambler Media подписала с Google соглашение об использовании поисковой технологии Google и технологии контекстной рекламы AdSense на русскоязычных интернет-сервисах Rambler. О том, почему Rambler Media решила сосредоточиться на развитии медианаправления и в какие активы будут инвестированы средства, вырученные от продажи "Бегуна", корреспонденту "Ъ" АЛЕКСАНДРУ Ъ-МАЛАХОВУ рассказал генеральный директор Rambler Media МАРК ОПЗУМЕР.


— Сделка с Google получила неоднозначную оценку со стороны участников интернет-рынка. Многие говорят, что Rambler, продав "Бегуна" и заключив соглашение о поиске с Google, стал зависимым от американского поисковика.

— Я так не считаю. Мы пошли на соглашение с Google, чтобы сохранить конкурентоспособность и в конечном счете увеличить стоимость компании. Посмотрите на статистику за последние пару лет. Rambler уверенно терял долю на поисковом рынке: еще в декабре прошлого года у нас было около 17Hоисковых запросов россиян, а в июле этот показатель был уже ниже 15YОчевидно, при такой динамике Rambler не является прямым конкурентом Google и "Яндексу" на рынке горизонтального поиска, поэтому мы решили отказаться от развития бесперспективного направления. В этом контексте я считаю партнерство с Google очень удачным: мы уходим от прямой конкуренции с американским гигантом и одновременно получаем возможность улучшить релевантность собственного поиска за счет алгоритмов Google. Более того, отказавшись от работы над собственными алгоритмами, мы освободили ресурсы — как финансовые, так и человеческие. Эти ресурсы будут пущены на разработку так называемого вертикального поиска и медийных направлений.

— То есть по сути Rambler больше не высокотехнологичная компания?

— Да, теперь Rambler скорее медийная компания. Решение о смене приоритетов было непростым. Мы просчитывали различные сценарии развития компании с момента моего назначения на должность генерального директора в марте прошлого года. В итоге мы пришли к выводу, что сильная сторона Rambler в его медийных проектах. Поэтому мы решили сместить акценты и переориентировать компанию с поиска. Уверен, что для инвесторов это позитивная новость, ведь конкурировать все-таки нужно в тех сферах, где ты силен.

— Если говорить о смене стратегии и решении сосредоточиться на медийном направлении, каковы успехи компании в этой отрасли?

— Медианаправление всегда было сильной стороной "Рамблера". Наша главная страница, новостные ресурсы Rambler Mass Media и Lenta.ru, сайт сравнения товаров и цен Price.ru, такие проекты, как "Рамблер-спорт", "Рамблер-игры", Rambler Vision, рейтинг-классификатор Rambler`s Top100 и многие другие,— это успешные медиа и развлекательные сервисы, которыми пользуются миллионы пользователей. "Рамблер" очень популярен среди пользователей 19-45 лет, такое ядро пользователей является привлекательным для рекламодателей. Конечно, как одному из лидирующих интернет-брендов "Рамблеру" необходимо предлагать поиск своим пользователям, так как это одна из опций, интересующих интернет-юзеров, но пользователи также хотят общаться, читать новости, играть в игры, смотреть видео, слушать музыку, сравнивать товары и цены.

— Это объясняет решение отказаться от развития поиска, но не продажу системы контекстной рекламы "Бегун". Это же прибыльная компания, которая не привязана к поиску, а продает рекламу на партнерских сайтах.

— Да, "Бегун" — отличный актив. И на первый взгляд его продажа может казаться нелогичной. Но если мыслить стратегически, сделка оказывается вполне оправданной. Дело в том, что "Бегун" имеет мало собственного трафика, компания растет за счет партнерских сайтов. При этом партнеры забирают себе все больше выручки, и эта тенденция сохранится в будущем. Поэтому для "Бегуна" стратегически важно иметь собственный трафик в больших количествах, и он его получил, став частью Google. Что касается Rambler, для нас эта сделка по сути мало что изменила, ведь мы продолжим монетизировать трафик Rambler, размещая контекстную рекламу "Бегуна".

— Сразу после объявления о сделке с Google аналитики заговорили о том, что Rambler сильно подпортил историю успеха российскому поисковику "Яндекс", который планирует разместить на американской бирже NASDAQ часть акций. Согласны ли вы с мнением, что продажа "Бегуна" сильно навредит "Яндексу"?

— Мне сложно судить о каких-либо последствиях этой сделки для "Яндекса", но пока эта компания — лидер российского поискового рынка. Разумеется, "Яндексу" будет сложнее конкурировать с Google, который в одно мгновение превратился из аутсайдера локального рынка контекстной рекламы в сильного игрока. Но все-таки у меня есть уверенность, что в ближайшие годы места на рынке хватит всем — и Google, и "Яндексу".

— В конце прошлого года вы заключили соглашение с IMHO VI, которая получила право постепенно выкупить ваше рекламное агентство Index20. В свою очередь IMHO VI взяла на себя обязательство в этом году удвоить выручку компании от медийной рекламы, то есть довести ее примерно до $40 млн. И хотя по итогам первого полугодия IMHO VI уложилась в план (около $22 млн), участники рынка говорили, что в первом квартале план был провален. Вы не опасаетесь, что провал первого квартала может повториться в будущем?

— Мы не раскрываем и не обсуждаем квартальные результаты. Но я могу сказать, что удовлетворен работой с Арсеном Ревазовым и Светланой Гороховой (председатель правления и гендиректор IMHO VI соответственно.— "Ъ"). У них отлаженные технологии продаж и огромная клиентская база. Стратегически партнерство с IMHO VI выгодно для Rambler Media с точки зрения привлечения на нашу площадку крупных рекламодателей, размещавших ранее рекламу на ТВ. Сейчас все больше потребителей тратят деньги в интернете, и крупные рекламодатели, ранее смотревшие на интернет свысока, неизбежно начнут размещать рекламу в сети. Чтобы продавать больше товаров, многие бренды будут вынуждены расширять рекламные бюджеты на интернет. Мы рассчитываем, что в работе с такими клиентами нам поможет IMHO VI, которая благодаря вхождению в ГК "Видео Интернешнл" имеет доступ к уникальной клиентской базе. Rambler Media в свою очередь может предоставить клиентам IMHO VI качественную аудиторию.

— Чем так хороша ваша аудитория? Если судить по численности, то, по данным TNS Gallup, она почти в два раза меньше, чем у "Яндекса" и Mail.ru.

— Рекламодатели оценивают не только количество, но и качество аудитории. Для многих кампаний аудитория Mail.ru и "Яндекса" избыточна. В этих случаях клиентам не нужна вся аудитория, им нужен совершенно определенный набор социально-демографических характеристик. К примеру, производители автомобилей с удовольствием покупают рекламные площади в тематических журналах, пусть даже их тираж невелик. То есть рекламодателям нужна именно та аудитория, которая потенциально может купить продвигаемый продукт. Посетители портала Rambler.ru в этом смысле очень интересны, ведь это преимущественно образованные люди в возрасте от 19 до 45 лет.

— Если у вас качественная аудитория, то почему вы так поздно установили счетчики TNS Gallup?

— Я не считаю, что мы поздно присоединились. Вернее, я не знаю, почему мы не начали переговоры с TNS раньше, но сразу после моего назначения весной прошлого года мы приступили к обсуждению деталей сотрудничества. Уже в феврале этого года все формальные процедуры были пройдены. Да, до сих пор не весь трафик Rambler Media охвачен счетчиками TNS Gallup, но мы работаем над этим, и уже совсем скоро все наши ресурсы будут охвачены статистикой TNS. Я хочу подчеркнуть, что мы не имеем ничего против исследований TNS. Напротив, мы понимаем их важность для развития рынка, для привлечения новых рекламодателей. Клиент должен знать, за что он платит.

— Счетчики TNS как-то повлияли на лояльность рекламодателей, на объем выручки?

— В первом полугодии наши доходы выросли на 153Hо отношению к аналогичному периоду прошлого года. В этом есть, безусловно, заслуга как TNS, так и IMHO VI.

— Кстати, об IMHO VI. Mail.ru отказался от эксклюзивного контракта с этой компанией еще в 2006 году, поскольку она работает только с крупными рекламодателями. Вам не кажется, что тесное партнерство с IMHO VI негативно скажется на числе клиентов с небольшими бюджетами?

— Я не хочу комментировать действия Mail.ru. Что касается Rambler, у нас есть Index20, который традиционно работает в том числе с небольшими рекламодателями. Поэтому мы не опасаемся оттока клиентов из-за партнерства с IMHO VI.

— Как вы оцениваете перспективы медийной рекламы в интернете? Можете дать прогноз относительно его дальнейшего развития?

— В данный момент на интернет приходится лишь малая доля рекламного рынка в России. Она составляет около 3-49при том что телевидение охватывает порядка 50YВ западных странах объем рекламных продаж на интернет-площадках достигает 10Gт рынка в целом.

Интернет на сегодняшний день самый активно развивающийся сегмент рекламного рынка, рост которого значительно превышает рост рынка в целом. Рынок интернет-рекламы был оценен примерно в $360 млн в 2007 году и, по прогнозам, превысит $1 млрд к 2010 году. В прошлом году он вырос более чем на 759в соответствии с данными АКАР. Сейчас доли сегментов баннерной (дисплейной) и контекстной рекламы примерно равны, но ожидается, что в будущем на контекст и баннеры будет приходиться 60 и 40Jоответственно, при этом стоить отметить привлекательность обоих сегментов. Благодаря сбалансированной линейке продуктов и сервисов "Рамблер" способен генерировать значительную выручку от продажи как баннерной, так и контекстной рекламы на своих площадках.

— Обсуждается ли в рамках холдинга "Проф-медиа" возможность продажи пакетной рекламы?

— В ближайшее время такие предложения не появятся, мы этот вопрос не обсуждаем. Возможно, в будущем что-то подобное и произойдет, но мой опыт подсказывает, что эффективность пакетной рекламы не доказана. Все-таки рекламодатели хотят достигать определенных целей и поэтому сами выбирают, на какой площадке и сколько им потратить денег. Пакетная реклама в этом контексте вряд ли интересна, так как, по сути, вам продают то, в чем вы не нуждаетесь.

— Вы декларируете, что приоритетом для вас является увеличение стоимости компании. Но капитализация Rambler Media на LSE если и растет, то очень медленно по сравнению с конкурентами. К примеру, Mail.ru за прошлый год подорожал почти вдвое, судя по сделкам с Naspers.

— Между Rambler и Mail.ru есть большая разница. Mail.ru непубличная компания, поэтому стоимость компании в меньшей степени зависит от ситуации на финансовых рынках. Стороны могут договориться о любой цене. Rambler же является публичной компанией, поэтому ее стоимость тесно коррелирует с поведением фондового рынка. Сейчас финансовые рынки, в том числе и российский, крайне волатильны. Более того, многие индексы — а в особенности индексы развивающихся стран — сильно просели из-за кризиса. В то же время капитализация Rambler Media за последние три месяца выросла на 13,2YТо есть мы растем на падающем рынке — я считаю это успехом. Аналитики рынка прогнозируют рост стоимости акций выше существующего уровня, это говорит о том, что наш бизнес растет.

— После сделки с Google вы объявили о том, что у вас есть $100 млн свободных средств. На что вы их потратите с учетом того, что в рунете осталось откровенно мало привлекательных активов?

— Мы постоянно ведем переговоры о потенциальных покупках с разными компаниями. Раскрывать названия, к сожалению, не могу. Могу лишь сказать, что нас интересуют прежде всего медийные активы, связанные, например, со спортом. Добавлю также, что не все $100 млн мы потратим на поглощения — мы будем развивать и собственные проекты внутри Rambler.

Мы не хотим покупать только потому, что у нас есть деньги. Фактически мы предпочитаем оставаться консервативными и делать покупки, оправданные с точки зрения наших акционеров, в том числе и по цене, мы приобретаем только те продукты, которые могут достаточно быстро увеличить наш трафик или выручку, а также те, которые позволят нам занять лидирующие позиции на рынке. За последнее время мы приобрели сравнительно мало. Мы консолидировали нашу долю в Price.ru. В "Рамблере", мы полагаем, нет необходимости объединять все сервисы под одним брендом. Мы знаем, что у разных брендов разная аудитория, пользователи интернета любят посещать разные сайты. Возможно, мы приобретем несколько небольших проектов или осуществим одно большое приобретение.

— Что собой представляла Rambler Media до вашего появления в компании? Что изменилось в плане как стратегии развития, так и финансовых показателей?

— С финансовой точки зрения компания не была прибыльной, во второй половине 2007-го и первой половине этого года мы приняли ряд мер по улучшению ситуации. Во-первых, мы продали "Рамблер-ТВ" и сфокусировались на интернет-направлении, создали новую менеджерскую команду. Мы купили "Бегуна", чтобы занять долю рынка контекстной рекламы. Сейчас мы продали "Бегуна", что является частью нашего стратегического плана по партнерству с мировым лидером в области поиска. Рекламные продажи продолжают стремительно увеличиваться, и сейчас наш бизнес намного более прибылен. Кроме того, мы провели множество исследований аудитории, чтобы выяснить, почему пользователям нравится и не нравится "Рамблер", в результате в этом году мы объявили о запуске новых продуктов и об инициативах компании по обновлению бренда, таких как титульное спонсорство в Кубке России по футболу, партнерства в области видео, игр, поиска.

49-летний Марк Опзумер окончил бизнес-школу IMD в Лозанне, имеет степень MBA в области финансов. Имеет 24-летний опыт работы в управленческой и инвестиционной сферах. Занимал посты заместителя гендиректора издательской компании Hodder Headline, коммерческого и финансового директора Virgin Communications. С июля 2001 года управляющий директор и вице-президент европейского подразделения Yahoo!. С октября 2003 по октябрь 2004 года возглавлял комитет по аудиту Autonomy Corporation plc. В 2003-2006 годах был консультантом и независимым директором в советах директоров нескольких компаний, в том числе Newbay Software Limited, Oxigen II Limited, Web Reservations International Ltd, MIVA Inc. и Entertainment One Ltd. С 2005 года член совета директоров и независимый директор Rambler Media. В марте 2007 года назначен генеральным директором холдинга Rambler Media Group. Имеет гражданство Великобритании и Канады.

 

Группа Rambler Media учреждена в 2004 году на острове Джерси. Создана на основе одноименной поисковой системы, работающей в России с 1996 года. На настоящий момент в RMG входят поисковая система Rambler.ru, онлайн-газета Lenta.ru, сайт сравнения товаров Price.ru, рейтинг-классификатор Rambler`s Top100, система обмена быстрыми сообщениями Rambler-ICQ. До июля также владела агентством контекстной рекламы "Бегун" (продано американскому поисковику Google за $140 млн). Основной акционер группы — холдинг "Проф-медиа" (54,8 около 30Kоргуется на альтернативной площадке Лондонской фондовой биржи. Основная доля доходов группы (84; 2007 году) приходится на рекламу, размещаемую в интернет-проектах. Выручка в 2007 году $69,1 млн (рост на 125Hо сравнению с 2006 годом), чистая прибыль — $6,1 млн (против $3,2 млн чистого убытка в 2006 году).


Источник: «Коммерсантъ» 

Error
Errors while compiling a Template. Please try the following to solve the situation: * If the problem is about missing/invalid references or multiple defines either try to load the missing references manually (in the compiling appdomain!) or Specify your references manually by providing your own IReferenceResolver implementation. See https://antaris.github.io/RazorEngine/ReferenceResolver.html for details. Currently all references have to be available as files! * If you get 'class' does not contain a definition for 'member': try another modelType (for example 'null' to make the model dynamic). NOTE: You CANNOT use typeof(dynamic) to make the model dynamic! Or try to use static instead of anonymous/dynamic types. More details about the error: - error: (79, 47) Имя "CurrentBottomBanners" отсутствует в текущем контексте - error: (83, 47) Имя "CurrentBottomBanners" отсутствует в текущем контексте - error: (91, 62) Имя "CurrentBottomBanners" отсутствует в текущем контексте Temporary files of the compilation can be found in (please delete the folder): C:\Windows\TEMP\RazorEngine_yg5besg4.23y The template we tried to compile is: ------------- START ----------- @using System.Web; @using System.Web.WebPages; @using Axon.Core; @using Axon.CMS; @using Axon.CMS33.Helpers; @model AxonPage @{ Layout = null; var Page = AxonPage.Current; var Lang = AxonRequest.DisplayLang; //var BottomBanners = AxonConfig.Get< Dictionary<string,object> >("Banners/Bottom"); // @String.Join(",",AxonConfig.GetKeys(BottomBanners)) //var CurrentBottomBanners = BottomBanners.ContainsKey(Lang) ? BottomBanners[Lang] : new System.Dynamic.ExpandoObject(); //<!-- _body_end @CurrentBottomBanners @String.Join(",",AxonConfig.GetKeys(CurrentBottomBanners)) --> //var BottomBanners = AxonConfig.Get<IEnumerable<object>>("Banners/Bottom/Map"); //dynamic MapsBanners = (BottomBanners == null)?null: BottomBanners.Map[Lang]; //var a1=MapsBanners; //var Lat = AxonConfig.Get<Dictionary<string,string>>(BottomBanners,"Map"); //var MapInfo = BottomBanners == null ? new Dictionary<string,string>() : AxonConfig.Get<Dictionary<string,string>>(BottomBanners,"Map"); //var MapInfo = new Dictionary<string,string>(); } <script> function RunReadyJS_Main() { if (window["readyjs_Main"] == null) { console.error("readyjs_Main is undefined"); alert("Некритичная проблема при загрузке, пожалуйста, обновите страницу - Ctrl+F5 на компьютере, свайп вниз на телефоне или планшете."); } else { console.log("Before readyjs_Main"); var readyjs_MainFunc = window["readyjs_Main"]; readyjs_MainFunc(); console.log("After readyjs_Main"); } } try { /// Можно искать window["readyjs_Main"], чтобы не эвалить //AxonReady(function () { return eval("readyjs_Main()"); }); AxonReady(RunReadyJS_Main); } catch (e) { console.log("Error in jQuery.ready: " + e.message); console.log(e) alert("Некритичная проблема при загрузке, пожалуйста, обновите страницу - Ctrl+F5 на компьютере, свайп вниз на телефоне или планшете."); } </script> @*<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <script src="js/scripts.js"></script>*@ <script> @*function initMapGoogle(canvas) { var center = { lat: @(AxonConfig.Get<string>(CurrentBottomBanners, "Map.Lat")), lng: @(AxonConfig.Get<string>(CurrentBottomBanners, "Map.Long")) }; var canvas = document.querySelectorAll(canvas); canvas.forEach(function(element){ var map = new google.maps.Map(element, { center: center, zoom: 17, mapTypeControl: false, streetViewControl: false, }); var infowindow = new google.maps.InfoWindow({ content: '@(AxonConfig.Get<string>(CurrentBottomBanners, "Map.Address"))' //'г. Киев, ул. Сырецкая, д.31, скл.№9' }); var marker = new google.maps.Marker({ position: center, map: map }); marker.addListener('click', function() { infowindow.open(map, this); }); }) }*@ function initMap2Gis(canvas) { var center = { lat: @(AxonConfig.Get<string>(CurrentBottomBanners, "Map.Lat")), lng: @(AxonConfig.Get<string>(CurrentBottomBanners, "Map.Long")) }; var AddressOnMap = '@Page.Lang(Page.GeoString("Address"))'; var mapZoom = parseInt('@(AxonConfig.Get<string>(CurrentBottomBanners, "Map.Zoom"))'); if (isNaN(mapZoom)) { mapZoom = 16;} var canvas = document.querySelectorAll(canvas); canvas.forEach(function (element) { /// Блок для информации var mapBlock = document.createElement('div'); mapBlock.id = 'mapBlock'; //mapBlock = document.getElementById('mapBlock'); var container = document.createElement('div'); container.id = 'map'; container.style.width = '100%'; container.style.height = '100%'; //mapBlock.appendChild(container); element.appendChild(container); element.appendChild(mapBlock); DG.then(function(){ window.mapelement = window.mapelement || DG.map('map', { center: [center.lat, center.lng],///[54.98, 82.89], zoom: mapZoom }); window.mapmarker = window.mapmarker || DG.marker([center.lat, center.lng]).addTo(window.mapelement); window.mapmarker.bindPopup(AddressOnMap); }); @*var map = new google.maps.Map(element, { center: center, zoom: 17, mapTypeControl: false, streetViewControl: false, }); var infowindow = new google.maps.InfoWindow({ content: '@(AxonConfig.Get<string>(CurrentBottomBanners, "Map.Address"))' //'г. Киев, ул. Сырецкая, д.31, скл.№9' }); var marker = new google.maps.Marker({ position: center, map: map }); marker.addListener('click', function() { infowindow.open(map, this); });*@ }) } @*function textil_start_google() { var Lang = '@(Page.Language)'; var APIkey = '@(AxonConfig.Get<string>("Assets.GoogleAPI"))'; $(document).on('click', '.modal-open-btn[href="#modal-map"]', function(){ $.getScript('https://maps.googleapis.com/maps/api/js?key='+APIkey+'&language='+Lang, function(){ initMap('#modal-map .map-canvas'); }) }) if($('.contacts .map-canvas')[0]){ $.getScript('https://maps.googleapis.com/maps/api/js?key='+APIkey+'&language='+Lang, function() { initMap('.contacts .map-canvas'); }) } }*@ function textil_start_2gis() { var Lang = '@(Page.Language)'; //var APIkey = '@(AxonConfig.Get<string>("Assets.2Gis"))'; $(document).on('click', '.modal-open-btn[href="#modal-map"]', function(){ $.getScript('https://maps.api.2gis.ru/2.0/loader.js?pkg=full&&skin=light&lazy=true', function(){ initMap2Gis('#modal-map .map-canvas'); }) }) if($('.contacts .map-canvas')[0]){ $.getScript('https://maps.api.2gis.ru/2.0/loader.js?pkg=full&&skin=light&lazy=true', function() { initMap2Gis('.contacts .map-canvas'); }) } } AxonReady(textil_start_2gis); </script> <!-- /_body_end --> ------------- END ----------- The generated source code is: ------------- START ----------- //------------------------------------------------------------------------------ // <auto-generated> // Этот код создан программой. // Исполняемая версия:4.0.30319.42000 // // Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае // повторной генерации кода. // </auto-generated> //------------------------------------------------------------------------------ namespace CompiledRazorTemplates.Dynamic { using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.WebPages; using Axon.Core; using Axon.CMS; using Axon.CMS33.Helpers; public class RazorEngine_f2770b46144248499f6817a27e448940 : Axon.Core.Razor.RazorTemplateBase<AxonPage> { public RazorEngine_f2770b46144248499f6817a27e448940() { } public override void Execute() { Layout = null; var Page = AxonPage.Current; var Lang = AxonRequest.DisplayLang; //var BottomBanners = AxonConfig.Get< Dictionary<string,object> >("Banners/Bottom"); // @String.Join(",",AxonConfig.GetKeys(BottomBanners)) //var CurrentBottomBanners = BottomBanners.ContainsKey(Lang) ? BottomBanners[Lang] : new System.Dynamic.ExpandoObject(); //<!-- _body_end @CurrentBottomBanners @String.Join(",",AxonConfig.GetKeys(CurrentBottomBanners)) --> //var BottomBanners = AxonConfig.Get<IEnumerable<object>>("Banners/Bottom/Map"); //dynamic MapsBanners = (BottomBanners == null)?null: BottomBanners.Map[Lang]; //var a1=MapsBanners; //var Lat = AxonConfig.Get<Dictionary<string,string>>(BottomBanners,"Map"); //var MapInfo = BottomBanners == null ? new Dictionary<string,string>() : AxonConfig.Get<Dictionary<string,string>>(BottomBanners,"Map"); //var MapInfo = new Dictionary<string,string>(); WriteLiteral(@" <script> function RunReadyJS_Main() { if (window[""readyjs_Main""] == null) { console.error(""readyjs_Main is undefined""); alert(""Некритичная проблема при загрузке, пожалуйста, обновите страницу - Ctrl+F5 на компьютере, свайп вниз на телефоне или планшете.""); } else { console.log(""Before readyjs_Main""); var readyjs_MainFunc = window[""readyjs_Main""]; readyjs_MainFunc(); console.log(""After readyjs_Main""); } } try { /// Можно искать window[""readyjs_Main""], чтобы не эвалить //AxonReady(function () { return eval(""readyjs_Main()""); }); AxonReady(RunReadyJS_Main); } catch (e) { console.log(""Error in jQuery.ready: "" + e.message); console.log(e) alert(""Некритичная проблема при загрузке, пожалуйста, обновите страницу - Ctrl+F5 на компьютере, свайп вниз на телефоне или планшете.""); } </script> "); WriteLiteral("\r\n<script>\r\n\t\t"); WriteLiteral("\r\n\t\tfunction initMap2Gis(canvas) {\r\n\t\t\tvar center = {\r\n\t\t\t\tlat: "); Write(AxonConfig.Get<string>(CurrentBottomBanners, "Map.Lat")); WriteLiteral(",\r\n\t\t\t\tlng: "); Write(AxonConfig.Get<string>(CurrentBottomBanners, "Map.Long")); WriteLiteral("\r\n\t\t\t};\r\n\t\t\tvar AddressOnMap = \'"); Write(Page.Lang(Page.GeoString("Address"))); WriteLiteral("\';\r\n\t\t\tvar mapZoom = parseInt(\'"); Write(AxonConfig.Get<string>(CurrentBottomBanners, "Map.Zoom")); WriteLiteral(@"'); if (isNaN(mapZoom)) { mapZoom = 16;} var canvas = document.querySelectorAll(canvas); canvas.forEach(function (element) { /// Блок для информации var mapBlock = document.createElement('div'); mapBlock.id = 'mapBlock'; //mapBlock = document.getElementById('mapBlock'); var container = document.createElement('div'); container.id = 'map'; container.style.width = '100%'; container.style.height = '100%'; //mapBlock.appendChild(container); element.appendChild(container); element.appendChild(mapBlock); DG.then(function(){ window.mapelement = window.mapelement || DG.map('map', { center: [center.lat, center.lng],///[54.98, 82.89], zoom: mapZoom }); window.mapmarker = window.mapmarker || DG.marker([center.lat, center.lng]).addTo(window.mapelement); window.mapmarker.bindPopup(AddressOnMap); }); "); WriteLiteral("\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t"); WriteLiteral("\r\n\tfunction textil_start_2gis() {\r\n\t\tvar Lang = \'"); Write(Page.Language); WriteLiteral("\';\r\n\t\t//var APIkey = \'"); Write(AxonConfig.Get<string>("Assets.2Gis")); WriteLiteral(@"'; $(document).on('click', '.modal-open-btn[href=""#modal-map""]', function(){ $.getScript('https://maps.api.2gis.ru/2.0/loader.js?pkg=full&&skin=light&lazy=true', function(){ initMap2Gis('#modal-map .map-canvas'); }) }) if($('.contacts .map-canvas')[0]){ $.getScript('https://maps.api.2gis.ru/2.0/loader.js?pkg=full&&skin=light&lazy=true', function() { initMap2Gis('.contacts .map-canvas'); }) } } AxonReady(textil_start_2gis); </script> <!-- /_body_end -->"); } } } ------------- END ----------- List of loaded Assemblies: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_64\System.Web\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.ApplicationServices\v4.0_4.0.0.0__31bf3856ad364e35\System.Web.ApplicationServices.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Caching\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Runtime.Caching.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.Build.Utilities.v4.0\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.Build.Utilities.v4.0.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.JScript\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.JScript.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\098628e2\00eac7a6_b34fd901\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\6c7a42bb\003c87e2_1a87d401\System.Web.WebPages.Deployment.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualStudio.Web.PageInspector.Loader\v4.0_1.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Web.PageInspector.Loader.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\8f75b1ca\003c87e2_1a87d401\System.Web.WebPages.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\109ace4b\000e9c93_3d27cf01\System.Web.Optimization.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\4586d11b\00cdd33c_1a87d401\System.Web.Mvc.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\4aba36a3\003c87e2_1a87d401\System.Web.WebPages.Razor.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\ef4088d0\00848278_5b6acd01\Microsoft.Web.Infrastructure.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_64\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.Services\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_64\System.EnterpriseServices\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.IdentityModel\v4.0_4.0.0.0__b77a5c561934e089\System.IdentityModel.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Serialization\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel\v4.0_4.0.0.0__b77a5c561934e089\System.ServiceModel.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Activation\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Activation.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Web\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Web.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Activities\v4.0_4.0.0.0__31bf3856ad364e35\System.Activities.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.ServiceModel.Activities\v4.0_4.0.0.0__31bf3856ad364e35\System.ServiceModel.Activities.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.WorkflowServices\v4.0_4.0.0.0__31bf3856ad364e35\System.WorkflowServices.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.Extensions\v4.0_4.0.0.0__31bf3856ad364e35\System.Web.Extensions.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.ComponentModel.DataAnnotations\v4.0_4.0.0.0__31bf3856ad364e35\System.ComponentModel.DataAnnotations.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.DynamicData\v4.0_4.0.0.0__31bf3856ad364e35\System.Web.DynamicData.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\c0e4950c\003096e6_42aece01\Antlr3.Runtime.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\f6fb5b14\bbe5ed61_405eda01\Axon.CMS.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\0e6b0cc1\2767ec60_405eda01\Axon.Core.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\660ddfcd\c583b063_405eda01\AxonCMS33.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\5b20048d\3a325660_405eda01\AxonInformer.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\faeff04b\450b8df4_a29ad601\Equa.JSEval.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\7ef31f7c\0021367d_391cd401\GenericParsing.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\82fb8523\00f003e1_db08d601\Google.Apis.Auth.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\834d5c47\006970dd_db08d601\Google.Apis.Core.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\1e62f80c\0096a1de_db08d601\Google.Apis.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\2d081a6b\00787b6d_472fd601\Google.Apis.Sheets.v4.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\3f16016e\00f4f995_a7f8d401\Newtonsoft.Json.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\9d449d34\0019cf93_c3e6d201\RazorEngine.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\0780c400\003894f8_e631d501\RestSharp.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\ceccf8ac\7e202460_405eda01\SgmlReaderDll.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\413c2818\6ed21560_405eda01\SmscApiDll.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\16820a4c\0032a15a_1a87d401\System.Net.Http.Formatting.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\7fc28064\003c87e2_1a87d401\System.Web.Helpers.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\ad9e5893\004eef68_1a87d401\System.Web.Http.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\8bf34e2a\008013ae_1a87d401\System.Web.Http.WebHost.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\5ee4b111\007a7eab_6ce7ce01\System.Web.Providers.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\f0d9cb12\0016534c_1a87d401\System.Web.Razor.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\f026d663\001bc110_4318cf01\WebGrease.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.Services.Design\v4.0_4.0.0.0__b77a5c561934e089\System.Data.Services.Design.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_global.asax.uv_hc9zw.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Dynamic\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Dynamic.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp.resources\v4.0_4.0.0.0_ru_b03f5f7f11d50a3a\Microsoft.CSharp.resources.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.resources\v4.0_4.0.0.0_ru_b77a5c561934e089\System.Data.resources.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_64\System.Transactions\v4.0_4.0.0.0__b77a5c561934e089\System.Transactions.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\SMDiagnostics\v4.0_4.0.0.0__b77a5c561934e089\SMDiagnostics.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.Mobile\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.RegularExpressions\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Web.RegularExpressions.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Data.Linq.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\assembly\dl3\ce1170a5\00d83e58_1a87d401\System.Web.Razor.resources.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.resources\v4.0_4.0.0.0_ru_b77a5c561934e089\System.resources.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_ru_default.cshtml.9f8472bd.ca4cns4a.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_rkp0d0tf.dll Loaded Assembly: C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_404.cshtml.a8d08dba.j-fspsgt.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_flg2bvk3.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_bar3dr52.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_uej1kc3d.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_w2tif2eq.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_layout.cshtml.9f8472bd.66mywwc1.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_error.cshtml.a8d08dba.27bdlyj6.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_lbe42wix.dll Loaded Assembly: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\f0be1a53\e9361788\App_Web_svg.cshtml.ed35399e.7_lcsd3d.dll